python-maturin_1.3.2.orig/.cirrus.yml0000644000000000000000000000323114525221045014571 0ustar00env: RUST_BACKTRACE: 1 CARGO_INCREMENTAL: 0 CARGO_TERM_COLOR: always CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse build_and_test: &BUILD_AND_TEST # only run tasks on pull request or github merge queue branches only_if: $CIRRUS_BRANCH =~ 'gh-readonly-queue/.*' || $CIRRUS_PR != "" setup_script: - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable - rustup target add wasm32-wasi - python3 -m pip install --upgrade cffi virtualenv build_script: - cargo build test_script: - cargo test freebsd_task: name: Test (x86_64 FreeBSD) freebsd_instance: image_family: freebsd-13-1 env: PATH: $HOME/.cargo/bin:$PATH target_cache: folder: target fingerprint_script: - echo $CIRRUS_OS - cat Cargo.lock install_script: - pkg install -y bash git python - python3 -m ensurepip <<: *BUILD_AND_TEST macos_arm64_task: name: Test (arm64 macOS) macos_instance: image: ghcr.io/cirruslabs/macos-monterey-xcode:latest env: PATH: $HOME/.cargo/bin:/opt/homebrew/opt/python@3.10/bin:$PATH target_cache: folder: target fingerprint_script: - echo $CIRRUS_OS - cat Cargo.lock install_script: - brew install python3 - python3 -m pip install uniffi-bindgen==0.25.0 <<: *BUILD_AND_TEST linux_aarch64_task: name: Test (arm64 Linux) arm_container: image: python:3.11 cpu: 4 memory: 4G env: PATH: /root/.cargo/bin:$PATH target_cache: folder: target fingerprint_script: - echo $CIRRUS_OS - cat Cargo.lock install_script: - python3 -m pip install uniffi-bindgen==0.25.0 <<: *BUILD_AND_TEST python-maturin_1.3.2.orig/.codespellrc0000644000000000000000000000013614154643472014774 0ustar00[codespell] ignore-words-list = crate skip = ./.git,./target,./test-crates/venvs,./guide/book python-maturin_1.3.2.orig/.config/0000755000000000000000000000000014333346372014015 5ustar00python-maturin_1.3.2.orig/.devcontainer/0000755000000000000000000000000014431646724015234 5ustar00python-maturin_1.3.2.orig/.dockerignore0000644000000000000000000000026514525221045015141 0ustar00**/.pytest_cache **/.tox **/__pycache__ **/target **/venv* .dockerignore .git .idea .travis.yml .venv Dockerfile* appveyor.yml ci sysconfig test-crates test-data test-dockerfile.sh python-maturin_1.3.2.orig/.pre-commit-config.yaml0000644000000000000000000000354214525221045016747 0ustar00# run all hooks with: # pre-commit run --hook-stage manual --all ci: skip: # pre-commit.ci doesn't have Rust installed - cargo-fmt - cargo-deny repos: - repo: local hooks: - id: cargo-fmt # rustup component add rustfmt name: cargo fmt entry: cargo fmt --all -- language: system types: [rust] pass_filenames: false - id: cargo-deny # cargo install --locked cargo-deny name: cargo deny entry: cargo deny --all-features check -- language: system pass_filenames: false - id: cargo-check name: cargo check entry: cargo check --all-features --all-targets -- language: system pass_filenames: false types: [rust] stages: [manual] # because it's slow - id: cargo-clippy # rustup component add clippy name: cargo clippy entry: cargo clippy --tests --all-features -- -D warnings language: system pass_filenames: false types: [rust] stages: [manual] # because it's slow - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: check-yaml - id: check-toml - id: end-of-file-fixer exclude: | (?x)( (^sysconfig/)| (.*\.stdout) ) - id: trailing-whitespace exclude: | (?x)( (^sysconfig/)| (.*\.stdout) ) - id: mixed-line-ending - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.1.5 hooks: - id: ruff-format - id: ruff - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.7.0 hooks: - id: mypy entry: mypy maturin/ pass_filenames: false - repo: https://github.com/codespell-project/codespell rev: v2.2.6 hooks: - id: codespell python-maturin_1.3.2.orig/Cargo.lock0000644000000000000000000020425414525221045014376 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "adler" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom", "once_cell", "version_check", ] [[package]] name = "aho-corasick" version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] [[package]] name = "anstream" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", "is-terminal", "utf8parse", ] [[package]] name = "anstyle" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" [[package]] name = "anstyle-parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ "windows-sys 0.48.0", ] [[package]] name = "anstyle-wincon" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" dependencies = [ "anstyle", "windows-sys 0.48.0", ] [[package]] name = "anyhow" version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] name = "bstr" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", "serde", ] [[package]] name = "byteorder" version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bytesize" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" [[package]] name = "bzip2" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" dependencies = [ "bzip2-sys", "libc", ] [[package]] name = "bzip2-sys" version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" dependencies = [ "cc", "libc", "pkg-config", ] [[package]] name = "cab" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae6b4de23c7d39c0631fd3cc952d87951c86c75a13812d7247cb7a896e7b3551" dependencies = [ "byteorder", "flate2", "lzxd", "time", ] [[package]] name = "camino" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-config2" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a393492158d1198da424057afeadc96af9330d76d12e56d131a7a5302524ac65" dependencies = [ "cfg-expr", "home", "once_cell", "serde", "shell-escape", "toml 0.7.4", ] [[package]] name = "cargo-options" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b8e8daa6b2b84aa7cccd57317d9a9b36d969d75bb95923471f4eabbd36f2955" dependencies = [ "clap", ] [[package]] name = "cargo-platform" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] [[package]] name = "cargo-xwin" version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11c08ee57b16103990269874220c0e8a4613b8096a314ce2f29ad1b54d4b6d02" dependencies = [ "anyhow", "cargo-config2", "cargo-options", "clap", "dirs", "fs-err", "indicatif", "paste", "path-slash", "tracing-subscriber", "which", "xwin", ] [[package]] name = "cargo-zigbuild" version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5166694ea85c72f887293af72a665d7ac5a537649e607773bf834cb6303b1da" dependencies = [ "anyhow", "cargo-options", "cargo_metadata", "clap", "dirs", "fs-err", "path-slash", "rustc_version", "semver", "serde", "serde_json", "shlex", "target-lexicon", "which", ] [[package]] name = "cargo_metadata" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb9ac64500cc83ce4b9f8dafa78186aa008c8dea77a09b94cd307fd0cd5022a8" dependencies = [ "camino", "cargo-platform", "semver", "serde", "serde_json", "thiserror", ] [[package]] name = "cbindgen" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49" dependencies = [ "heck", "indexmap", "log", "proc-macro2", "quote", "serde", "serde_json", "syn 1.0.109", "tempfile", "toml 0.5.11", ] [[package]] name = "cc" version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" dependencies = [ "libc", ] [[package]] name = "cfb" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", "fnv", "uuid", ] [[package]] name = "cfg-expr" version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9" dependencies = [ "smallvec", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "charset" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46" dependencies = [ "base64 0.13.1", "encoding_rs", ] [[package]] name = "chumsky" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23170228b96236b5a7299057ac284a321457700bc8c41a4476052f0f4ba5349d" dependencies = [ "hashbrown", "stacker", ] [[package]] name = "clap" version = "4.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "906f7fe1da4185b7a282b2bc90172a496f9def1aca4545fe7526810741591e14" dependencies = [ "clap_builder", "clap_derive", "once_cell", ] [[package]] name = "clap_builder" version = "4.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "351f9ad9688141ed83dfd8f5fb998a06225ef444b48ff4dc43de6d409b7fd10b" dependencies = [ "bitflags", "clap_lex", "is-terminal", "strsim", "termcolor", "terminal_size", ] [[package]] name = "clap_complete" version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1594fe2312ec4abf402076e407628f5c313e54c32ade058521df4ee34ecac8a8" dependencies = [ "clap", ] [[package]] name = "clap_complete_command" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d" dependencies = [ "clap", "clap_complete", "clap_complete_fig", "clap_complete_nushell", ] [[package]] name = "clap_complete_fig" version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3af28956330989baa428ed4d3471b853715d445c62de21b67292e22cf8a41fa" dependencies = [ "clap", "clap_complete", ] [[package]] name = "clap_complete_nushell" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e" dependencies = [ "clap", "clap_complete", ] [[package]] name = "clap_derive" version = "4.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81d7dc0031c3a59a04fc2ba395c8e2dd463cba1859275f065d225f6122221b45" dependencies = [ "heck", "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "clap_lex" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" [[package]] name = "cli-table" version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d" dependencies = [ "termcolor", "unicode-width", ] [[package]] name = "colorchoice" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "configparser" version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5458d9d1a587efaf5091602c59d299696a3877a439c8f6d461a2d3cce11df87a" [[package]] name = "console" version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ "encode_unicode", "lazy_static", "libc", "unicode-width", "windows-sys 0.45.0", ] [[package]] name = "content_inspector" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" dependencies = [ "memchr", ] [[package]] name = "core-foundation" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", "libc", ] [[package]] name = "core-foundation-sys" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] [[package]] name = "crc32fast" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-channel" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset", "scopeguard", ] [[package]] name = "crossbeam-utils" version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] [[package]] name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", ] [[package]] name = "data-encoding" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "dialoguer" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ "console", "shell-words", "thiserror", "zeroize", ] [[package]] name = "diff" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", ] [[package]] name = "dirs" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", "option-ext", "redox_users", "windows-sys 0.48.0", ] [[package]] name = "dissimilar" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" [[package]] name = "dunce" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "either" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encode_unicode" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" version = "0.8.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" dependencies = [ "cfg-if", ] [[package]] name = "errno" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", "windows-sys 0.48.0", ] [[package]] name = "errno-dragonfly" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ "cc", "libc", ] [[package]] name = "expect-test" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3" dependencies = [ "dissimilar", "once_cell", ] [[package]] name = "fastrand" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] [[package]] name = "fat-macho" version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63fa117c7dcabeb8c83d5c229764cfa46518545d2dba5a9a08912014711f997b" dependencies = [ "goblin", ] [[package]] name = "filetime" version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", "windows-sys 0.48.0", ] [[package]] name = "flate2" version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", ] [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foreign-types" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ "foreign-types-shared", ] [[package]] name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] [[package]] name = "fs-err" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", ] [[package]] name = "getrandom" version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", "wasi", ] [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ "aho-corasick", "bstr", "fnv", "log", "regex", ] [[package]] name = "goblin" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134" dependencies = [ "log", "plain", "scroll", ] [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", ] [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "home" version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ "windows-sys 0.48.0", ] [[package]] name = "humantime" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "humantime-serde" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" dependencies = [ "humantime", "serde", ] [[package]] name = "idna" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", ] [[package]] name = "ignore" version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" dependencies = [ "globset", "lazy_static", "log", "memchr", "regex", "same-file", "thread_local", "walkdir", "winapi-util", ] [[package]] name = "indexmap" version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown", "serde", ] [[package]] name = "indicatif" version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730" dependencies = [ "console", "instant", "number_prefix", "portable-atomic", "unicode-width", ] [[package]] name = "indoc" version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4" [[package]] name = "instant" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if", ] [[package]] name = "io-lifetimes" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi", "libc", "windows-sys 0.48.0", ] [[package]] name = "is-terminal" version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi", "io-lifetimes", "rustix", "windows-sys 0.48.0", ] [[package]] name = "itertools" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "keyring" version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9549a129bd08149e0a71b2d1ce2729780d47127991bfd0a78cc1df697ec72492" dependencies = [ "byteorder", "lazy_static", "linux-keyutils", "security-framework", "winapi", ] [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lddtree" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f5bfec46830ad3a95199ae6804dfe9f51fdad43d7a95fbb6c185efa9824c295" dependencies = [ "fs-err", "glob", "goblin", ] [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "linux-keyutils" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f27bb67f6dd1d0bb5ab582868e4f65052e58da6401188a08f0da09cf512b84b" dependencies = [ "bitflags", "libc", ] [[package]] name = "linux-raw-sys" version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "log" version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lzxd" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784462f20dddd9dfdb45de963fa4ad4a288cb10a7889ac5d2c34fb6481c6b213" [[package]] name = "mailparse" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa" dependencies = [ "charset", "data-encoding", "quoted_printable", ] [[package]] name = "matchers" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata", ] [[package]] name = "maturin" version = "1.3.2" dependencies = [ "anyhow", "base64 0.21.2", "bytesize", "cargo-config2", "cargo-options", "cargo-xwin", "cargo-zigbuild", "cargo_metadata", "cbindgen", "cc", "clap", "clap_complete_command", "configparser", "console", "dialoguer", "dirs", "dunce", "expect-test", "fat-macho", "flate2", "fs-err", "glob", "goblin", "ignore", "indexmap", "indoc", "itertools", "keyring", "lddtree", "minijinja", "multipart", "native-tls", "normpath", "once_cell", "path-slash", "pep440_rs", "pep508_rs", "platform-info", "pretty_assertions", "pyproject-toml", "python-pkginfo", "regex", "rustc_version", "rustls", "rustls-pemfile", "rustversion", "semver", "serde", "serde_json", "sha2", "tar", "target-lexicon", "tempfile", "textwrap", "thiserror", "time", "toml 0.7.4", "toml_edit", "tracing", "tracing-subscriber", "trycmd", "ureq", "url", "which", "wild", "zip", ] [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ "mime", "unicase", ] [[package]] name = "minijinja" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80084fa3099f58b7afab51e5f92e24c2c2c68dcad26e96ad104bd6011570461d" dependencies = [ "serde", ] [[package]] name = "minimal-lexical" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] [[package]] name = "msi" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7124fc3188eff23916d20d82bcbbb993914b22fba5603f9e7745e347a86cf67" dependencies = [ "byteorder", "cfb", "encoding_rs", "uuid", ] [[package]] name = "multipart" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" dependencies = [ "log", "mime", "mime_guess", "rand", "tempfile", ] [[package]] name = "native-tls" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" dependencies = [ "lazy_static", "libc", "log", "openssl", "openssl-probe", "openssl-sys", "schannel", "security-framework", "security-framework-sys", "tempfile", ] [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] name = "normalize-line-endings" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "normpath" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" dependencies = [ "windows-sys 0.48.0", ] [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", "winapi", ] [[package]] name = "num_cpus" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ "hermit-abi", "libc", ] [[package]] name = "number_prefix" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "openssl" version = "0.10.56" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" dependencies = [ "bitflags", "cfg-if", "foreign-types", "libc", "once_cell", "openssl-macros", "openssl-sys", ] [[package]] name = "openssl-macros" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" version = "111.27.0+1.1.1v" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02" dependencies = [ "cc", ] [[package]] name = "openssl-sys" version = "0.9.91" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" dependencies = [ "cc", "libc", "openssl-src", "pkg-config", "vcpkg", ] [[package]] name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "os_pipe" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" dependencies = [ "libc", "windows-sys 0.48.0", ] [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", "smallvec", "windows-targets 0.48.2", ] [[package]] name = "paste" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "path-slash" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" [[package]] name = "pep440_rs" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6f6ead185985925c7e2b5ddb57ed5ef9d95835bf3994a5ce74403653898ab6" dependencies = [ "lazy_static", "regex", "serde", "tracing", "unicode-width", ] [[package]] name = "pep508_rs" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0713d7bb861ca2b7d4c50a38e1f31a4b63a2e2df35ef1e5855cc29e108453e2" dependencies = [ "once_cell", "pep440_rs", "regex", "serde", "thiserror", "tracing", "unicode-width", "url", ] [[package]] name = "percent-encoding" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pin-project-lite" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" [[package]] name = "pkg-config" version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plain" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-info" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f" dependencies = [ "libc", "winapi", ] [[package]] name = "portable-atomic" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e" [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "pretty_assertions" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ "diff", "yansi", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "psm" version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" dependencies = [ "cc", ] [[package]] name = "pyproject-toml" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee79feaa9d31e1c417e34219e610b67db4e786ce9b49d77dda549640abb9dc5f" dependencies = [ "indexmap", "pep440_rs", "pep508_rs", "serde", "toml 0.7.4", ] [[package]] name = "python-pkginfo" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa" dependencies = [ "flate2", "fs-err", "mailparse", "rfc2047-decoder", "tar", "thiserror", "zip", ] [[package]] name = "quote" version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] [[package]] name = "quoted_printable" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49" [[package]] name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", ] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] [[package]] name = "rayon" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", ] [[package]] name = "rayon-core" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", "num_cpus", ] [[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "redox_users" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom", "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "rfc2047-decoder" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e" dependencies = [ "base64 0.21.2", "charset", "chumsky", "memchr", "quoted_printable", "thiserror", ] [[package]] name = "ring" version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e" dependencies = [ "cc", "getrandom", "libc", "spin", "untrusted", "windows-sys 0.48.0", ] [[package]] name = "rustc_version" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver", ] [[package]] name = "rustix" version = "0.37.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", "windows-sys 0.48.0", ] [[package]] name = "rustls" version = "0.21.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c" dependencies = [ "log", "ring", "rustls-webpki", "sct", ] [[package]] name = "rustls-pemfile" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ "base64 0.21.2", ] [[package]] name = "rustls-webpki" version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", "untrusted", ] [[package]] name = "rustversion" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ "winapi-util", ] [[package]] name = "schannel" version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ "windows-sys 0.48.0", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "sct" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", "untrusted", ] [[package]] name = "security-framework" version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags", "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", ] [[package]] name = "security-framework-sys" version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", ] [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] [[package]] name = "serde" version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "serde_json" version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "itoa", "ryu", "serde", ] [[package]] name = "serde_spanned" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] [[package]] name = "sha2" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", "digest", ] [[package]] name = "sharded-slab" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" dependencies = [ "lazy_static", ] [[package]] name = "shell-escape" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" [[package]] name = "shell-words" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] name = "shlex" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "similar" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "smawk" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043" [[package]] name = "snapbox" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6bccd62078347f89a914e3004d94582e13824d4e3d8a816317862884c423835" dependencies = [ "anstream", "anstyle", "content_inspector", "dunce", "filetime", "libc", "normalize-line-endings", "os_pipe", "similar", "snapbox-macros", "tempfile", "wait-timeout", "walkdir", "windows-sys 0.45.0", ] [[package]] name = "snapbox-macros" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaaf09df9f0eeae82be96290918520214530e738a7fe5a351b0f24cf77c0ca31" dependencies = [ "anstream", ] [[package]] name = "socks" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" dependencies = [ "byteorder", "libc", "winapi", ] [[package]] name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "stacker" version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" dependencies = [ "cc", "cfg-if", "libc", "psm", "winapi", ] [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "syn" version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "tar" version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", "xattr", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "tempfile" version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", "rustix", "windows-sys 0.48.0", ] [[package]] name = "termcolor" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "terminal_size" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" dependencies = [ "rustix", "windows-sys 0.48.0", ] [[package]] name = "textwrap" version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" dependencies = [ "smawk", "unicode-linebreak", "unicode-width", ] [[package]] name = "thiserror" version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "thread_local" version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", "once_cell", ] [[package]] name = "time" version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ "serde", "time-core", "time-macros", ] [[package]] name = "time-core" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" [[package]] name = "time-macros" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" dependencies = [ "time-core", ] [[package]] name = "tinyvec" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] [[package]] name = "tinyvec_macros" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] [[package]] name = "toml" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec" dependencies = [ "serde", "serde_spanned", "toml_datetime", "toml_edit", ] [[package]] name = "toml_datetime" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" dependencies = [ "serde", ] [[package]] name = "toml_edit" version = "0.19.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", "winnow", ] [[package]] name = "tracing" version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "log", "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "tracing-core" version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", ] [[package]] name = "tracing-log" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ "lazy_static", "log", "tracing-core", ] [[package]] name = "tracing-serde" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ "serde", "tracing-core", ] [[package]] name = "tracing-subscriber" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex", "serde", "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", "tracing-serde", ] [[package]] name = "trycmd" version = "0.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2925e71868a12b173c1eb166018c2d2f9dfaedfcaec747bdb6ea2246785d258e" dependencies = [ "glob", "humantime", "humantime-serde", "rayon", "serde", "shlex", "snapbox", "toml_edit", ] [[package]] name = "twox-hash" version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "rand", "static_assertions", ] [[package]] name = "typenum" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicase" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ "version_check", ] [[package]] name = "unicode-bidi" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-linebreak" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" [[package]] name = "unicode-normalization" version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-width" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "untrusted" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5ccd538d4a604753ebc2f17cd9946e89b77bf87f6a8e2309667c6f2e87855e3" dependencies = [ "base64 0.21.2", "flate2", "log", "native-tls", "once_cell", "rustls", "rustls-webpki", "serde", "serde_json", "socks", "url", "webpki-roots", ] [[package]] name = "url" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", ] [[package]] name = "utf8parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "vcpkg" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "versions" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c73a36bc44e3039f51fbee93e39f41225f6b17b380eb70cc2aab942df06b34dd" dependencies = [ "itertools", "nom", ] [[package]] name = "wait-timeout" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" dependencies = [ "libc", ] [[package]] name = "walkdir" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", "winapi-util", ] [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "webpki-roots" version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "which" version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ "either", "libc", "once_cell", ] [[package]] name = "wild" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b116685a6be0c52f5a103334cbff26db643826c7b3735fc0a3ba9871310a74" dependencies = [ "glob", ] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ "winapi", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ "windows-targets 0.42.2", ] [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ "windows-targets 0.48.2", ] [[package]] name = "windows-targets" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm 0.42.2", "windows_aarch64_msvc 0.42.2", "windows_i686_gnu 0.42.2", "windows_i686_msvc 0.42.2", "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm 0.42.2", "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows-targets" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1eeca1c172a285ee6c2c84c341ccea837e7c01b12fbb2d0fe3c9e550ce49ec8" dependencies = [ "windows_aarch64_gnullvm 0.48.2", "windows_aarch64_msvc 0.48.2", "windows_i686_gnu 0.48.2", "windows_i686_msvc 0.48.2", "windows_x86_64_gnu 0.48.2", "windows_x86_64_gnullvm 0.48.2", "windows_x86_64_msvc 0.48.2", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b10d0c968ba7f6166195e13d593af609ec2e3d24f916f081690695cf5eaffb2f" [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "571d8d4e62f26d4932099a9efe89660e8bd5087775a2ab5cdd8b747b811f1058" [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2229ad223e178db5fbbc8bd8d3835e51e566b8474bfca58d2e6150c48bb723cd" [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "600956e2d840c194eedfc5d18f8242bc2e17c7775b6684488af3a9fff6fe3287" [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea99ff3f8b49fb7a8e0d305e5aec485bd068c2ba691b6e277d29eaeac945868a" [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1a05a1ece9a7a0d5a7ccf30ba2c33e3a61a30e042ffd247567d1de1d94120d" [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d419259aba16b663966e29e6d7c6ecfa0bb8425818bb96f6f1f3c3eb71a6e7b9" [[package]] name = "winnow" version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" dependencies = [ "memchr", ] [[package]] name = "xattr" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", ] [[package]] name = "xwin" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79db6a9fc6b665feccd1984e4e21ff588102652c317176fab0d6706b55d3e208" dependencies = [ "anyhow", "bytes", "cab", "camino", "clap", "cli-table", "flate2", "indicatif", "msi", "native-tls", "parking_lot", "rayon", "regex", "serde", "serde_json", "sha2", "tempfile", "tracing", "tracing-subscriber", "twox-hash", "ureq", "versions", "zip", ] [[package]] name = "yansi" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zeroize" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" [[package]] name = "zip" version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ "byteorder", "bzip2", "crc32fast", "crossbeam-utils", "flate2", "time", ] python-maturin_1.3.2.orig/Cargo.toml0000644000000000000000000001117414525221045014416 0ustar00[package] authors = ["konstin ", "messense "] name = "maturin" version = "1.3.2" description = "Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages" exclude = [ "test-crates/**/*", "sysconfig/*", "test-data/*", "ci/*", "tests/*", "guide/*", ".github/*", ".devcontainer/*", "Dockerfile", ".dockerignore", "deny.toml", "noxfile.py", "test-dockerfile.sh", "Code-of-Conduct.md", ] homepage = "https://github.com/pyo3/maturin" readme = "README.md" repository = "https://github.com/pyo3/maturin" license = "MIT OR Apache-2.0" keywords = ["python", "cffi", "packaging", "pypi", "pyo3"] categories = ["api-bindings", "development-tools::ffi", "command-line-utilities"] edition = "2021" rust-version = "1.64" [[bin]] name = "maturin" [lib] name = "maturin" [dependencies] anyhow = "1.0.63" base64 = "0.21.0" glob = "0.3.0" cargo-config2 = "0.1.9" cargo_metadata = "0.18.0" cargo-options = "0.6.0" cbindgen = { version = "0.26.0", default-features = false } flate2 = "1.0.18" goblin = "0.7.1" platform-info = "2.0.2" regex = "1.7.0" serde = { version = "1.0.141", features = ["derive"] } serde_json = "1.0.80" sha2 = "0.10.3" tar = "0.4.38" tempfile = "3.2.0" toml = "0.7.0" toml_edit = "0.19.1" zip = { version = "0.6.1", default-features = false, features = ["bzip2", "deflate", "time"] } thiserror = "1.0.37" fs-err = "2.5.0" fat-macho = { version = "0.4.7", default-features = false } once_cell = "1.7.2" rustc_version = "0.4.0" semver = "1.0.13" target-lexicon = "0.12.8" indexmap = "1.9.3" pyproject-toml = "0.6.1" python-pkginfo = "0.6.0" textwrap = "0.16.0" ignore = "0.4.20" itertools = "0.11.0" lddtree = "0.3.3" cc = "1.0.72" dunce = "1.0.2" normpath = "1.0.0" path-slash = "0.2.1" pep440_rs = { version = "0.3.6", features = ["serde"] } pep508_rs = { version = "0.2.1", features = ["serde"] } time = "0.3.17" # cli clap = { version = "4.0.0", features = ["derive", "env", "wrap_help"] } clap_complete_command = { version = "0.5.1", optional = true } # cross compile cargo-zigbuild = { version = "0.17.5", default-features = false, optional = true } cargo-xwin = { version = "0.14.7", default-features = false, optional = true } # log tracing = "0.1.36" tracing-subscriber = { version = "0.3.15", features = ["env-filter"], optional = true } # project scaffolding, maturin new/init/generate-ci dialoguer = { version = "0.11.0", default-features = false, optional = true } console = { version = "0.15.4", optional = true } minijinja = { version = "1.0.7", optional = true } # upload bytesize = { version = "1.0.1", optional = true } configparser = { version = "3.0.0", optional = true } dirs = { version = "5.0.0", optional = true } multipart = { version = "0.18.0", features = ["client"], default-features = false, optional = true } ureq = { version = "2.7.0", features = ["gzip", "json", "socks-proxy"], default-features = false, optional = true } native-tls = { version = "0.2.8", optional = true } rustls = { version = "0.21.8", optional = true } rustls-pemfile = { version = "1.0.1", optional = true } keyring = { version = "2.0.0", default-features = false, features = ["linux-no-secret-service"], optional = true } wild = { version = "2.1.0", optional = true } url = { version = "2.4.1", optional = true } [dev-dependencies] expect-test = "1.4.1" indoc = "2.0.3" pretty_assertions = "1.3.0" rustversion = "1.0.9" time = { version = "0.3.17", features = ["macros"] } trycmd = "0.14.11" which = "4.3.0" [features] default = ["full", "rustls"] full = ["cli-completion", "cross-compile", "log", "scaffolding", "upload"] log = ["tracing-subscriber"] cli-completion = ["dep:clap_complete_command"] upload = ["ureq", "multipart", "configparser", "bytesize", "dialoguer/password", "url", "wild", "dep:dirs"] # keyring doesn't support *BSD so it's not enabled in `full` by default password-storage = ["upload", "keyring"] rustls = ["dep:rustls", "ureq?/tls", "cargo-xwin?/rustls-tls", "dep:rustls-pemfile"] native-tls = ["dep:native-tls", "ureq?/native-tls", "cargo-xwin?/native-tls", "dep:rustls-pemfile"] # cross compile using zig or xwin cross-compile = ["zig", "xwin"] zig = ["cargo-zigbuild"] xwin = ["cargo-xwin"] # project scaffolding scaffolding = ["dialoguer", "console", "minijinja"] # Internal feature to speed up the tests significantly faster-tests = [] # Deprecated features, keep it now for compatibility human-panic = [] # Without this, compressing the .gz archive becomes notably slow for debug builds [profile.dev.package.miniz_oxide] opt-level = 3 # Speedup cargo-xwin for debug builds [profile.dev.package.cab] opt-level = 3 [profile.dev.package.msi] opt-level = 3 python-maturin_1.3.2.orig/Changelog.md0000644000000000000000000017042614525221045014705 0ustar00# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) (for the cli, not for the crate). ## [Unreleased] ## [1.3.2] - 2023-11-14 * Add support for uniffi library mode in [#1729](https://github.com/PyO3/maturin/pull/1729) * Un-deprecate `MATURIN_PEP517_ARGS` env var in [#1820](https://github.com/PyO3/maturin/pull/1820) * Fix missing member in Cargo.toml for sdist of nested workspace layout in [#1828](https://github.com/PyO3/maturin/pull/1828) * Escape display name in email addresses of wheel metadata in [#1832](https://github.com/PyO3/maturin/pull/1832) * Fix rewriting workspace Cargo.toml in sdist in [#1841](https://github.com/PyO3/maturin/pull/1841) * Fix glob workspace members matching in sdist in [#1846](https://github.com/PyO3/maturin/pull/1846) ## [1.3.1] - 2023-10-24 * Use external `uniffi-bindgen` if no root package is configured in [#1797](https://github.com/PyO3/maturin/pull/1797) * Fix wheel filename for GraalPy in [#1802](https://github.com/PyO3/maturin/pull/1802) * Add unittest skeleton to mixed Python/Rust projects in [#1807](https://github.com/PyO3/maturin/pull/1807) * Preserve trailing whitespace in new project files in [#1808](https://github.com/PyO3/maturin/pull/1808) * Fix missing `workspace.members` in sdist in [#1811](https://github.com/PyO3/maturin/pull/1811) * Don't set `MACOSX_DEPLOYMENT_TARGET` for editable builds by default in [#1815](https://github.com/PyO3/maturin/pull/1815) ## [1.3.0] - 2023-10-02 * Refactor Cargo sdist generator to avoid rewriting local dependencies in [#1741](https://github.com/PyO3/maturin/pull/1741) * Added `--pip-path` argument to `develop` command in [#1753](https://github.com/PyO3/maturin/pull/1753) * Ignore sdist output files when building sdist in [#1756](https://github.com/PyO3/maturin/pull/1756) * Use `python.exe` by default in `build` command on Windows in [#1757](https://github.com/PyO3/maturin/pull/1757) * Don't require `uniffi-bindgen` to be installed for uniffi bindings in [#1762](https://github.com/PyO3/maturin/pull/1762) * Fix platform tag for graalpy in [#1773](https://github.com/PyO3/maturin/pull/1773) * Always set minor version to 0 when major version >= 11 for macOS in [#1778](https://github.com/PyO3/maturin/pull/1778) * Warning about incorrect maturin version pyproject.toml `[build-system] requires` in [#1793](https://github.com/PyO3/maturin/pull/1793) ## [1.2.3] - 2023-08-17 * Fix sdist build failure with workspace path dependencies by HerringtonDarkholme in [#1739](https://github.com/PyO3/maturin/pull/1739) ## [1.2.2] - 2023-08-14 * Fix non interactive mode check when username/password was supplied from cli in #[1737](https://github.com/PyO3/maturin/pull/1737) ## [1.2.1] - 2023-08-14 * Add non-interactive mode to `upload` command in [#1722](https://github.com/PyO3/maturin/pull/1722) * Fix `link-native-libraries` check for emscripten target in [#1724](https://github.com/PyO3/maturin/pull/1724) * Add support for `ALL_PROXY` to `upload` command in [#1727](https://github.com/PyO3/maturin/pull/1727) * Handle renamed Rust dependency in sdist in [#1728](https://github.com/PyO3/maturin/pull/1728) * Fix invalid TOML when rewriting workspace inherited dependencies in [#1733](https://github.com/PyO3/maturin/pull/1733) ## [1.2.0] - 2023-08-06 * Add basic support for implicit namespaces [#1645](https://github.com/PyO3/maturin/pull/1696) * Add Linux mips64 and mips architecture support in [#1712](https://github.com/PyO3/maturin/pull/1712) * Add `x86_64h-apple-darwin` target support in [#1717](https://github.com/PyO3/maturin/pull/1717) ## [1.1.0] - 2023-06-10 * Add basic support for GraalPy in [#1645](https://github.com/PyO3/maturin/pull/1645) * Refactor abi tag to use `EXT_SUFFIX` in [#1648](https://github.com/PyO3/maturin/pull/1648) * Add Linux loongarch64 architecture support in [#1653](https://github.com/PyO3/maturin/pull/1653) * Add `--skip-install` option to `maturin develop` in [#1654](https://github.com/PyO3/maturin/pull/1654) ## [1.0.1] - 2023-05-28 * Add more Python 3.12 sysconfigs in [#1629](https://github.com/PyO3/maturin/pull/1629) * Fix panicking when no cargo build targets are selected in [#1635](https://github.com/PyO3/maturin/pull/1635) ## [1.0.0] - 2023-05-23 * Add support for multiple `--config-settings` in PEP517 backend in [#1624](https://github.com/PyO3/maturin/pull/1624) * Remove deprecated `--universal2` cli option in [#1620](https://github.com/PyO3/maturin/pull/1620), use `--target universal2-apple-darwin` instead. ## [0.15.3] - 2023-05-20 * Fix cross compile Apple universal2 wheels on non-macOS platforms by MisLink in [#1613](https://github.com/PyO3/maturin/pull/1613) * Add PEP 517 `config_settings` support in [#1619](https://github.com/PyO3/maturin/pull/1619), deprecate `MATURIN_PEP517_ARGS` in favor of the new `build-args` config setting. ## [0.15.2] - 2023-05-16 * When determining the python module name, use pyproject.toml `project.name` over Cargo.toml `package.name` in [#1608](https://github.com/PyO3/maturin/pull/1608) * Fix rewriting `dev-dependencies` in sdist in [#1610](https://github.com/PyO3/maturin/pull/1610) ## [0.15.1] - 2023-05-07 * Fix finding interpreters from bundled sysconfigs in [#1598](https://github.com/PyO3/maturin/pull/1598) ## [0.15.0] - 2023-05-07 * **Breaking Change**: Build with `--no-default-features` by default when bootstrapping from sdist in [#1333](https://github.com/PyO3/maturin/pull/1333) * **Breaking Change**: Remove deprecated `sdist-include` option in `pyproject.toml` in [#1335](https://github.com/PyO3/maturin/pull/1335) * **Breaking Change**: Remove deprecated `python-source` option in `Cargo.toml` in [#1335](https://github.com/PyO3/maturin/pull/1335) * **Breaking Change**: Turn `patchelf` version warning into a hard error in [#1335](https://github.com/PyO3/maturin/pull/1335) * **Breaking Change**: [`uniffi_bindgen` CLI](https://mozilla.github.io/uniffi-rs/tutorial/Prerequisites.html#the-uniffi-bindgen-cli-tool) is required for building `uniffi` bindings wheels in [#1352](https://github.com/PyO3/maturin/pull/1352) * Add Cargo compile targets configuration for filtering multiple bin targets in [#1339](https://github.com/PyO3/maturin/pull/1339) * Respect `rustflags` settings in cargo configuration file in [#1405](https://github.com/PyO3/maturin/pull/1405) * Add support for uniffi 0.23 in [#1481](https://github.com/PyO3/maturin/pull/1481) * Add support for custom TLS certificate authority bundle in [#1483](https://github.com/PyO3/maturin/pull/1483) * Bump MSRV to 1.64.0 in [#1528](https://github.com/PyO3/maturin/pull/1528) * Add wildcards support to publish/upload commands on Windows in [#1534](https://github.com/PyO3/maturin/pull/1534) * Add support for configuring macOS deployment target version in `pyproject.toml` in [#1536](https://github.com/PyO3/maturin/pull/1536) * Rewrite platform specific dependencies in `Cargo.toml` by viccie30 in [#1572](https://github.com/PyO3/maturin/pull/1572) * Add trusted publisher support in [#1578](https://github.com/PyO3/maturin/pull/1578) * Add new `git` source distribution generator in [#1587](https://github.com/PyO3/maturin/pull/1587) ## [0.14.17] - 2023-04-06 * Fix wrong `EXT_SUFFIX` when cross compiling musllinux wheels for Python 3.11 in [#1560](https://github.com/PyO3/maturin/pull/1560) ## [0.14.16] - 2023-03-26 * Deprecate `package.metadata.maturin.name` in favor of `tool.maturin.module-name` in `pyproject.toml` in [#1531](https://github.com/PyO3/maturin/pull/1531) ## [0.14.15] - 2023-03-03 * Add sdist and sccache support to `generate-ci` command ## [0.14.14] - 2023-02-24 * Add support for Emscripten in `generate-ci` command in [#1484](https://github.com/PyO3/maturin/pull/1484) * Add support for linking with pyo3 in abi3 debug mode on Windows in [#1487](https://github.com/PyO3/maturin/pull/1487) * Use default `ext_suffix` for Emscripten target if not provided in `PYO3_CONFIG_FILE` in [#1491](https://github.com/PyO3/maturin/pull/1491) * Deprecate `package.metadata.maturin.data` in favor of `tool.maturin.data` in `pyproject.toml` in [#1492](https://github.com/PyO3/maturin/pull/1492) ## [0.14.13] - 2023-02-12 * `maturin develop` now looks for a virtualenv `.venv` in the current or any parent directory if no virtual environment is active. * Add a new `generate-ci` command to generate CI configuration in [#1456](https://github.com/PyO3/maturin/pull/1456) * Deprecate `--universal2` in favor of `universal2-apple-darwin` target in [#1457](https://github.com/PyO3/maturin/pull/1457) * Raise an error when `Cargo.toml` contains removed python package metadata in [#1471](https://github.com/PyO3/maturin/pull/1471) * Use `extension_name` instead of `module_name` for CFFI extensions in develop mode in [#1476](https://github.com/PyO3/maturin/pull/1476) ## [0.14.12] - 2023-01-31 * Keep `dev-dependencies` in sdist when there are no path dependencies in [#1441](https://github.com/PyO3/maturin/pull/1441) ## [0.14.11] - 2023-01-31 * Don't package dev-only path dependencies in sdist in [#1435](https://github.com/PyO3/maturin/pull/1435) ## [0.14.10] - 2023-01-13 * Use module name specified by `[package.metadata.maturin]` in [#1409](https://github.com/PyO3/maturin/pull/1409) ## [0.14.9] - 2023-01-10 * Don't pass `MACOSX_DEPLOYMENT_TARGET` when query default value from rustc in [#1395](https://github.com/PyO3/maturin/pull/1395) ## [0.14.8] - 2022-12-31 * Add support for packaging multiple pure Python packages in [#1378](https://github.com/PyO3/maturin/pull/1378) * Fallback to sysconfig interpreters for pyo3 bindings in [#1381](https://github.com/PyO3/maturin/pull/1381) ## [0.14.7] - 2022-12-20 * Add workspace lock file to sdist as a fallback in [#1362](https://github.com/PyO3/maturin/pull/1362) ## [0.14.6] - 2022-12-13 * Allow Rust crate to be placed outside of the directory containing `pyproject.toml` in [#1347](https://github.com/PyO3/maturin/pull/1347) * Disallow uniffi bin bindings in [#1353](https://github.com/PyO3/maturin/pull/1353) * Update bundled Python sysconfigs for Linux and macOS ## [0.14.5] - 2022-12-08 * Support `SOURCE_DATE_EPOCH` when building wheels in [#1334](https://github.com/PyO3/maturin/pull/1334) * Fix sdist when all Cargo workspace members are excluded in [#1343](https://github.com/PyO3/maturin/pull/1343) ## [0.14.4] - 2022-12-05 * Expanded architecture support for FreeBSD, NetBSD and OpenBSD in [#1318](https://github.com/PyO3/maturin/pull/1318) * Better error message when upload failed with status code 403 in [#1323](https://github.com/PyO3/maturin/pull/1323) ## [0.14.3] - 2022-12-01 * Bump MSRV to 1.62.0 in [#1297](https://github.com/PyO3/maturin/pull/1297) * Fix build error when required features of bin target isn't enabled in [#1299](https://github.com/PyO3/maturin/pull/1299) * Fix wrong platform tag when building in i386 docker container on x86_64 host in [#1301](https://github.com/PyO3/maturin/pull/1301) * Fix wrong platform tag when building in armv7 docker container on aarch64 host in [#1303](https://github.com/PyO3/maturin/pull/1303) * Add Solaris operating system support in [#1310](https://github.com/PyO3/maturin/pull/1310) * Add armv6 and armv7 target support for FreeBSD in [#1312](https://github.com/PyO3/maturin/pull/1312) * Add riscv64 and powerpc target support for FreeBSD in [#1313](https://github.com/PyO3/maturin/pull/1313) * Fix powerpc64 and powerpc64le Python wheel platform tag for FreeBSD in [#1313](https://github.com/PyO3/maturin/pull/1313) ## [0.14.2] - 2022-11-24 * Tighten src-layout detection logic in [#1281](https://github.com/PyO3/maturin/pull/1282) * Fix generating pep517 sdist for src-layout in [#1288](https://github.com/PyO3/maturin/pull/1288) * Deprecate `python-source` option in `Cargo.toml` in favor of the one in `pyproject.toml` in [#1291](https://github.com/PyO3/maturin/pull/1291) * Fix auditwheel with read-only libraries in [#1292](https://github.com/PyO3/maturin/pull/1292) ## [0.14.1] - 2022-11-20 * Downgrade `cargo_metadata` to 0.15.0 to fix `maturin build` on old Rust versions like 1.48.0 in [#1279](https://github.com/PyO3/maturin/pull/1279) ## [0.14.0] - 2022-11-19 * **Breaking Change**: Remove support for specifying python package metadata in `Cargo.toml` in [#1200](https://github.com/PyO3/maturin/pull/1200). Python package metadata should be specified in the `project` section of `pyproject.toml` instead as [PEP 621](https://peps.python.org/pep-0621/) specifies. * Initial support for shipping bin targets as wasm32-wasi binaries that are run through wasmtime in [#1107](https://github.com/PyO3/maturin/pull/1107). Note that wasmtime currently only support the five most popular platforms and that wasi binaries have restrictions when interacting with the host. Usage is by setting `--target wasm32-wasi`. * Add support for python first [`src` project layout](https://py-pkgs.org/04-package-structure.html#the-source-layout) in [#1185](https://github.com/PyO3/maturin/pull/1185) * Add `--src` option to generate src layout for mixed Python/Rust projects in [#1189](https://github.com/PyO3/maturin/pull/1189) * Add Python metadata support for `license-file` field of `Cargo.toml` in [#1195](https://github.com/PyO3/maturin/pull/1195) * Upgrade to clap 4.0 in [#1197](https://github.com/PyO3/maturin/pull/1197). This bumps MSRV to 1.61.0. * Remove `workspace.members` in `Cargo.toml` from sdist if there isn't any path dependency in #[1227](https://github.com/PyO3/maturin/pull/1227) * Fix auditwheel `libpython` check on Python 3.7 and older versions in [#1229](https://github.com/PyO3/maturin/pull/1229) * Use generic tags when `sys.implementation.name` != `platform.python_implementation()` in [#1232](https://github.com/PyO3/maturin/pull/1232). Fixes the compatibility tags for Pyston. * Set default macOS deployment target version if `MACOSX_DEPLOYMENT_TARGET` isn't specified in [#1251](https://github.com/PyO3/maturin/pull/1251) * Add support for 32-bit x86 FreeBSD target in [#1254](https://github.com/PyO3/maturin/pull/1254) * Add `[tool.maturin.include]` and `[tool.maturin.exclude]` and deprecate `[tool.maturin.sdist-include]` [#1255](https://github.com/PyO3/maturin/pull/1255) * Ignore sdist tar ball instead of error out in [#1259](https://github.com/PyO3/maturin/pull/1259) * Add support for [`uniffi`](https://github.com/mozilla/uniffi-rs) bindings in [#1275](https://github.com/PyO3/maturin/pull/1275) ## [0.13.7] - 2022-10-29 * Fix macOS `LC_ID_DYLIB` for abi3 wheels in [#1208](https://github.com/PyO3/maturin/pull/1208) * Pass `--locked` to Cargo when bootstrap from sdist in [#1212](https://github.com/PyO3/maturin/pull/1212) * Fix build for Python 3.11 on Windows in [#1222](https://github.com/PyO3/maturin/pull/1222) ## [0.13.6] - 2022-10-08 * Fix `maturin develop` in Windows conda virtual environment in [#1146](https://github.com/PyO3/maturin/pull/1146) * Fix build for crate using `pyo3` and `build.rs` without `cdylib` crate type in [#1150](https://github.com/PyO3/maturin/pull/1150) * Fix build on some 32-bit platform by downgrading `indicatif` in [#1163](https://github.com/PyO3/maturin/pull/1163) * Include `Cargo.lock` by default in source distribution in [#1170](https://github.com/PyO3/maturin/pull/1170) ## [0.13.5] - 2022-09-27 * Fix resolving crate name bug in [#1142](https://github.com/PyO3/maturin/pull/1142) ## [0.13.4] - 2022-09-27 * Fix `Cargo.toml` in new project template in [#1109](https://github.com/PyO3/maturin/pull/1109) * Fix `maturin develop` on Windows when using Python installed from msys2 in [#1112](https://github.com/PyO3/maturin/pull/1112) * Fix duplicated `Cargo.toml` of local dependencies in sdist in [#1114](https://github.com/PyO3/maturin/pull/1114) * Add support for Cargo workspace dependencies inheritance in [#1123](https://github.com/PyO3/maturin/pull/1123) * Add support for Cargo workspace metadata inheritance in [#1131](https://github.com/PyO3/maturin/pull/1131) * Use `goblin` instead of shelling out to `patchelf` to get rpath in [#1139](https://github.com/PyO3/maturin/pull/1139) ## [0.13.3] - 2022-09-15 * Allow user to override default Emscripten settings in [#1059](https://github.com/PyO3/maturin/pull/1059) * Enable `--crate-type cdylib` on Rust 1.64.0 in [#1060](https://github.com/PyO3/maturin/pull/1060) * Update MSRV to 1.59.0 in [#1071](https://github.com/PyO3/maturin/pull/1071) * Fix abi3 wheel build when no Python interpreters found in [#1072](https://github.com/PyO3/maturin/pull/1072) * Add `zig ar` support in [#1073](https://github.com/PyO3/maturin/pull/1073) * Fix sdist build for optional path dependencies in [#1084](https://github.com/PyO3/maturin/pull/1084) * auditwheel: find dylibs in Cargo target directory in [#1092](https://github.com/PyO3/maturin/pull/1092) * Add library search paths in Cargo target directory to rpath in editable mode on Linux in [#1094](https://github.com/PyO3/maturin/pull/1094) * Remove default manifest path for `maturin sdist` command in [#1097](https://github.com/PyO3/maturin/pull/1097) * Fix sdist when `pyproject.toml` isn't in the same dir of `Cargo.toml` in [#1099](https://github.com/PyO3/maturin/pull/1099) * Change readme and license paths in `pyproject.toml` to be relative to `pyproject.toml` in [#1100](https://github.com/PyO3/maturin/pull/1100). It's technically a **breaking change**, but previously it doesn't work properly. * Add python source files specified in pyproject.toml to sdist in [#1102](https://github.com/PyO3/maturin/pull/1102) * Change `sdist-include` paths to be relative to `pyproject.toml` in [#1103](https://github.com/PyO3/maturin/pull/1103) ## [0.13.2] - 2022-08-14 * Deprecate manylinux 2010 support in [#858](https://github.com/PyO3/maturin/pull/858). The [manylinux](https://github.com/pypa/manylinux) project already dropped its support and the rustc compiler will [drop glibc 2.12 support in 1.64.0](https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html). * Add Linux mips64el architecture support in [#1023](https://github.com/PyO3/maturin/pull/1023) * Add Linux mipsel architecture support in [#1024](https://github.com/PyO3/maturin/pull/1024) * Add Linux 32-bit powerpc architecture support in [#1026](https://github.com/PyO3/maturin/pull/1026) * Add Linux sparc64 architecture support in [#1027](https://github.com/PyO3/maturin/pull/1027) * Add PEP 440 local version identifier support in [#1037](https://github.com/PyO3/maturin/pull/1037) * Fix inconsistent `Cargo.toml` and `pyproject.toml` path handling in [#1043](https://github.com/PyO3/maturin/pull/1043) * Find python module next to `pyproject.toml` if `pyproject.toml` exists in [#1044](https://github.com/PyO3/maturin/pull/1044). It's technically a **breaking change**, but previously it doesn't work properly if the directory containing `pyproject.toml` isn't recognized as project root. * Add `python-source` option to `[tool.maturin]` section of pyproject.toml in [#1046](https://github.com/PyO3/maturin/pull/1046) * Deprecate support for specifying python metadata in `Cargo.toml` in [#1048](https://github.com/PyO3/maturin/pull/1048). Please migrate to [PEP 621](https://peps.python.org/pep-0621/) instead. * Change `python-source` to be relative to the file specifies it in [#1049](https://github.com/PyO3/maturin/pull/1049) * Change `data` to be relative to the file specifies it in [#1051](https://github.com/PyO3/maturin/pull/1051) * Don't reinstall dependencies in `maturin develop` in [#1052](https://github.com/PyO3/maturin/pull/1052) * Find `pyproject.toml` in parent directories of `Cargo.toml` in [#1054](https://github.com/PyO3/maturin/pull/1054) ## [0.13.1] - 2022-07-26 * Add 64-bit RISC-V support by felixonmars in [#1001](https://github.com/PyO3/maturin/pull/1001) * Add support for invoking with `python3 -m maturin` in [#1008](https://github.com/PyO3/maturin/pull/1008) * Fix detection of optional dependencies when declaring `features` in `pyproject.toml` in [#1014](https://github.com/PyO3/maturin/pull/1014) * Respect user specified Rust target in `maturin develop` in [#1016](https://github.com/PyO3/maturin/pull/1016) * Use `cargo rustc --crate-type cdylib` on Rust nightly/dev channel in [#1020](https://github.com/PyO3/maturin/pull/1020) ## [0.13.0] - 2022-07-09 * **Breaking Change**: Drop support for python 3.6, which is end of life in [#945](https://github.com/PyO3/maturin/pull/945) * **Breaking Change**: Don't build source distribution by default in `maturin build` command in [#955](https://github.com/PyO3/maturin/pull/955), `--no-sdist` option is replaced by `--sdist` * **Breaking Change**: maturin no longer search for python interpreters by default and only build for current interpreter in `PATH` in [#964](https://github.com/PyO3/maturin/pull/964) * **Breaking Change**: Removed `--cargo-extra-args` and `--rustc-extra-args` options in [#972](https://github.com/PyO3/maturin/pull/972). You can now pass all common `cargo build` arguments directly to `maturin build` * **Breaking Change**: `--repository-url` option in `upload` command no longer accepts plain repository name, full url required and `-r` short option moved to `--repository` in [#987](https://github.com/PyO3/maturin/pull/987) * Add support for building with multiple binary targets in [#948](https://github.com/PyO3/maturin/pull/948) * Add a `--target` option to `maturin list-python` command in [#957](https://github.com/PyO3/maturin/pull/957) * Add support for using bundled python sysconfigs for PyPy when abi3 feature is enabled in [#958](https://github.com/PyO3/maturin/pull/958) * Add support for cross compiling PyPy wheels when abi3 feature is enabled in [#963](https://github.com/PyO3/maturin/pull/963) * Add `--find-interpreter` option to `build` and `publish` commands to search for python interpreters in [#964](https://github.com/PyO3/maturin/pull/964) * Infer target triple from `ARCHFLAGS` for macOS to be compatible with `cibuildwheel` in [#967](https://github.com/PyO3/maturin/pull/967) * Expose commonly used Cargo CLI options in `maturin build` command in [#972](https://github.com/PyO3/maturin/pull/972) * Add support for `wasm32-unknown-emscripten` target in [#974](https://github.com/PyO3/maturin/pull/974) * Allow overriding platform release version using env var in [#975](https://github.com/PyO3/maturin/pull/975) * Fix `maturin develop` for arm64 Python on M1 Mac when default toolchain is x86_64 in [#980](https://github.com/PyO3/maturin/pull/980) * Add `--repository` option to `maturin upload` command in [#987](https://github.com/PyO3/maturin/pull/987) * Only lookup bundled Python sysconfig when interpreters aren't specified as file path in [#988](https://github.com/PyO3/maturin/pull/988) * Find CPython upper to 3.12 and PyPy upper to 3.10 in [#993](https://github.com/PyO3/maturin/pull/993) * Add short alias `maturin b` for `maturin build` and `maturin dev` for `maturin develop` subcommands in [#994](https://github.com/PyO3/maturin/pull/994) ## [0.12.20] - 2022-06-15 * Fix incompatibility with cibuildwheel for 32-bit Windows in [#951](https://github.com/PyO3/maturin/pull/951) * Don't require `pip` error messages to be utf-8 encoding in [#953](https://github.com/PyO3/maturin/pull/953) * Compare minimum python version requirement between `requires-python` and bindings crate in [#954](https://github.com/PyO3/maturin/pull/954) * Set `PYO3_PYTHON` env var for PyPy when abi3 is enabled in [#960](https://github.com/PyO3/maturin/pull/960) * Add sysconfigs for x64 Windows PyPy in [#962](https://github.com/PyO3/maturin/pull/962) * Add support for Linux armv6l in [#966](https://github.com/PyO3/maturin/pull/966) * Fix auditwheel bundled shared libs directory name in [#969](https://github.com/PyO3/maturin/pull/969) ## [0.12.19] - 2022-06-05 * Fix Windows Store install detection in [#949](https://github.com/PyO3/maturin/pull/949) * Filter Python interpreters by target pointer width on Windows in [#950](https://github.com/PyO3/maturin/pull/950) ## [0.12.18] - 2022-05-29 * Add support for building bin bindings wheels with multiple platform tags in [#928](https://github.com/PyO3/maturin/pull/928) * Skip auditwheel for non-compliant linux environment automatically in [#931](https://github.com/PyO3/maturin/pull/931) * Fix abi3 wheel build issue when no Python interpreters found on host in [#933](https://github.com/PyO3/maturin/pull/933) * Add Python 3.11 sysconfigs for Linux, macOS and Windows in [#934](https://github.com/PyO3/maturin/pull/934) * Add Python 3.11 sysconfig for arm64 Windows in [#936](https://github.com/PyO3/maturin/pull/936) * Add network proxy support to upload command in [#939](https://github.com/PyO3/maturin/pull/939) * Fix python interpreter detection on arm64 Windows in [#940](https://github.com/PyO3/maturin/pull/940) * Fallback to `py -X.Y` when `pythonX.Y` cannot be found on Windows in [#943](https://github.com/PyO3/maturin/pull/943) * Auto-detect Python Installs from Microsoft Store in [#944](https://github.com/PyO3/maturin/pull/944) * Add bindings detection to bin targets in [#938](https://github.com/PyO3/maturin/pull/938) ## [0.12.17] - 2022-05-18 * Don't consider compile to i686 on x86_64 Windows cross compiling in [#923](https://github.com/PyO3/maturin/pull/923) * Accept `-i x.y` and `-i python-x.y` in `maturin build` command in [#925](https://github.com/PyO3/maturin/pull/925) ## [0.12.16] - 2022-05-16 * Add Linux armv7l python sysconfig in [#901](https://github.com/PyO3/maturin/pull/901) * Add NetBSD python sysconfig in [#903](https://github.com/PyO3/maturin/pull/903) * Update 'replace_needed' to reduce total calls to 'patchelf' in [#905](https://github.com/PyO3/maturin/pull/905) * Add wheel data support in [#906](https://github.com/PyO3/maturin/pull/906) * Allow use python interpreters from bundled sysconfig when not cross compiling in [#907](https://github.com/PyO3/maturin/pull/907) * Use setuptools-rust for bootstrapping in [#909](https://github.com/PyO3/maturin/pull/909) * Allow setting the publish repository URL via `MATURIN_REPOSITORY_URL` in [#913](https://github.com/PyO3/maturin/pull/913) * Allow stubs-only mixed project layout in [#914](https://github.com/PyO3/maturin/pull/914) * Allow setting the publish user name via `MATURIN_USERNAME` in [#915](https://github.com/PyO3/maturin/pull/915) * Add Windows python sysconfig in [#917](https://github.com/PyO3/maturin/pull/917) * Add support for `generate-import-lib` feature of pyo3 in [#918](https://github.com/PyO3/maturin/pull/918) * Integrate [`cargo-xwin`](https://github.com/messense/cargo-xwin) for cross compiling to Windows MSVC targets in [#919](https://github.com/PyO3/maturin/pull/919) ## [0.12.15] - 2022-05-07 * Re-export `__all__` for pure Rust projects in [#886](https://github.com/PyO3/maturin/pull/886) * Stop setting `RUSTFLAGS` environment variable to an empty string in [#887](https://github.com/PyO3/maturin/pull/887) * Add hardcoded well-known sysconfigs for effortless cross compiling in [#896](https://github.com/PyO3/maturin/pull/896) * Add support for `PYO3_CONFIG_FILE` in [#899](https://github.com/PyO3/maturin/pull/899) ## [0.12.14] - 2022-04-25 * Fix PyPy pep517 build when abi3 feature is enabled in [#883](https://github.com/PyO3/maturin/pull/883) ## [0.12.13] - 2022-04-25 * Stop setting `PYO3_NO_PYTHON` environment variable for pyo3 0.16.4 and later in [#875](https://github.com/PyO3/maturin/pull/875) * Build Windows abi3 wheels for `pyo3` 0.16.4 and later versions with `generate-abi3-import-lib` feature enabled no longer require a Python interpreter in [#879](https://github.com/PyO3/maturin/pull/879) ## [0.12.12] - 2022-04-07 * Migrate docker image to GitHub container registry in [#845](https://github.com/PyO3/maturin/pull/845) * Change mixed rust/python template project layout for new projects in [#855](https://github.com/PyO3/maturin/pull/855) * Automatically include license files in `.dist-info/license_files` following PEP 639 in [#862](https://github.com/PyO3/maturin/pull/862) * Bring back multiple values support for `--interpreter` option in [#873](https://github.com/PyO3/maturin/pull/873) * Update the default edition to 2021 for new projects by sa- in [#874](https://github.com/PyO3/maturin/pull/874) * Drop `python3.6` from `ghcr.io/pyo3/maturin` docker image. ## [0.12.11] - 2022-03-15 * Package license files in `.dist-info/license_files` following PEP 639 in [#837](https://github.com/PyO3/maturin/pull/837) * Stop testing Python 3.6 on CI since it's already EOL in [#840](https://github.com/PyO3/maturin/pull/840) * Update workspace members for sdist local dependencies in [#844](https://github.com/PyO3/maturin/pull/844) * Migrate docker image to github container registry in [#845](https://github.com/PyO3/maturin/pull/845) * Remove `PYO3_NO_PYTHON` hack for Windows in [#848](https://github.com/PyO3/maturin/pull/848) * Remove Windows abi3 python lib link hack in [#851](https://github.com/PyO3/maturin/pull/851) * Add `-r` option as a short alias for `--release` in [#854](https://github.com/PyO3/maturin/pull/854) ## [0.12.10] - 2022-03-09 * Add support for `pyo3-ffi` by ijl in [#804](https://github.com/PyO3/maturin/pull/804) * Defaults to `musllinux_1_2` for musl target if it's not bin bindings in [#808](https://github.com/PyO3/maturin/pull/808) * Remove support for building only sdist via `maturin build -i` in [#813](https://github.com/PyO3/maturin/pull/813), use `maturin sdist` instead. * Add macOS target support for `--zig` in [#817](https://github.com/PyO3/maturin/pull/817) * Migrate Python dependency `toml` to `tomllib` / `tomli` by Contextualist in [#821](https://github.com/PyO3/maturin/pull/821) * Disable auditwheel for PEP 517 build wheel process in [#823](https://github.com/PyO3/maturin/pull/823) * Lookup existing cffi `header.h` in workspace target directory in [#833](https://github.com/PyO3/maturin/pull/833) * Fix license line ending in wheel metadata for Windows in [#836](https://github.com/PyO3/maturin/pull/836) ## [0.12.9] - 2022-02-09 * Don't require `pyproject.toml` when cargo manifest is not specified in [#806](https://github.com/PyO3/maturin/pull/806) ## [0.12.8] - 2022-02-08 * Add missing `--version` flag from clap 3.0 upgrade ## [0.12.7] - 2022-02-08 * Add support for using [`zig cc`](https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html) as linker for easier cross compiling and manylinux compliance in [#756](https://github.com/PyO3/maturin/pull/756) * Switch from reqwest to ureq to reduce dependencies in [#767](https://github.com/PyO3/maturin/pull/767) * Fix missing Python submodule in wheel in [#772](https://github.com/PyO3/maturin/pull/772) * Add support for specifying cargo manifest path in pyproject.toml in [#781](https://github.com/PyO3/maturin/pull/781) * Add support for passing arguments to pep517 command via `MATURIN_PEP517_ARGS` env var in [#786](https://github.com/PyO3/maturin/pull/786) * Fix auditwheel `No such file or directory` error when `LD_LIBRARY_PATH` contains non-existent paths in [#794](https://github.com/PyO3/maturin/pull/794) ## [0.12.6] - 2021-12-31 * Add support for repairing cross compiled linux wheels in [#754](https://github.com/PyO3/maturin/pull/754) * Add support for `manylinux_2_28` and `manylinux_2_31` in [#755](https://github.com/PyO3/maturin/pull/755) * Remove existing so file first in `maturin develop` command to avoid triggering SIGSEV in running process in [#760](https://github.com/PyO3/maturin/pull/760) ## [0.12.5] - 2021-12-20 * Fix docs for `new` and `init` commands in `maturin --help` in [#734](https://github.com/PyO3/maturin/pull/734) * Add support for x86_64 Haiku in [#735](https://github.com/PyO3/maturin/pull/735) * Fix undefined auditwheel policy panic in [#740](https://github.com/PyO3/maturin/pull/740) * Fix sdist upload for packages where the pkgname contains multiple underscores in [#741](https://github.com/PyO3/maturin/pull/741) * Implement auditwheel repair with patchelf in [#742](https://github.com/PyO3/maturin/pull/742) * Add `Cargo.lock` to sdist when `--locked` or `--frozen` specified in [#749](https://github.com/PyO3/maturin/pull/749) * Infer readme file if not specified in [#751](https://github.com/PyO3/maturin/pull/751) ## [0.12.4] - 2021-12-06 * Add a `maturin init` command as a companion to `maturin new` in [#719](https://github.com/PyO3/maturin/pull/719) * Don't package non-path-dep crates in sdist for workspaces in [#720](https://github.com/PyO3/maturin/pull/720) * Build release packages with `password-storage` feature in [#725](https://github.com/PyO3/maturin/pull/725) * Add support for x86_64 DargonFly BSD in [#727](https://github.com/PyO3/maturin/pull/727) * Add a Python import hook in [#729](https://github.com/PyO3/maturin/pull/729) * Allow pip warnings in `maturin develop` command in [#732](https://github.com/PyO3/maturin/pull/732) ## [0.12.3] - 2021-11-29 * Use platform tag from `sysconfig.platform` on non-portable Linux in [#709](https://github.com/PyO3/maturin/pull/709) * Consider current machine architecture when generating platform tags for abi3 wheels on linux in [#709](https://github.com/PyO3/maturin/pull/709) * Revert back to Rust 2018 edition in [#710](https://github.com/PyO3/maturin/pull/710) * Warn missing `cffi` package dependency in [#711](https://github.com/PyO3/maturin/pull/711) * Add support for Illumos in [#712](https://github.com/PyO3/maturin/pull/712) * Account for `MACOSX_DEPLOYMENT_TARGET` env var in wheel platform tag in [#716](https://github.com/PyO3/maturin/pull/716) ## [0.12.2] - 2021-11-26 * Add support for excluding files from wheels by `.gitignore` in [#695](https://github.com/PyO3/maturin/pull/695) * Fix `pip install maturin` on OpenBSD 6.8 in [#697](https://github.com/PyO3/maturin/pull/697) * Add support for x86, x86_64 and aarch64 on NetBSD in [#704](https://github.com/PyO3/maturin/pull/704) * Add a `maturin new` command for bootstrapping new projects in [#705](https://github.com/PyO3/maturin/pull/705) ## [0.12.1] - 2021-11-21 * Add support for cross compiling PyPy wheels in [#687](https://github.com/PyO3/maturin/pull/687) * Fix `sysconfig.get_platform` parsing for macOS in [#690](https://github.com/PyO3/maturin/pull/690) ## [0.12.0] - 2021-11-19 * Add support for PEP 660 editable installs in [#648](https://github.com/PyO3/maturin/pull/648) * Publish musllinux_1_1 wheels for maturin in [#651](https://github.com/PyO3/maturin/pull/651) * Refactor `develop` command to act identical to PEP 660 editable wheels in [#653](https://github.com/PyO3/maturin/pull/653) * Upgrade to Rust 2021 edition in [#655](https://github.com/PyO3/maturin/pull/655) * Add support for powerpc64 and powerpc64le on FreeBSD by pkubaj in [#656](https://github.com/PyO3/maturin/pull/656) * Fix false positive missing pyinit warning on arm64 macOS in [#673](https://github.com/PyO3/maturin/pull/673) * Build without rustls on arm64 Windows by nsait-linaro in [#674](https://github.com/PyO3/maturin/pull/674) * Publish Windows arm64 wheels to PyPI by nsait-linaro in [#675](https://github.com/PyO3/maturin/pull/675) * Add support for building on Windows mingw platforms in [#677](https://github.com/PyO3/maturin/pull/677) * Allow building for non-abi3 pypy wheels when the abi3 feature is enabled in [#678](https://github.com/PyO3/maturin/pull/678) * Add support for cross compiling to different operating systems in [#680](https://github.com/PyO3/maturin/pull/680) ## [0.11.5] - 2021-10-13 * Fixed module documentation missing bug of pyo3 bindings in [#639](https://github.com/PyO3/maturin/pull/639) * Fix musllinux auditwheel wrongly detects libc forbidden link in [#643](https://github.com/PyO3/maturin/pull/643) * Fix finding conda Python interpreters on Windows by RobertColton in [#644](https://github.com/PyO3/maturin/pull/644) * Fix Unicode metadata when uploading to PyPI in [#645](https://github.com/PyO3/maturin/pull/645) * Fix incorrectly folded long `Summary` metadata * Fix cross compilation for Python 3.10 in [#646](https://github.com/PyO3/maturin/pull/646) ## [0.11.4] - 2021-09-28 * Autodetect PyPy executables in [#617](https://github.com/PyO3/maturin/pull/617) * auditwheel: add `libz.so.1` to whitelisted libraries in [#625](https://github.com/PyO3/maturin/pull/625) * auditwheel: detect musl libc in [#629](https://github.com/PyO3/maturin/pull/629) * Fixed Python 3.10 and later versions detection on Windows in [#630](https://github.com/PyO3/maturin/pull/630) * Install entrypoint scripts in `maturin develop` command in [#633](https://github.com/PyO3/maturin/pull/633) and [#634](https://github.com/PyO3/maturin/pull/634) * Add support for installing optional dependencies in `maturin develop` command in [#635](https://github.com/PyO3/maturin/pull/635) * Fixed build error when `manylinux`/`compatibility` options is specified in `pyproject.toml` in [#637](https://github.com/PyO3/maturin/pull/637) ## [0.11.3] - 2021-08-25 * Add path option for Python source in [#584](https://github.com/PyO3/maturin/pull/584) * Add auditwheel support for musllinux in [#597](https://github.com/PyO3/maturin/pull/597) * `[tool.maturin]` options from `pyproject.toml` will be used automatically in [#605](https://github.com/PyO3/maturin/pull/605) * Skip unavailable Python interpreters from pyenv in [#609](https://github.com/PyO3/maturin/pull/609) ## [0.11.2] - 2021-07-20 * Use UTF-8 encoding when reading `pyproject.toml` by domdfcoding in [#588](https://github.com/PyO3/maturin/pull/588) * Use Cargo's `repository` field as `Source Code` in project URL in [#590](https://github.com/PyO3/maturin/pull/590) * Fold long header fields in Python metadata in [#594](https://github.com/PyO3/maturin/pull/594) * Fix `maturin develop` for PyPy on Unix in [#596](https://github.com/PyO3/maturin/pull/596) ## [0.11.1] - 2021-07-10 * Fix sdist error when VCS has uncommitted renamed files in [#585](https://github.com/PyO3/maturin/pull/585) * Add `maturin completions ` command to generate shell completions in [#586](https://github.com/PyO3/maturin/pull/586) ## [0.11.0] - 2021-07-04 * Add support for reading metadata from [PEP 621](https://www.python.org/dev/peps/pep-0621/) project table in `pyproject.toml` in [#555](https://github.com/PyO3/maturin/pull/555) * Users should migrate away from the old `[package.metadata.maturin]` table of `Cargo.toml` to this new `[project]` table of `pyproject.toml` * Add PEP 656 musllinux support in [#543](https://github.com/PyO3/maturin/pull/543) * `--manylinux` is now called `--compatibility` and supports musllinux * The pure rust install layout changed from just the shared library to a python module that reexports the shared library. This should have now observable consequences for users of the created wheel expect that `my_project.my_project` is now also importable (and equal to just `my_project`) * Add support for packaging type stubs in pure Rust project layout in [#567](https://github.com/PyO3/maturin/pull/567) * Support i386 on OpenBSD in [#568](https://github.com/PyO3/maturin/pull/568) * Support Aarch64 on OpenBSD in [#570](https://github.com/PyO3/maturin/pull/570) * Support Aarch64 on FreeBSD in [#571](https://github.com/PyO3/maturin/pull/571) * `Cargo.toml`'s `authors` field is now optional per Rust [RFC 3052](https://github.com/rust-lang/rfcs/blob/master/text/3052-optional-authors-field.md) in [#573](https://github.com/PyO3/maturin/pull/573) * Allow dotted keys in `Cargo.toml` by switch from `toml_edit` to `toml` crate in [#577](https://github.com/PyO3/maturin/pull/577) * Fix source distribution with local path dependencies on Windows in [#580](https://github.com/PyO3/maturin/pull/580) ## [0.10.6] - 2021-05-21 * Fix corrupted macOS binary release in [#547](https://github.com/PyO3/maturin/pull/547) * Fix build with the "upload" feature disabled by ravenexp in [#548](https://github.com/PyO3/maturin/pull/548) ## [0.10.5] - 2021-05-21 * Add `manylinux_2_27` support in [#521](https://github.com/PyO3/maturin/pull/521) * Add support for Windows arm64 target in [#524](https://github.com/PyO3/maturin/pull/524) * Always output PEP 600 platform tags in [#525](https://github.com/PyO3/maturin/pull/525) * Fix missing `PyInit_` warning with Rust submodule in [#528](https://github.com/PyO3/maturin/pull/528) * Better cross compiling support for PyO3 binding on Unix in [#454](https://github.com/PyO3/maturin/pull/454) * Fix s390x architecture support in [#530](https://github.com/PyO3/maturin/pull/530) * Fix auditwheel panic with s390x wheels in [#532](https://github.com/PyO3/maturin/pull/532) * Support uploading heterogeneous wheels by ravenexp in [#544](https://github.com/PyO3/maturin/pull/544) * Warn about `pyproject.toml` missing maturin version constraint in [#545](https://github.com/PyO3/maturin/pull/545) ## [0.10.4] - 2021-04-28 * Interpreter search now uses python 3.6 to 3.12 in [#495](https://github.com/PyO3/maturin/pull/495) * Consider requires-python when searching for interpreters in [#495](https://github.com/PyO3/maturin/pull/495) * Support Rust extension as a submodule in mixed Python/Rust projects in [#489](https://github.com/PyO3/maturin/pull/489) ## [0.10.3] - 2021-04-13 * The `upload` command is now implemented, it is mostly similar to `twine upload`. [#484](https://github.com/PyO3/maturin/pull/484) * Interpreter search now uses python 3.6 to 3.12 * Add basic support for OpenBSD in [#496](https://github.com/PyO3/maturin/pull/496) * Fix the PowerPC platform by messense in [#503](https://github.com/PyO3/maturin/pull/503) ## [0.10.2] - 2021-04-03 * Fix `--target` being silently ignored ## [0.10.1] - 2021-04-03 * Fix a regression in 0.10.0 that would incorrectly assume we're building for musl instead of gnu by messense in [#487](https://github.com/PyO3/maturin/pull/487) * Basic s390x support ## [0.10.0] - 2021-04-02 * Change manylinux default version based on target arch by messense in [#424](https://github.com/PyO3/maturin/pull/424) * Support local path dependencies in source distribution (i.e. you can now package a workspace into an sdist) * Set a more reasonable LC_ID_DYLIB entry on macOS by messense [#433](https://github.com/PyO3/maturin/pull/433) * Add `--skip-existing` option to publish by messense [#444](https://github.com/PyO3/maturin/pull/444) * maturn develop install dependencies automatically by messense [#443](https://github.com/PyO3/maturin/pull/443) * Load credential from pypirc using repository name instead of package name by messense [#445](https://github.com/PyO3/maturin/pull/445) * Add `manylinux_2_24` support in [#451](https://github.com/PyO3/maturin/pull/451) * Improve error message when auditwheel failed to find versioned offending symbols in [#452](https://github.com/PyO3/maturin/pull/452) * Add auditwheel test to CI in [#455](https://github.com/PyO3/maturin/pull/455) * Fix sdist transitive path dependencies. * auditwheel choose higher priority tag when possible in [#456](https://github.com/PyO3/maturin/pull/456), dropped `auditwheel` Cargo feature. * develop now writes an [INSTALLER](https://packaging.python.org/specifications/recording-installed-packages/#the-installer-file) file * develop removes an old .dist-info directory if it exists before installing the new one * Fix wheels for PyPy on windows containing extension modules with incorrect names. [#482](https://github.com/PyO3/maturin/pull/482) ## [0.9.4] - 2021-02-18 * Fix building a bin with musl ## [0.9.3] * CI failure ## [0.9.2] - 2021-02-17 * Escape version in wheel metadata by messense in [#420](https://github.com/PyO3/maturin/pull/420) * Set executable bit on shared library by messense in [#421](https://github.com/PyO3/maturin/pull/421) * Rename `classifier` to `classifiers` for pypi compatibility. The old `classifier` is still available and now also works with pypi * Fix building for musl by automatically setting `-C target-feature=-crt-static` ## [0.9.1] - 2021-01-13 * Error when the `abi3` feature is selected but no minimum version * Support building universal2 wheels (x86 and aarch64 in a single file) by messense in [#403](https://github.com/PyO3/maturin/pull/403) * Recognize `PYO3_CROSS_LIB_DIR` for cross compiling with abi3 targeting windows. * `package.metadata.maturin.classifier` is renamed to `classifiers` by kngwyu in [#416](https://github.com/PyO3/maturin/pull/416) * Added more instructions to building complex manylinux setups ## [0.9.0] - 2021-01-10 * Added support for building abi3 wheels with pyo3 0.13.1 * Python 3.9 is supported (it should have worked before, but it is now tested on ci) * There are 64-bit and aarch64 binary builds for linux and 64-bit builds for windows, mac and freebsd-12-1 * The auditwheel options have changed to `--manylinux=[off|2010|2014]` with manylinux2010 as default, and optionally `--skip-auditwheel`. * Removed Python 3.5 since it is unsupported * The default and minimum manylinux version is now manylinux2010 * restructured text (rst) readmes are now supported, by clbarnes in [#360](https://github.com/PyO3/maturin/pull/360) * Allow python 3 interpreter with debuginfo use maturin by inevity in [#370](https://github.com/PyO3/maturin/pull/370) * pypirc is checked for credentials by houqp in [#374](https://github.com/PyO3/maturin/pull/374) * Added support for PowerPC by mzpqnxow and programmerjake in [#366](https://github.com/PyO3/maturin/pull/366) * `project-url` is now a toml dictionary instead of a toml list to conform to the standard * No more retry loop when the password was wrong * When bootstrapping, also search for `cargo.exe` if `cargo` was not found ## [0.8.3] - 2020-08-17 ### Added * tox is now supported due to a bugfix in the latest version of tox * `[tool.maturin]` now supports `sdist-include = ["path/**/*"]` to include arbitrary files in source distributions ([#296](https://github.com/PyO3/maturin/pull/296)). * Add support for PyO3 `0.12`'s `PYO3_PYTHON` environment variable. [#331](https://github.com/PyO3/maturin/pull/331) ### Fixed * Fix incorrectly returning full path (not basename) from PEP 517 `build_sdist` hook. This fixes tox support from maturin's side * Packages installed with `maturin develop` are now visible to pip and can be uninstalled with pip ## [0.8.2] - 2020-06-29 ### Added * Python 3.8 was added to PATH in the docker image by oconnor663 in [#302](https://github.com/PyO3/maturin/pull/302) ## [0.8.1] - 2020-04-30 ### Added * cffi is installed if it's missing and python is running inside a virtualenv. ## [0.8.0] - 2020-04-03 ### Added * There is now a binary wheel for aarch64 * Warn if there are local dependencies ### Fixed * Omit author_email if `@` is not found in authors by evandrocoan in [#290](https://github.com/PyO3/maturin/pull/290) ## [0.7.9] - 2020-03-06 ### Fixed * This release includes binary wheels for mac os ## [0.7.8] - 2020-03-06 ### Added * Added support from arm, specifically arm7l, aarch64 by ijl in [#273](https://github.com/PyO3/maturin/pull/273) * Added support for manylinux2014 by ijl in [#273](https://github.com/PyO3/maturin/pull/273) ### Fixed * Remove python 2 from tags by ijl in [#254](https://github.com/PyO3/maturin/pull/254) * 32-bit wheels didn't work on linux. This has been fixed by dae in [#250](https://github.com/PyO3/maturin/pull/250) * The path of the RECORD file on windows used a backward slash instead of a forward slash ## [0.7.7] - 2019-11-12 ### Added * The setup.py installer for bootstrapping maturin now checks for cargo instead of failing with a complex error message. * Upload errors now show the filesize ### Changed * maturin's metadata now lists a requirement of python3.5 or later to install. ## [0.7.6] - 2019-09-28 ### Changed * Only `--features`, `--no-default-features` and `--all-features` in `--cargo-extra-args` are passed to `cargo metadata` when determining the bindings, fixing problems in the previous release with arguments supported by `cargo build` but by `cargo metadata`. ## [0.7.5] - 2019-09-24 ### Fixed * Fix clippy error to fix publishing from ci ## [0.7.4] - 2019-09-22 ### Fixed * Fix tests ## [0.7.3] - 2019-09-22 ### Fixed * Fix building when the bindings crate is behind a feature flag ## [0.7.3] - 2019-09-22 ## Removed * The manylinux docker container doesn't contain musl anymore. If you're targeting musl, there's no need to use manylinux. ## [0.7.2] - 2019-09-05 ### Added * Allow cross compilation with cffi and a python interpreter with the host target ### Fixed * Renamed a folder to maturin so PEP 517 backend works again. ## [0.7.1] - 2019-08-31 ### Added * `maturin build --interpreter`/`maturin publish --interpreter` builds only a source distribution. ## [0.7.0] - 2019-08-30 With this release, the name of this project changes from _pyo3-pack_ to _maturin_. ### Added * Mixed rust/python layout * Added PEP 517 support * Added a `maturin sdist` command as workaround for [pypa/pip#6041](https://github.com/pypa/pip/issues/6041) * Support settings all applicable fields from the python core metadata specification in Cargo.toml * Support for FreeBSD by kxepal [#173](https://github.com/PyO3/maturin/pull/173) ## [0.6.1] ### Fixed * Downgraded to structopt 0.2.16 to avoid the yanked 0.2.17 ## [0.6.0] ### Added * Basic pypy support by ijl [#105](https://github.com/PyO3/maturin/pull/105) ### Removed * Python 2 support * The custom progress bar was removed and cargo's output is shown instead ## [0.5.0] ### Added * Support for conda environments on windows by paddyhoran [#52](https://github.com/PyO3/maturin/pull/52) * maturin will generate a header for cffi crates using cbinding, which means you don't need a `build.rs` anymore. The option to provide your own header file using a `build.rs` still exists. * The [konstin2/maturin](https://cloud.docker.com/u/konstin2/repository/docker/konstin2/maturin) docker image makes it easy to build fully manylinux compliant wheels. See the readme for usage details. * Support for manylinux2010 by ijl [#70](https://github.com/PyO3/maturin/pull/70) * The `--manxlinux=[1|1-unchecked|2010|2010-unchecked|off]` option allows to build for manylinux1 and manylinux2010, both with audithweel (`1` or `2010`) and without (`1-unchecked` or `2010-unchecked`), but also for the native linux tag with `off`. ### Changed * The `--skip-auditwheel` flag has been deprecated in favor of `--manxlinux=[1|1-unchecked|2010|2010-unchecked|off]`. * Switched to rustls. This means the upload feature can be used from the docker container and builds of maturin itself are manylinux compliant when compiled with the musl target. ## [0.4.2] - 2018-12-15 Fixup release because the appveyor failed to release artifacts for windows for 0.4.1. ## [0.4.1] - 2018-12-15 ### Added * You can now specify [trove classifiers](https://pypi.org/classifiers/) in your Cargo.toml with `package.metadata.maturin.classifier`. Implemented by ijl in [#48](https://github.com/PyO3/maturin/pull/48). Example: ```toml [package.metadata.maturin] classifier = ["Programming Language :: Python"] ``` ## [0.4.0] - 2018-11-20 ### Changed * publish defaults to release and strip, unless `--debug` or `--no-strip` are given. ### Added * New ci script based on hyperfine which also builds debian packages. ## [0.3.10] - 2018-11-16 ### Fixed * Fix rust-cpython detection and compilation ## [0.3.9] ### Changed * Update reqwest to 0.9.4 which has [seanmonstar/reqwest#374](https://github.com/seanmonstar/reqwest/issues/374) fixed ## [0.3.8] ### Fixed * Pin reqwest to 0.9.2 to work around [seanmonstar/reqwest#374](https://github.com/seanmonstar/reqwest/issues/374) ## [0.3.7] ### Fixed * Added cargo lock to project [#9](https://github.com/PyO3/maturin/issues/9) ## [0.3.6] With deflate and the strip options, the wheels get about 25x smaller: wheel | baseline | deflate | strip + deflate -|-|-|- get_fourtytwo-2.0.1-cp36-cp36m-manylinux1_x86_64.whl | 2,8M | 771K | 102K hello_world-0.1.0-py2.py3-none-manylinux1_x86_64.whl | 3,9M | 1,1M | 180K points-0.1.0-py2.py3-none-manylinux1_x86_64.whl | 2,8M | 752K | 85K ### Added * `--strip` by ijl [#7](https://github.com/PyO3/maturin/pull/7) ### Changed * Renamed `--bindings-crate` to `--bindings` * Use deflate compression for zips by ijl [#6](https://github.com/PyO3/maturin/pull/6) ### Fixed * `--target` is now actually used for the wheel compatibility tag ## [0.3.5] - 2018-09-20 ### Changed * Upgraded to reqwest 0.9 ### Fixed * "Broken Pipe" with musl builds (through the reqwest upgrade) ## [0.3.4] - 2018-09-18 ### Added * A `--target` option which behaves like cargo option of the same name ### Changed * Musl and auditwheel compliance: Using the new `musl` feature combined with the musl target, you can build completely static binaries. The `password-storage`, which enables keyring integration, is now disabled by default. The Pypi packages are now statically linked with musl so that they are audtiwheel compliant. * Replaced `--debug` with `--release`. All builds are now debug by default ## [0.3.3] - 2018-09-17 ### Added * Builds for i686 linux and mac * Builds for maturin as wheel ## Fixed * Usage with stable * Wrong tags in WHEEL file on non-linux platforms * Uploading on windows ## [0.3.1] - 2017-09-14 ### Fixed * Windows compilation ## [0.3.0] - 2017-09-14 ### Added * Packaging binaries * [Published on pypi](https://pypi.org/project/maturin/). You can now `pip install maturin` * A Dockerfile based on manylinux1 ### Fixed * Travis ci setup builds all types of wheels for linux and mac * `--no-default-features --features auditwheel` creates a manylinux compliant binary for maturin ### Changed * Replaced elfkit with goblin ## [0.2.0] - 2018-09-03 ### Added * Cffi support * A `develop` subcommand * A tox example ### Changed * Show a progress bar for cargo's compile progress ## 0.1.0 - 2018-08-22 * Initial Release [Unreleased]: https://github.com/pyo3/maturin/compare/v1.3.2...HEAD [1.3.2]: https://github.com/pyo3/maturin/compare/v1.3.1...v1.3.2 [1.3.1]: https://github.com/pyo3/maturin/compare/v1.3.0...v1.3.1 [1.3.0]: https://github.com/pyo3/maturin/compare/v1.2.3...v1.3.0 [1.2.3]: https://github.com/pyo3/maturin/compare/v1.2.2...v1.2.3 [1.2.2]: https://github.com/pyo3/maturin/compare/v1.2.1...v1.2.2 [1.2.1]: https://github.com/pyo3/maturin/compare/v1.2.0...v1.2.1 [1.2.0]: https://github.com/pyo3/maturin/compare/v1.1.0...v1.2.0 [1.1.0]: https://github.com/pyo3/maturin/compare/v1.0.1...v1.1.0 [1.0.1]: https://github.com/pyo3/maturin/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/pyo3/maturin/compare/v0.15.3...v1.0.0 [0.15.3]: https://github.com/pyo3/maturin/compare/v0.15.2...v0.15.3 [0.15.2]: https://github.com/pyo3/maturin/compare/v0.15.1...v0.15.2 [0.15.1]: https://github.com/pyo3/maturin/compare/v0.15.0...v0.15.1 [0.15.0]: https://github.com/pyo3/maturin/compare/v0.14.17...v0.15.0 [0.14.17]: https://github.com/pyo3/maturin/compare/v0.14.16...v0.14.17 [0.14.16]: https://github.com/pyo3/maturin/compare/v0.14.15...v0.14.16 [0.14.15]: https://github.com/pyo3/maturin/compare/v0.14.14...v0.14.15 [0.14.14]: https://github.com/pyo3/maturin/compare/v0.14.13...v0.14.14 [0.14.13]: https://github.com/pyo3/maturin/compare/v0.14.12...v0.14.13 [0.14.12]: https://github.com/pyo3/maturin/compare/v0.14.11...v0.14.12 [0.14.11]: https://github.com/pyo3/maturin/compare/v0.14.10...v0.14.11 [0.14.10]: https://github.com/pyo3/maturin/compare/v0.14.9...v0.14.10 [0.14.9]: https://github.com/pyo3/maturin/compare/v0.14.8...v0.14.9 [0.14.8]: https://github.com/pyo3/maturin/compare/v0.14.7...v0.14.8 [0.14.7]: https://github.com/pyo3/maturin/compare/v0.14.6...v0.14.7 [0.14.6]: https://github.com/pyo3/maturin/compare/v0.14.5...v0.14.6 [0.14.5]: https://github.com/pyo3/maturin/compare/v0.14.4...v0.14.5 [0.14.4]: https://github.com/pyo3/maturin/compare/v0.14.3...v0.14.4 [0.14.3]: https://github.com/pyo3/maturin/compare/v0.14.2...v0.14.3 [0.14.2]: https://github.com/pyo3/maturin/compare/v0.14.1...v0.14.2 [0.14.1]: https://github.com/pyo3/maturin/compare/v0.14.0...v0.14.1 [0.14.0]: https://github.com/pyo3/maturin/compare/v0.13.7...v0.14.0 [0.13.7]: https://github.com/pyo3/maturin/compare/v0.13.6...v0.13.7 [0.13.6]: https://github.com/pyo3/maturin/compare/v0.13.5...v0.13.6 [0.13.5]: https://github.com/pyo3/maturin/compare/v0.13.4...v0.13.5 [0.13.4]: https://github.com/pyo3/maturin/compare/v0.13.3...v0.13.4 [0.13.3]: https://github.com/pyo3/maturin/compare/v0.13.2...v0.13.3 [0.13.2]: https://github.com/pyo3/maturin/compare/v0.13.1...v0.13.2 [0.13.1]: https://github.com/pyo3/maturin/compare/v0.13.0...v0.13.1 [0.13.0]: https://github.com/pyo3/maturin/compare/v0.12.20...v0.13.0 [0.12.20]: https://github.com/pyo3/maturin/compare/v0.12.19...v0.12.20 [0.12.19]: https://github.com/pyo3/maturin/compare/v0.12.18...v0.12.19 [0.12.18]: https://github.com/pyo3/maturin/compare/v0.12.17...v0.12.18 [0.12.17]: https://github.com/pyo3/maturin/compare/v0.12.16...v0.12.17 [0.12.16]: https://github.com/pyo3/maturin/compare/v0.12.15...v0.12.16 [0.12.15]: https://github.com/pyo3/maturin/compare/v0.12.14...v0.12.15 [0.12.14]: https://github.com/pyo3/maturin/compare/v0.12.13...v0.12.14 [0.12.13]: https://github.com/pyo3/maturin/compare/v0.12.12...v0.12.13 [0.12.12]: https://github.com/pyo3/maturin/compare/v0.12.11...v0.12.12 [0.12.11]: https://github.com/pyo3/maturin/compare/v0.12.10...v0.12.11 [0.12.10]: https://github.com/pyo3/maturin/compare/v0.12.9...v0.12.10 [0.12.9]: https://github.com/pyo3/maturin/compare/v0.12.8...v0.12.9 [0.12.8]: https://github.com/pyo3/maturin/compare/v0.12.7...v0.12.8 [0.12.7]: https://github.com/pyo3/maturin/compare/v0.12.6...v0.12.7 [0.12.6]: https://github.com/pyo3/maturin/compare/v0.12.5...v0.12.6 [0.12.5]: https://github.com/pyo3/maturin/compare/v0.12.4...v0.12.5 [0.12.4]: https://github.com/pyo3/maturin/compare/v0.12.3...v0.12.4 [0.12.3]: https://github.com/pyo3/maturin/compare/v0.12.2...v0.12.3 [0.12.2]: https://github.com/pyo3/maturin/compare/v0.12.1...v0.12.2 [0.12.1]: https://github.com/pyo3/maturin/compare/v0.12.0...v0.12.1 [0.12.0]: https://github.com/pyo3/maturin/compare/v0.11.5...v0.12.0 [0.11.5]: https://github.com/pyo3/maturin/compare/v0.11.4...v0.11.5 [0.11.4]: https://github.com/pyo3/maturin/compare/v0.11.3...v0.11.4 [0.11.3]: https://github.com/pyo3/maturin/compare/v0.11.2...v0.11.3 [0.11.2]: https://github.com/pyo3/maturin/compare/v0.11.1...v0.11.2 [0.11.1]: https://github.com/pyo3/maturin/compare/v0.11.0...v0.11.1 [0.11.0]: https://github.com/pyo3/maturin/compare/v0.10.6...v0.11.0 [0.10.6]: https://github.com/pyo3/maturin/compare/v0.10.5...v0.10.6 [0.10.5]: https://github.com/pyo3/maturin/compare/v0.10.4...v0.10.5 [0.10.4]: https://github.com/pyo3/maturin/compare/v0.10.3...v0.10.4 [0.10.3]: https://github.com/pyo3/maturin/compare/v0.10.2...v0.10.3 [0.10.2]: https://github.com/pyo3/maturin/compare/v0.10.1...v0.10.2 [0.10.1]: https://github.com/pyo3/maturin/compare/v0.10.0...v0.10.1 [0.10.0]: https://github.com/pyo3/maturin/compare/v0.9.4...v0.10.0 [0.9.4]: https://github.com/pyo3/maturin/compare/v0.9.3...v0.9.4 [0.9.3]: https://github.com/pyo3/maturin/compare/v0.9.2...v0.9.3 [0.9.2]: https://github.com/pyo3/maturin/compare/v0.9.1...v0.9.2 [0.9.1]: https://github.com/pyo3/maturin/compare/v0.9.0...v0.9.1 [0.9.0]: https://github.com/pyo3/maturin/compare/v0.8.3...v0.9.0 [0.8.3]: https://github.com/pyo3/maturin/compare/v0.8.2...v0.8.3 [0.8.2]: https://github.com/pyo3/maturin/compare/v0.8.1...v0.8.2 [0.8.1]: https://github.com/pyo3/maturin/compare/v0.8.0...v0.8.1 [0.8.0]: https://github.com/pyo3/maturin/compare/v0.7.9...v0.8.0 [0.7.9]: https://github.com/pyo3/maturin/compare/v0.7.8...v0.7.9 [0.7.8]: https://github.com/pyo3/maturin/compare/v0.7.7...v0.7.8 [0.7.7]: https://github.com/pyo3/maturin/compare/v0.7.6...v0.7.7 [0.7.6]: https://github.com/pyo3/maturin/compare/v0.7.5...v0.7.6 [0.7.5]: https://github.com/pyo3/maturin/compare/v0.7.4...v0.7.5 [0.7.4]: https://github.com/pyo3/maturin/compare/v0.7.3...v0.7.4 [0.7.3]: https://github.com/pyo3/maturin/compare/v0.7.2...v0.7.3 [0.7.2]: https://github.com/pyo3/maturin/compare/v0.7.1...v0.7.2 [0.7.1]: https://github.com/pyo3/maturin/compare/v0.7.0...v0.7.1 [0.7.0]: https://github.com/pyo3/maturin/compare/v0.6.1...v0.7.0 [0.6.1]: https://github.com/pyo3/maturin/compare/v0.6.0...v0.6.1 [0.6.0]: https://github.com/pyo3/maturin/compare/v0.5.0...v0.6.0 [0.5.0]: https://github.com/pyo3/maturin/compare/v0.4.2...v0.5.0 [0.4.2]: https://github.com/pyo3/maturin/compare/v0.4.1...v0.4.2 [0.4.1]: https://github.com/pyo3/maturin/compare/v0.4.0...v0.4.1 [0.4.0]: https://github.com/pyo3/maturin/compare/v0.3.10...v0.4.0 [0.3.10]: https://github.com/pyo3/maturin/compare/v0.3.9...v0.3.10 [0.3.9]: https://github.com/pyo3/maturin/compare/v0.3.8...v0.3.9 [0.3.8]: https://github.com/pyo3/maturin/compare/v0.3.7...v0.3.8 [0.3.7]: https://github.com/pyo3/maturin/compare/v0.3.6...v0.3.7 [0.3.6]: https://github.com/pyo3/maturin/compare/v0.3.5...v0.3.5 [0.3.5]: https://github.com/pyo3/maturin/compare/v0.3.4...v0.3.5 [0.3.4]: https://github.com/pyo3/maturin/compare/v0.3.3...v0.3.4 [0.3.3]: https://github.com/pyo3/maturin/compare/v0.3.1...v0.3.3 [0.3.1]: https://github.com/pyo3/maturin/compare/v0.3.0...v0.3.1 [0.3.0]: https://github.com/pyo3/maturin/compare/v0.2.0...v0.3.0 [0.2.0]: https://github.com/pyo3/maturin/compare/v0.1.0...v0.2.0 python-maturin_1.3.2.orig/Code-of-Conduct.md0000644000000000000000000000623314525221045015661 0ustar00# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at konstin@mailbox.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org python-maturin_1.3.2.orig/Dockerfile0000644000000000000000000000455014525221045014460 0ustar00# x86_64 base FROM quay.io/pypa/manylinux2014_x86_64 as base-amd64 # x86_64 builder FROM --platform=$BUILDPLATFORM ghcr.io/rust-cross/rust-musl-cross:x86_64-musl as builder-amd64 # aarch64 base FROM quay.io/pypa/manylinux2014_aarch64 as base-arm64 # aarch64 cross compile builder FROM --platform=$BUILDPLATFORM ghcr.io/rust-cross/rust-musl-cross:aarch64-musl as builder-arm64 ARG TARGETARCH FROM builder-$TARGETARCH as builder ENV PATH /root/.cargo/bin:$PATH # Compile dependencies only for build caching ADD Cargo.toml /maturin/Cargo.toml ADD Cargo.lock /maturin/Cargo.lock RUN --mount=type=cache,target=/root/.cargo/git \ --mount=type=cache,target=/root/.cargo/registry \ --mount=type=cache,target=/maturin/target,sharing=locked \ mkdir /maturin/src && \ touch /maturin/src/lib.rs && \ echo 'fn main() { println!("Dummy") }' > /maturin/src/main.rs && \ cargo rustc --target $CARGO_BUILD_TARGET --bin maturin --manifest-path /maturin/Cargo.toml --release --features password-storage -- -C link-arg=-s ADD . /maturin/ # Manually update the timestamps as ADD keeps the local timestamps and cargo would then believe the cache is fresh RUN touch /maturin/src/lib.rs /maturin/src/main.rs RUN --mount=type=cache,target=/root/.cargo/git \ --mount=type=cache,target=/root/.cargo/registry \ --mount=type=cache,target=/maturin/target,sharing=locked \ cargo rustc --target $CARGO_BUILD_TARGET --bin maturin --manifest-path /maturin/Cargo.toml --release --features password-storage -- -C link-arg=-s \ && mv /maturin/target/$CARGO_BUILD_TARGET/release/maturin /usr/bin/maturin FROM base-$TARGETARCH ENV PATH /root/.cargo/bin:$PATH # Add all supported python versions ENV PATH /opt/python/cp38-cp38/bin:/opt/python/cp39-cp39/bin:/opt/python/cp310-cp310/bin:/opt/python/cp311-cp311/bin:/opt/python/cp312-cp312/bin:$PATH # Otherwise `cargo new` errors ENV USER root RUN curl --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ && yum install -y libffi-devel openssh-clients \ && python3.8 -m pip install --no-cache-dir cffi \ && python3.9 -m pip install --no-cache-dir cffi \ && python3.10 -m pip install --no-cache-dir cffi \ && python3.11 -m pip install --no-cache-dir cffi \ && python3.12 -m pip install --no-cache-dir cffi \ && mkdir /io COPY --from=builder /usr/bin/maturin /usr/bin/maturin WORKDIR /io ENTRYPOINT ["/usr/bin/maturin"] python-maturin_1.3.2.orig/MANIFEST.in0000644000000000000000000000036514357373401014233 0ustar00include Cargo.toml Cargo.lock include README.md include license-apache license-mit recursive-include src *.rs *.py recursive-include src/auditwheel *.json recursive-include src/python_interpreter *.py *.json recursive-include src/templates *.j2 python-maturin_1.3.2.orig/README.md0000644000000000000000000004126514525221045013751 0ustar00# Maturin _formerly pyo3-pack_ [![Maturin User Guide](https://img.shields.io/badge/user-guide-brightgreen?logo=readthedocs&style=flat-square)](https://maturin.rs) [![Crates.io](https://img.shields.io/crates/v/maturin.svg?logo=rust&style=flat-square)](https://crates.io/crates/maturin) [![PyPI](https://img.shields.io/pypi/v/maturin.svg?logo=python&style=flat-square)](https://pypi.org/project/maturin) [![Actions Status](https://img.shields.io/github/actions/workflow/status/PyO3/maturin/test.yml?branch=main&logo=github&style=flat-square)](https://github.com/PyO3/maturin/actions) [![FreeBSD](https://img.shields.io/cirrus/github/PyO3/maturin/main?logo=CircleCI&style=flat-square)](https://cirrus-ci.com/github/PyO3/maturin) [![Chat on Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?logo=gitter&style=flat-square)](https://gitter.im/PyO3/Lobby) Build and publish crates with pyo3, rust-cpython, cffi and uniffi bindings as well as rust binaries as python packages. This project is meant as a zero configuration replacement for [setuptools-rust](https://github.com/PyO3/setuptools-rust) and [milksnake](https://github.com/getsentry/milksnake). It supports building wheels for python 3.7+ on windows, linux, mac and freebsd, can upload them to [pypi](https://pypi.org/) and has basic pypy and graalpy support. Check out the [User Guide](https://maturin.rs/)! ## Usage You can either download binaries from the [latest release](https://github.com/PyO3/maturin/releases/latest) or install it with pip: ```shell pip install maturin ``` There are four main commands: * `maturin new` creates a new cargo project with maturin configured. * `maturin publish` builds the crate into python packages and publishes them to pypi. * `maturin build` builds the wheels and stores them in a folder (`target/wheels` by default), but doesn't upload them. It's possible to upload those with [twine](https://github.com/pypa/twine) or `maturin upload`. * `maturin develop` builds the crate and installs it as a python module directly in the current virtualenv. Note that while `maturin develop` is faster, it doesn't support all the feature that running `pip install` after `maturin build` supports. `pyo3` and `rust-cpython` bindings are automatically detected. For cffi or binaries, you need to pass `-b cffi` or `-b bin`. maturin doesn't need extra configuration files and doesn't clash with an existing setuptools-rust or milksnake configuration. You can even integrate it with testing tools such as [tox](https://tox.readthedocs.io/en/latest/). There are examples for the different bindings in the `test-crates` folder. The name of the package will be the name of the cargo project, i.e. the name field in the `[package]` section of `Cargo.toml`. The name of the module, which you are using when importing, will be the `name` value in the `[lib]` section (which defaults to the name of the package). For binaries, it's simply the name of the binary generated by cargo. ## Python packaging basics Python packages come in two formats: A built form called wheel and source distributions (sdist), both of which are archives. A wheel can be compatible with any python version, interpreter (cpython and pypy, mainly), operating system and hardware architecture (for pure python wheels), can be limited to a specific platform and architecture (e.g. when using ctypes or cffi) or to a specific python interpreter and version on a specific architecture and operating system (e.g. with pyo3 and rust-cpython). When using `pip install` on a package, pip tries to find a matching wheel and install that. If it doesn't find one, it downloads the source distribution and builds a wheel for the current platform, which requires the right compilers to be installed. Installing a wheel is much faster than installing a source distribution as building wheels is generally slow. When you publish a package to be installable with `pip install`, you upload it to [pypi](https://pypi.org/), the official package repository. For testing, you can use [test pypi](https://test.pypi.org/) instead, which you can use with `pip install --index-url https://test.pypi.org/simple/`. Note that for publishing for linux, [you need to use the manylinux docker container](#manylinux-and-auditwheel), while for publishing from your repository you can use the [PyO3/maturin-action github action](https://github.com/PyO3/maturin-action). ## pyo3 and rust-cpython For pyo3 and rust-cpython, maturin can only build packages for installed python versions. On linux and mac, all python versions in `PATH` are used. If you don't set your own interpreters with `-i`, a heuristic is used to search for python installations. On windows all versions from the python launcher (which is installed by default by the python.org installer) and all conda environments except base are used. You can check which versions are picked up with the `list-python` subcommand. pyo3 will set the used python interpreter in the environment variable `PYTHON_SYS_EXECUTABLE`, which can be used from custom build scripts. Maturin can build and upload wheels for pypy with pyo3, even though only pypy3.7-7.3 on linux is tested. ## Cffi Cffi wheels are compatible with all python versions including pypy. If `cffi` isn't installed and python is running inside a virtualenv, maturin will install it, otherwise you have to install it yourself (`pip install cffi`). maturin uses cbindgen to generate a header file, which can be customized by configuring cbindgen through a `cbindgen.toml` file inside your project root. Alternatively you can use a build script that writes a header file to `$PROJECT_ROOT/target/header.h`. Based on the header file maturin generates a module which exports an `ffi` and a `lib` object.
Example of a custom build script ```rust use cbindgen; use std::env; use std::path::Path; fn main() { let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); let bindings = cbindgen::Builder::new() .with_no_includes() .with_language(cbindgen::Language::C) .with_crate(crate_dir) .generate() .unwrap(); bindings.write_to_file(Path::new("target").join("header.h")); } ```
## uniffi uniffi bindings use [uniffi-rs](https://mozilla.github.io/uniffi-rs/) to generate Python `ctypes` bindings from an interface definition file. uniffi wheels are compatible with all python versions including pypy. ## Mixed rust/python projects To create a mixed rust/python project, create a folder with your module name (i.e. `lib.name` in Cargo.toml) next to your Cargo.toml and add your python sources there: ``` my-project ├── Cargo.toml ├── my_project │   ├── __init__.py │   └── bar.py ├── pyproject.toml ├── README.md └── src    └── lib.rs ``` You can specify a different python source directory in `pyproject.toml` by setting `tool.maturin.python-source`, for example **pyproject.toml** ```toml [tool.maturin] python-source = "python" module-name = "my_project._lib_name" ``` then the project structure would look like this: ``` my-project ├── Cargo.toml ├── python │ └── my_project │ ├── __init__.py │ └── bar.py ├── pyproject.toml ├── README.md └── src    └── lib.rs ``` > **Note** > > This structure is recommended to avoid [a common `ImportError` pitfall](https://github.com/PyO3/maturin/issues/490) maturin will add the native extension as a module in your python folder. When using develop, maturin will copy the native library and for cffi also the glue code to your python folder. You should add those files to your gitignore. With cffi you can do `from .my_project import lib` and then use `lib.my_native_function`, with pyo3/rust-cpython you can directly `from .my_project import my_native_function`. Example layout with pyo3 after `maturin develop`: ``` my-project ├── Cargo.toml ├── my_project │   ├── __init__.py │   ├── bar.py │   └── _lib_name.cpython-36m-x86_64-linux-gnu.so ├── README.md └── src    └── lib.rs ``` When doing this also be sure to set the module name in your code to match the last part of `module-name` (don't include the package path): ``` #[pymodule] #[pyo3(name="_lib_name")] fn my_lib_name(_py: Python<'_>, m: &PyModule) -> PyResult<()> { m.add_class::()?; Ok(()) } ``` ## Python metadata maturin supports [PEP 621](https://www.python.org/dev/peps/pep-0621/), you can specify python package metadata in `pyproject.toml`. maturin merges metadata from `Cargo.toml` and `pyproject.toml`, `pyproject.toml` take precedence over `Cargo.toml`. To specify python dependencies, add a list `dependencies` in a `[project]` section in the `pyproject.toml`. This list is equivalent to `install_requires` in setuptools: ```toml [project] name = "my-project" dependencies = ["flask~=1.1.0", "toml==0.10.0"] ``` Pip allows adding so called console scripts, which are shell commands that execute some function in you program. You can add console scripts in a section `[project.scripts]`. The keys are the script names while the values are the path to the function in the format `some.module.path:class.function`, where the `class` part is optional. The function is called with no arguments. Example: ```toml [project.scripts] get_42 = "my_project:DummyClass.get_42" ``` You can also specify [trove classifiers](https://pypi.org/classifiers/) in your `pyproject.toml` under `project.classifiers`: ```toml [project] name = "my-project" classifiers = ["Programming Language :: Python"] ``` ## Source distribution maturin supports building through `pyproject.toml`. To use it, create a `pyproject.toml` next to your `Cargo.toml` with the following content: ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" ``` If a `pyproject.toml` with a `[build-system]` entry is present, maturin can build a source distribution of your package when `--sdist` is specified. The source distribution will contain the same files as `cargo package`. To only build a source distribution, pass `--interpreter` without any values. You can then e.g. install your package with `pip install .`. With `pip install . -v` you can see the output of cargo and maturin. You can use the options `compatibility`, `skip-auditwheel`, `bindings`, `strip` and common Cargo build options such as `features` under `[tool.maturin]` the same way you would when running maturin directly. The `bindings` key is required for cffi and bin projects as those can't be automatically detected. Currently, all builds are in release mode (see [this thread](https://discuss.python.org/t/pep-517-debug-vs-release-builds/1924) for details). For a non-manylinux build with cffi bindings you could use the following: ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [tool.maturin] bindings = "cffi" compatibility = "linux" ``` `manylinux` option is also accepted as an alias of `compatibility` for backward compatibility with old version of maturin. To include arbitrary files in the sdist for use during compilation specify `include` as an array of `path` globs with `format` set to `sdist`: ```toml [tool.maturin] include = [{ path = "path/**/*", format = "sdist" }] ``` There's a `maturin sdist` command for only building a source distribution as workaround for [pypa/pip#6041](https://github.com/pypa/pip/issues/6041). ## Manylinux and auditwheel For portability reasons, native python modules on linux must only dynamically link a set of very few libraries which are installed basically everywhere, hence the name manylinux. The pypa offers special docker images and a tool called [auditwheel](https://github.com/pypa/auditwheel/) to ensure compliance with the [manylinux rules](https://peps.python.org/pep-0599/#the-manylinux2014-policy). If you want to publish widely usable wheels for linux pypi, **you need to use a manylinux docker image**. The Rust compiler since version 1.64 [requires at least glibc 2.17](https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html), so you need to use at least manylinux2014. For publishing, we recommend enforcing the same manylinux version as the image with the manylinux flag, e.g. use `--manylinux 2014` if you are building in `quay.io/pypa/manylinux2014_x86_64`. The [PyO3/maturin-action](https://github.com/PyO3/maturin-action) github action already takes care of this if you set e.g. `manylinux: 2014`. maturin contains a reimplementation of auditwheel automatically checks the generated library and gives the wheel the proper. If your system's glibc is too new or you link other shared libraries, it will assign the `linux` tag. You can also manually disable those checks and directly use native linux target with `--manylinux off`. For full manylinux compliance you need to compile in a CentOS docker container. The [pyo3/maturin](https://ghcr.io/pyo3/maturin) image is based on the manylinux2014 image, and passes arguments to the `maturin` binary. You can use it like this: ``` docker run --rm -v $(pwd):/io ghcr.io/pyo3/maturin build --release # or other maturin arguments ``` Note that this image is very basic and only contains python, maturin and stable rust. If you need additional tools, you can run commands inside the manylinux container. See [konstin/complex-manylinux-maturin-docker](https://github.com/konstin/complex-manylinux-maturin-docker) for a small educational example or [nanoporetech/fast-ctc-decode](https://github.com/nanoporetech/fast-ctc-decode/blob/b226ea0f2b2f4f474eff47349703d57d2ea4801b/.github/workflows/publish.yml) for a real world setup. maturin itself is manylinux compliant when compiled for the musl target. ## Examples * [ballista-python](https://github.com/apache/arrow-ballista-python) - A Python library that binds to Apache Arrow distributed query engine Ballista * [chardetng-py](https://github.com/john-parton/chardetng-py) - Python binding for the chardetng character encoding detector. * [connector-x](https://github.com/sfu-db/connector-x/tree/main/connectorx-python) - ConnectorX enables you to load data from databases into Python in the fastest and most memory efficient way * [datafusion-python](https://github.com/apache/arrow-datafusion-python) - a Python library that binds to Apache Arrow in-memory query engine DataFusion * [deltalake-python](https://github.com/delta-io/delta-rs/tree/main/python) - Native Delta Lake Python binding based on delta-rs with Pandas integration * [opendal](https://github.com/apache/incubator-opendal/tree/main/bindings/python) - OpenDAL Python Binding to access data freely * [orjson](https://github.com/ijl/orjson) - A fast, correct JSON library for Python * [polars](https://github.com/pola-rs/polars/tree/master/py-polars) - Fast multi-threaded DataFrame library in Rust | Python | Node.js * [pydantic-core](https://github.com/pydantic/pydantic-core) - Core validation logic for pydantic written in Rust * [pyrus-cramjam](https://github.com/milesgranger/pyrus-cramjam) - Thin Python wrapper to de/compression algorithms in Rust * [pyxel](https://github.com/kitao/pyxel) - A retro game engine for Python * [roapi](https://github.com/roapi/roapi) - ROAPI automatically spins up read-only APIs for static datasets without requiring you to write a single line of code * [robyn](https://github.com/sansyrox/robyn) - A fast and extensible async python web server with a Rust runtime * [ruff](https://github.com/charliermarsh/ruff) - An extremely fast Python linter, written in Rust * [tantivy-py](https://github.com/quickwit-oss/tantivy-py) - Python bindings for Tantivy * [watchfiles](https://github.com/samuelcolvin/watchfiles) - Simple, modern and high performance file watching and code reload in python * [wonnx](https://github.com/webonnx/wonnx/tree/master/wonnx-py) - Wonnx is a GPU-accelerated ONNX inference run-time written 100% in Rust ## Contributing Everyone is welcomed to contribute to maturin! There are many ways to support the project, such as: - help maturin users with issues on GitHub and Gitter - improve documentation - write features and bugfixes - publish blogs and examples of how to use maturin Our [contributing notes](https://github.com/PyO3/maturin/blob/main/guide/src/contributing.md) have more resources if you wish to volunteer time for maturin and are searching where to start. If you don't have time to contribute yourself but still wish to support the project's future success, some of our maintainers have GitHub sponsorship pages: - [messense](https://github.com/sponsors/messense) ## License Licensed under either of: * Apache License, Version 2.0, ([LICENSE-APACHE](https://github.com/PyO3/maturin/blob/main/license-apache) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](https://github.com/PyO3/maturin/blob/main/license-mit) or http://opensource.org/licenses/MIT) at your option. python-maturin_1.3.2.orig/ci/0000755000000000000000000000000013374650440013063 5ustar00python-maturin_1.3.2.orig/clippy.toml0000644000000000000000000000002014407041274014652 0ustar00msrv = "1.64.0" python-maturin_1.3.2.orig/deny.toml0000644000000000000000000002307214525221045014322 0ustar00# This template contains all of the possible sections and their default values # Note that all fields that take a lint level have these possible values: # * deny - An error will be produced and the check will fail # * warn - A warning will be produced, but the check will not fail # * allow - No warning or error will be produced, though in some cases a note # will be # The values provided in this template are the default values that will be used # when any section or field is not specified in your own configuration # If 1 or more target triples (and optionally, target_features) are specified, # only the specified targets will be checked when running `cargo deny check`. # This means, if a particular package is only ever used as a target specific # dependency, such as, for example, the `nix` crate only being used via the # `target_family = "unix"` configuration, that only having windows targets in # this list would mean the nix crate, as well as any of its exclusive # dependencies not shared by any other crates, would be ignored, as the target # list here is effectively saying which targets you are building for. targets = [ # The triple can be any string, but only the target triples built in to # rustc (as of 1.40) can be checked against actual config expressions { triple = "x86_64-unknown-linux-musl" }, { triple = "x86_64-unknown-linux-gnu" }, { triple = "aarch64-unknown-linux-gnu" }, { triple = "x86_64-pc-windows-msvc" }, { triple = "x86_64-apple-darwin" }, { triple = "aarch64-apple-darwin" }, # You can also specify which target_features you promise are enabled for a # particular target. target_features are currently not validated against # the actual valid features supported by the target architecture. #{ triple = "wasm32-unknown-unknown", features = ["atomics"] }, ] # This section is considered when running `cargo deny check advisories` # More documentation for the advisories section can be found here: # https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html [advisories] # The path where the advisory database is cloned/fetched into db-path = "~/.cargo/advisory-db" # The url(s) of the advisory databases to use db-urls = ["https://github.com/rustsec/advisory-db"] # The lint level for security vulnerabilities vulnerability = "deny" # The lint level for unmaintained crates unmaintained = "warn" # The lint level for crates that have been yanked from their source registry yanked = "warn" # The lint level for crates with security notices. Note that as of # 2019-12-17 there are no security notice advisories in # https://github.com/rustsec/advisory-db notice = "warn" # A list of advisory IDs to ignore. Note that ignored advisories will still # output a note when they are encountered. ignore = [ #"RUSTSEC-0000-0000", ] # Threshold for security vulnerabilities, any vulnerability with a CVSS score # lower than the range specified will be ignored. Note that ignored advisories # will still output a note when they are encountered. # * None - CVSS Score 0.0 # * Low - CVSS Score 0.1 - 3.9 # * Medium - CVSS Score 4.0 - 6.9 # * High - CVSS Score 7.0 - 8.9 # * Critical - CVSS Score 9.0 - 10.0 #severity-threshold = # If this is true, then cargo deny will use the git executable to fetch advisory database. # If this is false, then it uses a built-in git library. # Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support. # See Git Authentication for more information about setting up git authentication. #git-fetch-with-cli = true # This section is considered when running `cargo deny check licenses` # More documentation for the licenses section can be found here: # https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html [licenses] # The lint level for crates which do not have a detectable license unlicensed = "deny" # List of explicitly allowed licenses # See https://spdx.org/licenses/ for list of possible licenses # [possible values: any SPDX 3.11 short identifier (+ optional exception)]. allow = [ "MIT", "Apache-2.0", "Apache-2.0 WITH LLVM-exception", "ISC", "0BSD", "BSD-3-Clause", "CC0-1.0", ] # List of explicitly disallowed licenses # See https://spdx.org/licenses/ for list of possible licenses # [possible values: any SPDX 3.11 short identifier (+ optional exception)]. deny = [ #"Nokia", ] # Lint level for licenses considered copyleft copyleft = "warn" # Blanket approval or denial for OSI-approved or FSF Free/Libre licenses # * both - The license will be approved if it is both OSI-approved *AND* FSF # * either - The license will be approved if it is either OSI-approved *OR* FSF # * osi-only - The license will be approved if is OSI-approved *AND NOT* FSF # * fsf-only - The license will be approved if is FSF *AND NOT* OSI-approved # * neither - This predicate is ignored and the default lint level is used allow-osi-fsf-free = "neither" # Lint level used when no other predicates are matched # 1. License isn't in the allow or deny lists # 2. License isn't copyleft # 3. License isn't OSI/FSF, or allow-osi-fsf-free = "neither" default = "deny" # The confidence threshold for detecting a license from license text. # The higher the value, the more closely the license text must be to the # canonical license text of a valid SPDX license file. # [possible values: any between 0.0 and 1.0]. confidence-threshold = 0.8 # Allow 1 or more licenses on a per-crate basis, so that particular licenses # aren't accepted for every possible crate as with the normal allow list exceptions = [ # Each entry is the crate and version constraint, and its specific allow # list { allow = ["ISC", "MIT", "OpenSSL"], name = "ring" }, { allow = ["MPL-2.0"], name = "webpki-roots" }, { allow = ["MPL-2.0"], name = "cbindgen" }, { allow = ["MPL-2.0"], name = "option-ext" }, { allow = ["Unicode-DFS-2016"], name = "unicode-ident" }, { allow = ["MIT", "LGPL-3.0"], name = "configparser" }, ] # Some crates don't have (easily) machine readable licensing information, # adding a clarification entry for it allows you to manually specify the # licensing information [[licenses.clarify]] name = "ring" expression = "MIT AND ISC AND OpenSSL" license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }] [licenses.private] # If true, ignores workspace crates that aren't published, or are only # published to private registries. # To see how to mark a crate as unpublished (to the official registry), # visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field. ignore = false # One or more private registries that you might publish crates to, if a crate # is only published to private registries, and ignore is true, the crate will # not have its license(s) checked registries = [ #"https://sekretz.com/registry ] # This section is considered when running `cargo deny check bans`. # More documentation about the 'bans' section can be found here: # https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html [bans] # Lint level for when multiple versions of the same crate are detected multiple-versions = "deny" # Lint level for when a crate version requirement is `*` wildcards = "allow" # The graph highlighting used when creating dotgraphs for crates # with multiple versions # * lowest-version - The path to the lowest versioned duplicate is highlighted # * simplest-path - The path to the version with the fewest edges is highlighted # * all - Both lowest-version and simplest-path are used highlight = "all" # List of crates that are allowed. Use with care! allow = [ #{ name = "ansi_term", version = "=0.11.0" }, ] # List of crates to deny deny = [ # Each entry the name of a crate and a version range. If version is # not specified, all versions will be matched. #{ name = "ansi_term", version = "=0.11.0" }, # # Wrapper crates can optionally be specified to allow the crate when it # is a direct dependency of the otherwise banned crate #{ name = "ansi_term", version = "=0.11.0", wrappers = [] }, ] # Certain crates/versions that will be skipped when doing duplicate detection. skip = [ #{ name = "ansi_term", version = "=0.11.0" }, { name = "base64", version = "0.13.1" }, # from cbindgen { name = "toml", version = "0.5.11" }, { name = "syn" }, ] # Similarly to `skip` allows you to skip certain crates during duplicate # detection. Unlike skip, it also includes the entire tree of transitive # dependencies starting at the specified crate, up to a certain depth, which is # by default infinite skip-tree = [ #{ name = "ansi_term", version = "=0.11.0", depth = 20 }, { name = "windows-sys", version = "0.45.0" }, ] # This section is considered when running `cargo deny check sources`. # More documentation about the 'sources' section can be found here: # https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html [sources] # Lint level for what to happen when a crate from a crate registry that is not # in the allow list is encountered unknown-registry = "warn" # Lint level for what to happen when a crate from a git repository that is not # in the allow list is encountered unknown-git = "warn" # List of URLs for allowed crate registries. Defaults to the crates.io index # if not specified. If it is specified but empty, no registries are allowed. allow-registry = ["https://github.com/rust-lang/crates.io-index"] # List of URLs for allowed Git repositories allow-git = [] [sources.allow-org] # 1 or more github.com organizations to allow git sources for github = [] # 1 or more gitlab.com organizations to allow git sources for gitlab = [] # 1 or more bitbucket.org organizations to allow git sources for bitbucket = [] python-maturin_1.3.2.orig/guide/0000755000000000000000000000000014141512065013556 5ustar00python-maturin_1.3.2.orig/license-apache0000644000000000000000000002513713324723765015272 0ustar00 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] 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. python-maturin_1.3.2.orig/license-mit0000644000000000000000000000203313324723765014630 0ustar00Copyright (c) 2018 konstin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. python-maturin_1.3.2.orig/maturin/0000755000000000000000000000000013534176312014146 5ustar00python-maturin_1.3.2.orig/netlify.toml0000644000000000000000000000031014446366340015035 0ustar00[build] publish = "guide/book/" command = "curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.26/mdbook-v0.4.26-x86_64-unknown-linux-musl.tar.gz | tar xvz && ./mdbook build guide" python-maturin_1.3.2.orig/noxfile.py0000644000000000000000000000412314525221045014500 0ustar00import os import json import sys from pathlib import Path import nox PYODIDE_VERSION = os.getenv("PYODIDE_VERSION", "0.23.4") GITHUB_ACTIONS = os.getenv("GITHUB_ACTIONS") GITHUB_ENV = os.getenv("GITHUB_ENV") def append_to_github_env(name: str, value: str): if not GITHUB_ACTIONS or not GITHUB_ENV: return with open(GITHUB_ENV, "w+") as f: f.write(f"{name}={value}\n") @nox.session(name="setup-pyodide", python=False) def setup_pyodide(session: nox.Session): tests_dir = Path("./tests").resolve() with session.chdir(tests_dir): session.run( "npm", "i", "--no-save", f"pyodide@{PYODIDE_VERSION}", "prettier", external=True, ) with session.chdir(tests_dir / "node_modules" / "pyodide"): session.run( "node", "../prettier/bin/prettier.cjs", "-w", "pyodide.asm.js", external=True, ) with open("repodata.json") as f: emscripten_version = json.load(f)["info"]["platform"].split("_", 1)[1].replace("_", ".") append_to_github_env("EMSCRIPTEN_VERSION", emscripten_version) @nox.session(name="test-emscripten", python=False) def test_emscripten(session: nox.Session): tests_dir = Path("./tests").resolve() test_crates = [ "test-crates/pyo3-pure", "test-crates/pyo3-mixed", ] for crate in test_crates: crate = Path(crate).resolve() ver = sys.version_info session.run("cargo", "build", external=True) session.run( tests_dir.parent / "target" / "debug" / "maturin", "build", "-m", str(crate / "Cargo.toml"), "--target", "wasm32-unknown-emscripten", "-i", f"python{ver.major}.{ver.minor}", env={"RUSTUP_TOOLCHAIN": "nightly"}, external=True, ) with session.chdir(tests_dir): session.run("node", "emscripten_runner.js", str(crate), external=True) python-maturin_1.3.2.orig/pyproject.toml0000644000000000000000000000241214446366340015407 0ustar00# Workaround to bootstrap maturin on non-manylinux platforms [build-system] requires = ["setuptools", "wheel>=0.36.2", "tomli>=1.1.0 ; python_version<'3.11'", "setuptools-rust>=1.4.0"] build-backend = "setuptools.build_meta" [project] name = "maturin" requires-python = ">=3.7" classifiers = [ "Topic :: Software Development :: Build Tools", "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] dependencies = ["tomli>=1.1.0 ; python_version<'3.11'"] dynamic = [ "authors", "description", "license", "readme", "version" ] [project.optional-dependencies] zig = [ "ziglang~=0.10.0", ] patchelf = [ "patchelf", ] [project.urls] "Source Code" = "https://github.com/PyO3/maturin" Issues = "https://github.com/PyO3/maturin/issues" Documentation = "https://maturin.rs" Changelog = "https://maturin.rs/changelog.html" [tool.maturin] bindings = "bin" [tool.black] target_version = ['py37'] extend-exclude = ''' # Ignore cargo-generate templates ^/src/templates ''' [tool.ruff] line-length = 120 target-version = "py37" [tool.mypy] disallow_untyped_defs = true disallow_incomplete_defs = true warn_no_return = true ignore_missing_imports = true python-maturin_1.3.2.orig/setup.py0000644000000000000000000000547414525221045014206 0ustar00# maturin is self bootstrapping, however on platforms like FreeBSD that aren't # manylinux/musllinux, pip will try installing maturin from the source distribution. # That source distribution obviously can't depend on maturin, so we're using # the always available setuptools. # # Note that this is really only a workaround for bootstrapping and not suited # for general purpose packaging, i.e. only building a wheel (as in # `python setup.py bdist_wheel`) and installing (as in # `pip install `) are supported. For creating a source distribution # for maturin itself use `maturin sdist`. import os import shlex try: import tomllib except ModuleNotFoundError: import tomli as tomllib from setuptools import setup from setuptools_rust import RustBin # Force the wheel to be platform specific # https://stackoverflow.com/a/45150383/3549270 # There's also the much more concise solution in # https://stackoverflow.com/a/53463910/3549270, # but that would require python-dev try: # noinspection PyPackageRequirements,PyUnresolvedReferences from wheel.bdist_wheel import bdist_wheel as _bdist_wheel # noinspection PyPep8Naming,PyAttributeOutsideInit class bdist_wheel(_bdist_wheel): def finalize_options(self): _bdist_wheel.finalize_options(self) self.root_is_pure = False except ImportError: bdist_wheel = None with open("README.md", encoding="utf-8", errors="ignore") as fp: long_description = fp.read() with open("Cargo.toml", "rb") as fp: version = tomllib.load(fp)["package"]["version"] # Use `--no-default-features` by default for a minimal build to support PEP 517. # `MATURIN_SETUP_ARGS` env var can be used to pass customized arguments to cargo. cargo_args = ["--no-default-features"] if os.getenv("MATURIN_SETUP_ARGS"): cargo_args = shlex.split(os.getenv("MATURIN_SETUP_ARGS", "")) setup( name="maturin", author="konstin", author_email="konstin@mailbox.org", url="https://github.com/pyo3/maturin", description="Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as " "python packages", long_description=long_description, long_description_content_type="text/markdown", version=version, license="MIT OR Apache-2.0", python_requires=">=3.7", cmdclass={"bdist_wheel": bdist_wheel}, packages=["maturin"], rust_extensions=[RustBin("maturin", args=cargo_args, cargo_manifest_args=["--locked"])], classifiers=[ "Topic :: Software Development :: Build Tools", "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ], install_requires=["tomli>=1.1.0 ; python_version<'3.11'"], setup_requires=["setuptools-rust>=1.4.0"], zip_safe=False, ) python-maturin_1.3.2.orig/src/0000755000000000000000000000000013324723765013265 5ustar00python-maturin_1.3.2.orig/sysconfig/0000755000000000000000000000000013331044205014461 5ustar00python-maturin_1.3.2.orig/test-crates/0000755000000000000000000000000013502206615014720 5ustar00python-maturin_1.3.2.orig/test-data/0000755000000000000000000000000013421617772014362 5ustar00python-maturin_1.3.2.orig/test-dockerfile.sh0000755000000000000000000000174214525221045016111 0ustar00#!/usr/bin/env bash # Builds all 6 test crates using the docker container, # installs the wheel and checks that the installed package is functional set -e rm -rf venv-docker python3.11 -m venv venv-docker venv-docker/bin/pip install -U pip cffi # FIXME: Can we run the tests without activate? Currently hello-world fails because then the binary is not in PATH source venv-docker/bin/activate for test_crate in hello-world cffi-pure cffi-mixed pyo3-pure pyo3-mixed pyo3-mixed-submodule pyo3-mixed-implicit do echo "Testing $test_crate" docker run -e RUST_BACKTRACE=1 --rm -v "$(pwd):/io" -w /io/test-crates/$test_crate maturin build -i python3.11 # --only-binary=:all: stops pip from picking a local already compiled sdist venv-docker/bin/pip install $test_crate --only-binary=:all: --find-links test-crates/$test_crate/target/wheels/ if [[ $(venv-docker/bin/python test-crates/$test_crate/check_installed/check_installed.py) != 'SUCCESS' ]]; then exit 1 fi done deactivate python-maturin_1.3.2.orig/tests/0000755000000000000000000000000013332616467013637 5ustar00python-maturin_1.3.2.orig/.config/nextest.toml0000644000000000000000000000037514525221045016401 0ustar00[profile.default] # Terminate slow tests after 30 minutes slow-timeout = { period = "60s", terminate-after = 30 } [[profile.default.overrides]] # See https://nexte.st/book/threads-required.html filter = 'test(/_uniffi_/)' threads-required = "num-cpus" python-maturin_1.3.2.orig/.devcontainer/devcontainer.json0000644000000000000000000000075114525221045020600 0ustar00{ "name": "maturin", "image": "mcr.microsoft.com/devcontainers/rust:bullseye", "postCreateCommand": "bash .devcontainer/post_create.sh", "customizations": { "vscode": { "extensions": [ "ms-python.black-formatter", "rust-lang.rust-analyzer", "charliermarsh.ruff" ], "settings": { "editor.formatOnSave": true } } }, "features": { "ghcr.io/devcontainers/features/sshd:1": { "version": "latest" } } } python-maturin_1.3.2.orig/.devcontainer/post_create.sh0000755000000000000000000000053714431664675020115 0ustar00set -euxo pipefail sudo apt-get update sudo apt-get install -y python3-dev python3-pip python3-venv libclang-dev sudo python3 -m pip install cffi virtualenv pipx pipx ensurepath pipx install uniffi-bindgen pipx install cargo-deny rustup target add wasm32-wasi curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin python-maturin_1.3.2.orig/ci/build_deb.sh0000755000000000000000000000253414357373401015340 0ustar00#!/usr/bin/env bash # Based on https://github.com/sharkdp/hyperfine/blob/master/ci/before_deploy.bash set -ex case $TARGET in x86_64*) architecture=amd64 ;; i686*) architecture=i386 ;; *) echo "ERROR: unknown target" >&2 return 1 ;; esac version=${VERSION#refs/tags/v} if [[ $TARGET == *musl* ]]; then dpkgname=$BINARY_NAME-musl conflictname=$BINARY_NAME else dpkgname=$BINARY_NAME conflictname=$BINARY_NAME-musl fi tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t tmp) # copy the main binary install -Dm755 "target/$TARGET/release/$BINARY_NAME" "$tempdir/usr/bin/$BINARY_NAME" strip "$tempdir/usr/bin/$BINARY_NAME" # readme and license install -Dm644 README.md "$tempdir/usr/share/doc/$BINARY_NAME/README.md" install -Dm644 license-mit "$tempdir/usr/share/doc/$BINARY_NAME/license-mit" install -Dm644 license-apache "$tempdir/usr/share/doc/$BINARY_NAME/license-apache" # Control file mkdir "$tempdir/DEBIAN" cat >"$tempdir/DEBIAN/control" < Architecture: $architecture Provides: $BINARY_NAME Conflicts: $conflictname Description: Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages EOF fakeroot dpkg-deb --build "$tempdir" "${dpkgname}_${version}_${architecture}.deb" python-maturin_1.3.2.orig/guide/.gitignore0000644000000000000000000000000514141512065015541 0ustar00book python-maturin_1.3.2.orig/guide/book.toml0000644000000000000000000000050214446366340015415 0ustar00[book] author = ["PyO3 Project and Contributors"] language = "en" multilingual = false src = "src" title = "Maturin User Guide" [output.html] additional-css = ["tweak.css"] git-repository-url = "https://github.com/PyO3/maturin/tree/main/guide" edit-url-template = "https://github.com/PyO3/maturin/edit/main/guide/{path}" python-maturin_1.3.2.orig/guide/src/0000755000000000000000000000000014141512065014345 5ustar00python-maturin_1.3.2.orig/guide/tweak.css0000644000000000000000000000035314525221045015405 0ustar00.sponsors { display: flex; justify-content: center; flex-wrap: wrap; align-items: center; margin: 1rem 0; } .sponsors>div { text-align: center; width: 33%; padding-bottom: 20px; } .sponsors span { display: block; } python-maturin_1.3.2.orig/guide/src/SUMMARY.md0000644000000000000000000000106214446366340016036 0ustar00# Summary [Introduction](index.md) --- - [Installation](./installation.md) - [Tutorial](./tutorial.md) - [Project Layout](./project_layout.md) - [Bindings](./bindings.md) - [Python Metadata](./metadata.md) - [Configuration](./config.md) - [Environment Variables](./environment-variables.md) - [Local Development](./develop.md) - [Distribution](./distribution.md) - [Sphinx Integration](./sphinx.md) --- - [Migration Guide](./migration.md) - [Changelog](./changelog.md) --- - [Contributing](./contributing.md) - [Platform Support](./platform_support.md) python-maturin_1.3.2.orig/guide/src/assets/0000755000000000000000000000000014412704251015650 5ustar00python-maturin_1.3.2.orig/guide/src/bindings.md0000644000000000000000000001124214525221045016465 0ustar00# Bindings Maturin supports several kinds of bindings, some of which are automatically detected. You can also pass `-b` / `--bindings` command line option to manually specify which bindings to use. ## `pyo3` [pyo3](https://github.com/PyO3/pyo3) is Rust bindings for Python, including tools for creating native Python extension modules. It supports CPython, PyPy, and GraalPy. maturin automatically detects pyo3 bindings when it's added as a dependency in `Cargo.toml`. ### `Py_LIMITED_API`/abi3 pyo3 bindings has `Py_LIMITED_API`/abi3 support, enable the `abi3` feature of the `pyo3` crate to use it: ```toml pyo3 = { version = "0.18", features = ["abi3"] } ``` You may additionally specify a minimum Python version by using the `abi3-pyXX` format for the pyo3 features, where `XX` is corresponds to a Python version. For example `abi3-py37` will indicate a minimum Python version of 3.7. > **Note**: Read more about abi3 support in [pyo3's > documentation](https://pyo3.rs/latest/building_and_distribution.html#py_limited_apiabi3). ### Cross Compiling pyo3 bindings has decent cross compilation support. For manylinux support the [manylinux-cross](https://github.com/rust-cross/manylinux-cross) docker images can be used. > **Note**: Read more about cross compiling in [pyo3's > documentation](https://pyo3.rs/latest/building_and_distribution.html#cross-compiling). ## `cffi` Cffi wheels are compatible with all python versions including pypy. If `cffi` isn't installed and python is running inside a virtualenv, maturin will install it, otherwise you have to install it yourself (`pip install cffi`). Maturin uses cbindgen to generate a header file for [supported Rust types](https://github.com/eqrion/cbindgen/blob/master/docs.md#supported-types). The header file can be customized by configuring cbindgen through a `cbindgen.toml` file inside your project root. Aternatively you can use a build script that writes a header file to `$PROJECT_ROOT/target/header.h`, like so: ```rust use cbindgen; use std::env; use std::path::Path; fn main() { let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); let bindings = cbindgen::Builder::new() .with_no_includes() .with_language(cbindgen::Language::C) .with_crate(crate_dir) .generate() .unwrap(); bindings.write_to_file(Path::new("target").join("header.h")); } ``` Maturin uses the cbindgen-generated header to create a module that exposes `ffi` and `lib` objects as attributes. See the [cffi docs](https://cffi.readthedocs.io/en/latest/using.html) for more information on using these `ffi`/`lib` objects to call the Rust code from Python. > **Note**: Maturin _does not_ automatically detect `cffi` bindings. You _must_ > specify them via either command line with `-b cffi` or in `pyproject.toml`. ## `rust-cpython` [rust-cpython](https://github.com/dgrunwald/rust-cpython) is Rust bindings for the Python interpreter. Currently it only supports CPython. Maturin automatically detects rust-cpython bindings when it's added as a dependency in `Cargo.toml`. ## `bin` Maturin also supports distributing binary applications written in Rust as Python packages using the `bin` bindings. Binaries are packaged into the wheel as "scripts" and are available on the user's `PATH` (e.g. in the `bin` directory of a virtual environment) once installed. > **Note**: Maturin _does not_ automatically detect `bin` bindings. You _must_ > specify them via either command line with `-b bin` or in `pyproject.toml`. ### Both binary and library? Shipping both a binary and library would double the size of your wheel. Consider instead exposing a CLI function in the library and using a Python entrypoint: ```rust #[pyfunction] fn print_cli_args(py: Python) -> PyResult<()> { // This one includes python and the name of the wrapper script itself, e.g. // `["/home/ferris/.venv/bin/python", "/home/ferris/.venv/bin/print_cli_args", "a", "b", "c"]` println!("{:?}", env::args().collect::>()); // This one includes only the name of the wrapper script itself, e.g. // `["/home/ferris/.venv/bin/print_cli_args", "a", "b", "c"])` println!( "{:?}", py.import("sys")? .getattr("argv")? .extract::>()? ); Ok(()) } #[pymodule] fn my_module(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(print_cli_args))?; Ok(()) } ``` In pyproject.toml: ```toml [project.scripts] print_cli_args = "my_module:print_cli_args" ``` ## `uniffi` uniffi bindings use [uniffi-rs](https://mozilla.github.io/uniffi-rs/) to generate Python `ctypes` bindings from an interface definition file. uniffi wheels are compatible with all python versions including pypy. python-maturin_1.3.2.orig/guide/src/changelog.md0000644000000000000000000000004014155311010016600 0ustar00{{#include ../../Changelog.md}} python-maturin_1.3.2.orig/guide/src/config.md0000644000000000000000000000464214424743357016160 0ustar00# Configuration ## Configuration format You can configure maturin in `tool.maturin` section of [`pyproject.toml`](https://peps.python.org/pep-0518/#tool-table). ## Configuration keys ### Cargo options ```toml [tool.maturin] # Build artifacts with the specified Cargo profile profile = "release" # List of features to activate features = ["foo", "bar"] # Activate all available features all-features = false # Do not activate the `default` feature no-default-features = false # Cargo manifest path manifest-path = "Cargo.toml" # Require Cargo.lock and cache are up to date frozen = false # Require Cargo.lock is up to date locked = false # Override a configuration value (unstable) config = [] # Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details unstable-flags = [] # Extra arguments that will be passed to rustc as `cargo rustc [...] -- [...] [arg1] [arg2]` rustc-args = [] ``` These are `cargo` build options, refer Cargo documentation [here](https://doc.rust-lang.org/cargo/commands/cargo-rustc.html). ### maturin options ```toml [tool.maturin] # Include additional files include = [] # Exclude files exclude = [] # Bindings type bindings = "pyo3" # Control the platform tag on linux compatibility = "manylinux2014" # Don't check for manylinux compliance skip-auditwheel = false # Python source directory python-source = "src" # Python packages to include python-packages = ["foo", "bar"] # Strip the library for minimum file size strip = true # Source distribution generator, # supports cargo (default) and git. sdist-generator = "cargo" ``` The `[tool.maturin.include]` and `[tool.maturin.exclude]` configuration are inspired by [Poetry](https://python-poetry.org/docs/pyproject/#include-and-exclude). To specify files or globs directly: ```toml include = ["path/**/*", "some/other/file"] ``` To specify a specific target format (`sdist` or `wheel`): ```toml include = [ { path = "path/**/*", format = "sdist" }, { path = "all", format = ["sdist", "wheel"] }, { path = "for/wheel/**/*", format = "wheel" } ] ``` The default behavior is apply these configurations to both `sdist` and `wheel` targets. #### target specific maturin options Currently only macOS deployment target SDK version can be configured for `x86_64-apple-darwin` and `aarch64-apple-darwin` targets, other targets have no options yet. ```toml [tool.maturin.target.] # macOS deployment target SDK version macos-deployment-target = "11.0" ``` python-maturin_1.3.2.orig/guide/src/contributing.md0000644000000000000000000001052314525221045017400 0ustar00# Contributing Contributions are welcome, and they are greatly appreciated! You can contribute in many ways: ## Types of Contributions ### Report Bugs Report bugs at [https://github.com/PyO3/maturin/issues](https://github.com/PyO3/maturin/issues). ### Fix Bugs Look through the GitHub issues for bugs. Anything tagged with `bug` and `help wanted` is open to whoever wants to implement it. ### Implement Features Look through the GitHub issues for features. ### Write Documentation Maturin could always use more documentation, whether as part of the official guide, in docstrings or even on the web in blog posts, articles and such. ### Submit Feedback The best way to send feedback is to start a new discussion at [https://github.com/PyO3/maturin/discussions](https://github.com/PyO3/maturin/discussions). ## Get Started! Ready to contribute? Here's how to setup maturin for local development. 1. Fork the maturin repository on GitHub. 2. Clone your fork locally: ```bash $ git clone git@github.com:your_name_here/maturin.git ``` 3. [Install a stable Rust toolchain](https://www.rust-lang.org/tools/install) and of course [Python 3.6 or later is also required](https://realpython.com/installing-python/). 4. Create a branch for local development: ```bash $ cd maturin $ git checkout -b branch-name ``` Now you can make your changes locally. 5. When you're done making changes, ensure the tests pass by running ```bash $ cargo test ``` Note that in order to run tests you need to install `virtualenv` and `cffi` (`pip3 install cffi virtualenv`). 6. make sure your changes are well formatted and pass the linting checks by installing [pre-commit](https://pre-commit.com/) and running ```bash $ pre-commit run --hook-stage manual --all ``` running `pre-commit install` will enable running the checks automatically before every commit (except for the slow checks: `cargo check` and `cargo clippy` which are only run manually). You can also look at `.pre-commit-config.yaml` and run the individual checks yourself if you prefer. 7. Commit your changes and push your branch to GitHub: ```bash $ git add . $ git Commit $ git push origin branch-name ``` 8. Submit a pull request through the [GitHub website](https://github.com/PyO3/maturin/pulls). We provide a pre-configured [dev container](https://containers.dev/) that could be used in [Github Codespaces](https://github.com/features/codespaces), [VSCode](https://code.visualstudio.com/), [JetBrains](https://www.jetbrains.com/remote-development/gateway/), [JuptyerLab](https://jupyterlab.readthedocs.io/en/stable/). [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/pyo3/maturin?quickstart=1&machine=standardLinux32gb) ## Pull Request Guidelines Before you submit a pull request, check that it meets these guidelines: 1. The pull request should include tests if it adds or changes functionalities. 2. Add a [changelog](https://github.com/PyO3/maturin/blob/main/Changelog.md) entry. 3. When command line interface changes, run `python3 test-crates/update_readme.py` to update related documentation. ## Code The main part is the maturin library, which is completely documented and should be well integrable. The accompanying `main.rs` takes care username and password for the pypi upload and otherwise calls into the library. The `sysconfig` folder contains the output of `python -m sysconfig` for different python versions and platform, which is helpful during development. You need to install `cffi` and `virtualenv` (`pip install cffi virtualenv`) to run the tests. You can set the `MATURIN_TEST_PYTHON` environment variable to run the tests against a specific Python version, for example `MATURIN_TEST_PYTHON=python3.11 cargo test` will run the tests against Python 3.11. There are some optional hacks that can speed up the tests (over 80s to 17s on my machine). 1. By running `cargo build --release --manifest-path test-crates/cargo-mock/Cargo.toml` you can activate a cargo cache avoiding to rebuild the pyo3 test crates with every python version. 2. Delete `target/test-cache` to clear the cache (e.g. after changing a test crate) or remove `test-crates/cargo-mock/target/release/cargo` to deactivate it. 3. By running the tests with the `faster-tests` feature, binaries are stripped and wheels are only stored and not compressed. python-maturin_1.3.2.orig/guide/src/develop.md0000644000000000000000000000750114525221045016331 0ustar00# Local Development ## `maturin develop` command For local development, the `maturin develop` command can be used to quickly build a package in debug mode by default and install it to virtualenv. ``` Usage: maturin develop [OPTIONS] [ARGS]... Arguments: [ARGS]... Rustc flags Options: -b, --bindings Which kind of bindings to use [possible values: pyo3, pyo3-ffi, rust-cpython, cffi, uniffi, bin] -r, --release Pass --release to cargo --strip Strip the library for minimum file size -E, --extras Install extra requires aka. optional dependencies Use as `--extras=extra1,extra2` --skip-install Skip installation, only build the extension module inplace Only works with mixed Rust/Python project layout --pip-path Use a specific pip installation instead of the default one. This can be used to supply the path to a pip executable when the current virtualenv does not provide one. -q, --quiet Do not print cargo log messages -j, --jobs Number of parallel jobs, defaults to # of CPUs --profile Build artifacts with the specified Cargo profile -F, --features Space or comma separated list of features to activate --all-features Activate all available features --no-default-features Do not activate the `default` feature --target Build for the target triple [env: CARGO_BUILD_TARGET=] --target-dir Directory for all generated artifacts -m, --manifest-path Path to Cargo.toml --ignore-rust-version Ignore `rust-version` specification in packages -v, --verbose... Use verbose output (-vv very verbose/build.rs output) --color Coloring: auto, always, never --frozen Require Cargo.lock and cache are up to date --locked Require Cargo.lock is up to date --offline Run without accessing the network --config Override a configuration value (unstable) -Z Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details --timings= Timing output formats (unstable) (comma separated): html, json --future-incompat-report Outputs a future incompatibility report at the end of the build (unstable) -h, --help Print help (see a summary with '-h') ``` ## PEP 660 Editable Installs Maturin supports [PEP 660](https://www.python.org/dev/peps/pep-0660/) editable installs since v0.12.0. You need to add `maturin` to `build-system` section of `pyproject.toml` to use it: ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" ``` Editable installs right now is only useful in mixed Rust/Python project so you don't have to recompile and reinstall when only Python source code changes. For example when using pip you can make an editable installation with ```bash pip install -e . ``` Then Python source code changes will take effect immediately. ## Import Hook Starting from v0.12.4, the [Python maturin package](https://pypi.org/project/maturin/) provides a Python import hook to allow quickly build and load a Rust module into Python. It supports pure Rust and mixed Rust/Python project layout as well as a standalone `.rs` file. ```python from maturin import import_hook # install the import hook with default settings import_hook.install() # or you can specify bindings import_hook.install(bindings="pyo3") # and build in release mode instead of the default debug mode import_hook.install(release=True) # now you can start importing your Rust module import pyo3_pure ``` python-maturin_1.3.2.orig/guide/src/distribution.md0000644000000000000000000002740614525221045017420 0ustar00# Distribution ## Source Distribution Maturin supports building through `pyproject.toml`. To use it, create a `pyproject.toml` next to your `Cargo.toml` with the following content: ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" ``` If a `pyproject.toml` with a `[build-system]` entry is present, maturin can build a source distribution of your package when `--sdist` is specified. The source distribution will contain the same files as `cargo package`. To only build a source distribution, use the `maturin sdist` command. You can then e.g. install your package with `pip install .`. With `pip install . -v` you can see the output of cargo and maturin. You can use the options `compatibility`, `skip-auditwheel`, `bindings`, `strip` and common Cargo build options such as `features` under `[tool.maturin]` the same way you would when running maturin directly. The `bindings` key is required for cffi and bin projects as those can't be automatically detected. Currently, all builds are in release mode (see [this thread](https://discuss.python.org/t/pep-517-debug-vs-release-builds/1924) for details). For a non-manylinux build with cffi bindings you could use the following: ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [tool.maturin] bindings = "cffi" compatibility = "linux" ``` `manylinux` option is also accepted as an alias of `compatibility` for backward compatibility with old version of maturin. To include arbitrary files in the sdist for use during compilation specify `include` as an array of `path` globs with `format` set to `sdist`: ```toml [tool.maturin] include = [{ path = "path/**/*", format = "sdist" }] ``` ## Build Wheels For portability reasons, native python modules on linux must only dynamically link a set of very few libraries which are installed basically everywhere, hence the name manylinux. The pypa offers special docker images and a tool called [auditwheel](https://github.com/pypa/auditwheel/) to ensure compliance with the [manylinux rules](https://peps.python.org/pep-0599/#the-manylinux2014-policy)). If you want to publish widely usable wheels for linux pypi, **you need to use a manylinux docker image** or [build with zig](#use-zig). The Rust compiler since version 1.64 [requires at least glibc 2.17](https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html), so you need to use at least manylinux2014. For publishing, we recommend enforcing the same manylinux version as the image with the manylinux flag, e.g. use `--manylinux 2014` if you are building in `quay.io/pypa/manylinux2014_x86_64`. The [PyO3/maturin-action](https://github.com/PyO3/maturin-action) github action already takes care of this if you set e.g. `manylinux: 2014`. maturin contains a reimplementation of auditwheel automatically checks the generated library and gives the wheel the proper platform tag. * If your system's glibc is too new, it will assign the `linux` tag. * If you link other shared libraries, maturin will try to bundle them within the wheel, note that this requires [patchelf](https://github.com/NixOS/patchelf), it can be installed along with maturin from PyPI: `pip install maturin[patchelf]`. You can also manually disable those checks and directly use native linux target with `--manylinux off`. For full manylinux compliance you need to compile in a CentOS docker container. The [pyo3/maturin](https://ghcr.io/pyo3/maturin) image is based on the manylinux2010 image, and passes arguments to the `maturin` binary. You can use it like this: ``` docker run --rm -v $(pwd):/io ghcr.io/pyo3/maturin build --release # or other maturin arguments ``` Note that this image is very basic and only contains python, maturin and stable Rust. If you need additional tools, you can run commands inside the manylinux container. See [konstin/complex-manylinux-maturin-docker](https://github.com/konstin/complex-manylinux-maturin-docker) for a small educational example or [nanoporetech/fast-ctc-decode](https://github.com/nanoporetech/fast-ctc-decode/blob/b226ea0f2b2f4f474eff47349703d57d2ea4801b/.github/workflows/publish.yml) for a real world setup. ``` Usage: maturin build [OPTIONS] [ARGS]... Arguments: [ARGS]... Rustc flags Options: -r, --release Build artifacts in release mode, with optimizations --strip Strip the library for minimum file size --sdist Build a source distribution --compatibility [...] Control the platform tag on linux. Options are `manylinux` tags (for example `manylinux2014`/`manylinux_2_24`) or `musllinux` tags (for example `musllinux_1_2`) and `linux` for the native linux tag. Note that `manylinux1` and `manylinux2010` is unsupported by the rust compiler. Wheels with the native `linux` tag will be rejected by pypi, unless they are separately validated by `auditwheel`. The default is the lowest compatible `manylinux` tag, or plain `linux` if nothing matched This option is ignored on all non-linux platforms -i, --interpreter [...] The python versions to build wheels for, given as the executables of interpreters such as `python3.9` or `/usr/bin/python3.8` -f, --find-interpreter Find interpreters from the host machine -b, --bindings Which kind of bindings to use [possible values: pyo3, pyo3-ffi, rust-cpython, cffi, uniffi, bin] -o, --out The directory to store the built wheels in. Defaults to a new "wheels" directory in the project's target directory --skip-auditwheel Don't check for manylinux compliance --zig For manylinux targets, use zig to ensure compliance for the chosen manylinux version Default to manylinux2014/manylinux_2_17 if you do not specify an `--compatibility` Make sure you installed zig with `pip install maturin[zig]` -q, --quiet Do not print cargo log messages -j, --jobs Number of parallel jobs, defaults to # of CPUs --profile Build artifacts with the specified Cargo profile -F, --features Space or comma separated list of features to activate --all-features Activate all available features --no-default-features Do not activate the `default` feature --target Build for the target triple [env: CARGO_BUILD_TARGET=] --target-dir Directory for all generated artifacts -m, --manifest-path Path to Cargo.toml --ignore-rust-version Ignore `rust-version` specification in packages -v, --verbose... Use verbose output (-vv very verbose/build.rs output) --color Coloring: auto, always, never --frozen Require Cargo.lock and cache are up to date --locked Require Cargo.lock is up to date --offline Run without accessing the network --config Override a configuration value (unstable) -Z Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details --timings= Timing output formats (unstable) (comma separated): html, json --future-incompat-report Outputs a future incompatibility report at the end of the build (unstable) -h, --help Print help (see a summary with '-h') ``` ### Cross Compiling Maturin has decent cross compilation support for `pyo3` and `bin` bindings, other kind of bindings may work but aren't tested regularly. #### Cross-compile to Linux/macOS ##### Use Docker For manylinux support the [manylinux-cross](https://github.com/rust-cross/manylinux-cross) docker images can be used. And [maturin-action](https://github.com/PyO3/maturin-action) makes it easy to do cross compilation on GitHub Actions. ##### Use Zig Since v0.12.7 maturin added support for linking with [`zig cc`](https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html), compile for Linux works and is regularly tested on CI, other platforms may also work but aren't tested regularly. You can install zig following the [official documentation](https://ziglang.org/download), or install it from PyPI via `pip install ziglang`. Then pass `--zig` to maturin `build` or `publish` commands to use it, for example ```bash maturin build --release --target aarch64-unknown-linux-gnu --zig ``` #### Cross-compile to Windows Pyo3 0.16.5 added an experimental feature `generate-import-lib` enables the user to cross compile extension modules for Windows targets without setting the `PYO3_CROSS_LIB_DIR` environment variable or providing any Windows Python library files. ```toml [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module", "generate-import-lib"] } ``` It uses an external [`python3-dll-a`](https://docs.rs/python3-dll-a/latest/python3_dll_a/) crate to generate import libraries for the Python DLL for MinGW-w64 and MSVC compile targets. Note: MSVC targets require LLVM binutils or MSVC build tools to be available on the host system. More specifically, `python3-dll-a` requires `llvm-dlltool` or `lib.exe` executable to be present in `PATH` when targeting `*-pc-windows-msvc`. maturin integrates [`cargo-xwin`](https://github.com/messense/cargo-xwin) to enable MSVC targets cross compilation support, it will download and unpack the Microsoft CRT headers and import libraries, and Windows SDK headers and import libraries needed for compiling and linking automatically. **By using this to cross compiling to Windows MSVC targets you are consented to accept the license at [https://go.microsoft.com/fwlink/?LinkId=2086102](https://go.microsoft.com/fwlink/?LinkId=2086102)**. (Building on Windows natively does not apply.) ## GitHub Actions If your project uses GitHub Actions, you can use the `maturin generate-ci` command to generate a GitHub Actions workflow file. ```bash mkdir -p .github/workflows maturin generate-ci github > .github/workflows/CI.yml ``` There are some options to customize the generated workflow file: ``` Generate CI configuration Usage: maturin generate-ci [OPTIONS] Arguments: CI provider Possible values: - github: GitHub Options: -m, --manifest-path Path to Cargo.toml -o, --output Output path [default: -] --platform ... Platform support [default: linux windows macos] Possible values: - all: All - linux: Linux - windows: Windows - macos: macOS - emscripten: Emscripten --pytest Enable pytest --zig Use zig to do cross compilation -h, --help Print help information (use `-h` for a summary) ``` ### Using PyPI's trusted publishing By default, the workflow provided by `generate-ci` will publish the release artifacts to PyPI using API token authentication. However, maturin also supports [trusted publishing (OpenID Connect)](https://docs.pypi.org/trusted-publishers/). To enable it, modify the `release` action in the generated GitHub workflow file: - remove `MATURIN_PYPI_TOKEN` from the `env` section to make maturin use trusted publishing - add `id-token: write` to the action's `permissions` (see [Configuring OpenID Connect in PyPI](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi) from GitHub's documentation). Make sure to follow the steps listed in [PyPI's documentation](https://docs.pypi.org/trusted-publishers/adding-a-publisher/) to set up your GitHub repository as a trusted publisher in the PyPI project settings before attempting to run the workflow. python-maturin_1.3.2.orig/guide/src/environment-variables.md0000644000000000000000000000415314525221045021205 0ustar00# Environment Variables Maturin reads a number of environment variables which you can use to configure the build process. Here is a list of all environment variables that are read by maturin: ## Cargo environment variables See [environment variables Cargo reads](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-reads) ## Python environment variables * `VIRTUAL_ENV`: Path to a Python virtual environment * `CONDA_PREFIX`: Path to a conda environment * `MATURIN_PYTHON_SYSCONFIGDATA_DIR`: Path to a directory containing a `sysconfigdata*.py` file * `_PYTHON_SYSCONFIGDATA_NAME`: Name of a `sysconfigdata*.py` file * `MATURIN_PYPI_TOKEN`: PyPI token for uploading wheels * `MATURIN_PASSWORD`: PyPI password for uploading wheels ## `pyo3` environment variables * `PYO3_CROSS_PYTHON_VERSION`: Python version to use for cross compilation * `PYO3_CROSS_LIB_DIR`: This variable can be set to the directory containing the target's libpython DSO and the associated `_sysconfigdata*.py` file for Unix-like targets, or the Python DLL import libraries for the Windows target.This variable can be set to the directory containing the target's libpython DSO and the associated _sysconfigdata*.py file for Unix-like targets, or the Python DLL import libraries for the Windows target. * `PYO3_CONFIG_FILE`: Path to a [pyo3 config file](https://pyo3.rs/latest/building_and_distribution.html#advanced-config-files) ## Networking environment variables * `HTTP_PROXY` / `HTTPS_PROXY`: Proxy to use for HTTP/HTTPS requests * `REQUESTS_CA_BUNDLE` / `CURL_CA_BUNDLE`: Path to a CA bundle to use for HTTPS requests ## Other environment variables * `MACOSX_DEPLOYMENT_TARGET`: The minimum macOS version to target * `SOURCE_DATE_EPOCH`: The time to use for the timestamp in the wheel metadata * `MATURIN_EMSCRIPTEN_VERSION`: The version of emscripten to use for emscripten builds * `TARGET_SYSROOT`: The sysroot to use for auditwheel wheel when cross compiling * `ARCHFLAGS`: Flags to control the architecture of the build on macOS, for example you can use `ARCHFLAGS="-arch x86_64 -arch arm64"` to build universal2 wheels python-maturin_1.3.2.orig/guide/src/index.md0000644000000000000000000000221714446366340016013 0ustar00# Maturin User Guide Welcome to the maturin user guide! It contains examples and documentation to explain all of maturin's use cases in detail. Please choose from the chapters on the left to jump to individual topics, or continue below to start with maturin's README. ## Sponsors Development of maturin is made possible by the following sponsors: And many more who kindly sponsor @messense on [GitHub Sponsors](https://github.com/sponsors/messense#sponsors). {{#include ../../README.md}} python-maturin_1.3.2.orig/guide/src/installation.md0000644000000000000000000000407314357373401017404 0ustar00# Installation ## Install from package managers [![Packaging status](https://repology.org/badge/vertical-allrepos/maturin.svg?columns=4)](https://repology.org/project/maturin/versions) ### PyPI maturin is published as Python binary wheel to PyPI, you can install it using pip: ```bash pip install maturin ``` There are some extra dependencies for certain scenarios: * `zig`: use zig as linker for easier cross compiling and manylinux compliance. * `patchelf`: repair wheels that links other shared libraries. For example, to install patchelf dependencies: `pip install maturin[patchelf]`. ### Homebrew On macOS [maturin is in Homebrew](https://formulae.brew.sh/formula/maturin#default) and you can install maturin from Homebrew: ```bash brew install maturin ``` ### conda Installing from the `conda-forge` channel can be achieved by adding `conda-forge` to your conda channels with: ``` conda config --add channels conda-forge conda config --set channel_priority strict ``` Once the `conda-forge` channel has been enabled, `maturin` can be installed with: ``` conda install maturin ``` ### Alpine Linux On Alpine Linux, [maturin is in community repository](https://pkgs.alpinelinux.org/packages?name=maturin&branch=edge&repo=community) and can be installed with `apk` after [enabling the community repository](https://wiki.alpinelinux.org/wiki/Enable_Community_Repository): ```bash apk add maturin ``` ## Download from GitHub Releases You can download precompiled maturin binaries from the latest [GitHub Releases](https://github.com/PyO3/maturin/releases/latest). You can also use [cargo-binstall](https://github.com/cargo-bins/cargo-binstall) to install maturin from GitHub Releases: ```bash # Run `cargo install cargo-binstall` first if you don't have cargo-binstall installed. cargo binstall maturin ``` ## Build from source ### crates.io You can install maturin from [crates.io](https://crates.io/crates/maturin) using cargo: ```bash cargo install --locked maturin ``` ### Git repository ```bash cargo install --locked --git https://github.com/PyO3/maturin.git maturin ``` python-maturin_1.3.2.orig/guide/src/metadata.md0000644000000000000000000000525414446366340016470 0ustar00# Python Project Metadata maturin supports [PEP 621](https://www.python.org/dev/peps/pep-0621/), you can specify python package metadata in `pyproject.toml`. maturin merges metadata from `Cargo.toml` and `pyproject.toml`, `pyproject.toml` take precedence over `Cargo.toml`. Here is a `pyproject.toml` example from PEP 621 for reference purpose: ```toml [project] name = "spam" version = "2020.0.0" description = "Lovely Spam! Wonderful Spam!" readme = "README.rst" requires-python = ">=3.8" license = {file = "LICENSE.txt"} keywords = ["egg", "bacon", "sausage", "tomatoes", "Lobster Thermidor"] authors = [ {email = "hi@pradyunsg.me"}, {name = "Tzu-Ping Chung"} ] maintainers = [ {name = "Brett Cannon", email = "brett@python.org"} ] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python" ] dependencies = [ "httpx", "gidgethub[httpx]>4.0.0", "django>2.1; os_name != 'nt'", "django>2.0; os_name == 'nt'" ] [project.optional-dependencies] test = [ "pytest < 5.0.0", "pytest-cov[all]" ] [project.urls] homepage = "example.com" documentation = "readthedocs.org" repository = "github.com" changelog = "github.com/me/spam/blob/master/CHANGELOG.md" [project.scripts] spam-cli = "spam:main_cli" [project.gui-scripts] spam-gui = "spam:main_gui" [project.entry-points."spam.magical"] tomatoes = "spam:main_tomatoes" ``` ## Add Python dependencies To specify python dependencies, add a list `dependencies` in a `[project]` section in the `pyproject.toml`. This list is equivalent to `install_requires` in setuptools: ```toml [project] name = "my-project" dependencies = ["flask~=1.1.0", "toml==0.10.0"] ``` ## Add console scripts Pip allows adding so called console scripts, which are shell commands that execute some function in you program. You can add console scripts in a section `[project.scripts]`. The keys are the script names while the values are the path to the function in the format `some.module.path:class.function`, where the `class` part is optional. The function is called with no arguments. Example: ```toml [project.scripts] get_42 = "my_project:DummyClass.get_42" ``` ## Add trove classifiers You can also specify [trove classifiers](https://pypi.org/classifiers/) under `project.classifiers`: ```toml [project] name = "my-project" classifiers = ["Programming Language :: Python"] ``` ## Add SPDX license expressions A practical string value for the license key has been purposefully left out by PEP 621 to allow for a future PEP to specify support for [SPDX](https://spdx.org/licenses/) expressions. To use SPDX license expressions, you can specify it in `Cargo.toml` instead: ```toml [package] name = "my-project" license = "MIT OR Apache-2.0" ``` python-maturin_1.3.2.orig/guide/src/migration.md0000644000000000000000000000721014525221045016661 0ustar00# Migrating from older maturin versions This guide can help you upgrade code through breaking changes from one maturin version to the next. For a detailed list of all changes, see the [CHANGELOG](changelog.md). ## From 0.14.* to 0.15 ### Build with `--no-default-features` by default when bootstrapping from sdist When bootstrapping maturin from sdist, maturin 0.15 will build with `--no-default-features` by default, which means that for distro packaging, you might want to set the environment variable `MATURIN_SETUP_ARGS="--features full,rustls"` to enable full features. ### Remove `[tool.maturin.sdist-include]` Use `[tool.maturin.include]` option instead. ### Remove `[package.metadata.maturin]` from `Cargo.toml` Package metadata is now specified in `[tool.maturin]` section of `pyproject.toml` instead of `Cargo.toml`. Note that the replacement for `package.metadata.maturin.name` is `tool.maturin.module-name`. ### Require `uniffi-bindgen` CLI to building `uniffi` bindings maturin 0.15 requires `uniffi-bindgen` CLI to build `uniffi` bindings, you can install it with `pip install uniffi-bindgen`. ## From 0.13.* to 0.14 ### Remove support for specifying python package metadata in `Cargo.toml` maturin 0.14 removed support for specifying python package metadata in `Cargo.toml`, Python package metadata should be specified in the `project` section of `pyproject.toml` instead as [PEP 621](https://peps.python.org/pep-0621/) specifies. ### Deprecate `[tool.maturin.sdist-include]` maturin 0.14 added `[tool.maturin.include]` and `[tool.maturin.exclude]` to replace `[tool.maturin.sdist-include]` which was sdist only, the new options can be configured to apply to sdist and/or wheel. ### macOS deployment target version defaults what `rustc` supports If you don't set the `MACOSX_DEPLOYMENT_TARGET` environment variable, maturin 0.14 will use the default target version quired from `rustc`, this may cause build issue for projects that depend on C/C++ code, usually you can fix it by setting a correct `MACOSX_DEPLOYMENT_TARGET`, for example ```bash export MACOSX_DEPLOYMENT_TARGET=10.9 ``` ### Deprecate `python-source` option in `Cargo.toml` maturin 0.14 deprecated the `python-source` option in `Cargo.toml`, use `[tool.maturin.python-source]` option in `pyproject.toml` instead. ## From 0.12.* to 0.13 ### Drop support for Python 3.6 maturin 0.13 has dropped support for Python 3.6, to support Python 3.6 you can use the old 0.12 versions. ### Removed `--cargo-extra-args` and `--rustc-extra-args` maturin 0.13 added most of the `cargo rustc` options so you can just use them directly, for example `--cargo-extra-args="--no-default-features"` becomes `--no-default-features`. To pass extra arguments to rustc, add them after `--`, for example use `maturin build -- -Clink-arg=-s` instead of `--rustc-extra-args="-Clink-arg=-s"`. ### Source distributions are not built by default maturin 0.13 replaced `--no-sdist` with the new `--sdist` option in `maturin build` command, source distributions are now only built when `--sdist` is specified. ### Only build wheels for current Python interpreter in `PATH` by default maturin 0.13 no longer searches for Python interpreters by default and only build wheels for the current Python interpreter (i.e. `python3`) in `PATH`. To enable the old behavior, use the new `--find-interpreter` option. ### `--repository-url` only accepts full URL now Previously `--repository-url` option in `maturin upload` and `maturin publish` commands accepts both repository name and URL. maturin 0.13 changed `--repository-url` to only accept full URL and added a new `--repository` for the repository name. This new behavior matches `twine upload`. python-maturin_1.3.2.orig/guide/src/platform_support.md0000644000000000000000000000400414525221045020306 0ustar00# Platform Support Being built on cargo and rustc, maturin is limited by [rust's platform support](https://doc.rust-lang.org/nightly/rustc/platform-support.html). ## Automated tests On GitHub actions, windows, macOS and linux are tested, all on 64-bit x86. FreeBSD is also tested though Cirrus CI, but might get removed at some point. Since CI is very time intensive to maintain, I'd like to stick to GitHub action and these three platforms. ## Releases The following targets are built into wheels and downloadable binaries: * Windows: 32-bit and 64-bit x86 as well as arm64 * Linux: x86, x86_64, armv7, aarch64 and ppc64le (musl), as well as s390x (gnu) * macOS: x86_64 and aarch64 ## Other Operating Systems It should be possible to build maturin and for maturin to build wheels on other platforms supported by rust. To add a new os, add it in target.rs and, if it doesn't behave like the other unixes, in `PythonInterpreter::get_tag`. Please also submit the output of `python -m sysconfig` as a file in the `sysconfig` folder. It's ok to edit setup.py to deactivate default features so `pip install` works, but new platforms should not require complex workaround in `compile.rs`. ## Architectures All architectures included in manylinux (aarch64, armv7l, ppc64le, ppc64, i686, x86_64, s390x) are supported. I'm not sure whether it makes sense to allow architectures that aren't even supported by [manylinux](https://github.com/pypa/manylinux). ## Python Support CPython 3.8 to 3.10 are supported and tested on CI, though the entire 3.x series should work. This will be changed as new python versions are released and others have their end of life. PyPy 3.6 and later also works, as does GraalPy 23.0 and later. ## Manylinux/Musllinux `manylinux2014` and its newer versions as well as `musllinux_1_1` and its newer versions are supported. Since Rust and the manylinux project drop support for old manylinux/musllinux versions sometimes, after maturin 1.0 manylinux version bumps will be minor versions rather than major versions. python-maturin_1.3.2.orig/guide/src/project_layout.md0000644000000000000000000001440714446366340017753 0ustar00# Project Layout Maturin expects a particular project layout depending on the contents of the package. ## Pure Rust project For a pure Rust project, the structure is as expected and what you get from `cargo new`: ``` my-rust-project/ ├── Cargo.toml ├── pyproject.toml # required for maturin configuration └── src ├── lib.rs # default for library crates └── main.rs # default for binary crates ``` Maturin will add a necessary `__init__.py` to the package when building the wheel. For convenience, this file includes the following: ```python from .my_project import * __doc__ = my_project.__doc__ if hasattr(my_project, "__all__"): __all__ = my_project.__all__ ``` such that the module functions may be called directly with: ```python import my_project my_project.foo() ``` rather than: ```python from my_project import my_project ``` > **Note**: there is currently no way to tell maturin to include extra data (e.g. `package_data` in setuptools) for a pure Rust project. Instead, consider using the layout described below for the mixed Rust/Python project. ## Mixed Rust/Python project To create a mixed Rust/Python project, add a directory with your package name (i.e. matching `lib.name` in your `Cargo.toml`) to contain the Python source: ``` my-rust-and-python-project ├── Cargo.toml ├── my_project # <<< add this directory and put Python code in here │ ├── __init__.py │ └── bar.py ├── pyproject.toml ├── README.md └── src └── lib.rs ``` Note that in a mixed Rust/Python project, maturin _does not_ modify the existing `__init__.py` in the root package, so now to import the rust module in Python you must use: ```python from my_project import my_project ``` You can modify `__init__.py` yourself (see above) if you would like to import Rust functions from a higher-level namespace. You can specify a different python source directory in `pyproject.toml` by setting `tool.maturin.python-source`, for example **pyproject.toml** ```toml [tool.maturin] python-source = "python" ``` then the project structure would look like this: ``` my-rust-and-python-project ├── Cargo.toml ├── python │ └── my_project │ ├── __init__.py │ └── bar.py ├── pyproject.toml ├── README.md └── src    └── lib.rs ``` > **Note** > > This structure is recommended to avoid [a common `ImportError` pitfall](https://github.com/PyO3/maturin/issues/490) ### Alternate Python source directory (src layout) Having a directory with `package_name` in the root of the project can occasionally cause confusion as Python allows importing local packages and modules. A popular way to avoid this is with the `src`-layout, where the Python package is nested within a `src` directory. Unfortunately this interferes with the structure of a typical Rust project. Fortunately, Python is not particular about the name of the parent source directory. maturin will detect the following src layout automatically: ``` my-rust-and-python-project ├── src # put python code in src folder │ └── my_project │ ├── __init__.py │ └── bar.py ├── pyproject.toml ├── README.md └── rust # put rust code in rust folder |── Cargo.toml └── src └── lib.rs ``` #### Import Rust as a submodule of your project If the Python module created by Rust has the same name as the Python package in a mixed Rust/Python project, IDEs might get confused. You might also want to discourage end users from using the Rust functions directly by giving it a different name, say '\_my_project'. This can be done by adding `module-name = .` to the `[tool.maturin]` in your `pyproject.toml`. For example: ```toml [tool.maturin] module-name = "my_project._my_project" ``` You can then import your Rust module inside your Python source as follows: ```python from my_project import _my_project ``` IDEs can then recognize the `_my_project` module as separate from your main Python source module. This allows for code completion of the types inside your Rust Python module for certain IDEs. ## Adding Python type information To distribute typing information, you need to add: * an empty marker file called `py.typed` in the root of the Python package * inline types in Python files and/or `.pyi` "stub" files In a pure Rust project, add type stubs in a `.pyi` file in the project root. Maturin will automatically include this file along with the required `py.typed` file for you. ``` my-rust-project/ ├── Cargo.toml ├── my_project.pyi # <<< add type stubs for Rust functions in the my_project module here ├── pyproject.toml └── src └── lib.rs ``` In a mixed Rust/Python project, additional files in the Python source dir (but not in `.gitignore`) will be automatically included in the build outputs (source distribution and/or wheel). Type information can be therefore added to the root Python package directory as you might do in a pure Python package. This requires you to add the `py.typed` marker file yourself. ``` my-project ├── Cargo.toml ├── python │ └── my_project │ ├── __init__.py │ ├── py.typed # <<< add this empty file │ ├── my_project.pyi # <<< add type stubs for Rust functions in the my_project module here │ ├── bar.pyi # <<< add type stubs for bar.py here OR type bar.py inline │ └── bar.py ├── pyproject.toml ├── README.md └── src └── lib.rs ``` ## Data You can add wheel data by creating a `.data` folder or setting its location as `data` in pyproject.toml under `[tool.maturin]` or in Cargo.toml under `[project.metadata.maturin]`. The data folder may have the following subfolder: * `data`: The contents of this folder will simply be unpacked into the virtualenv * `scripts`: Treated similar to entry points, files in there are installed as standalone executable * `headers`: For `.h` C header files * `purelib`: This also exists, but seems to be barely used * `platlib`: This also exists, but seems to be barely used If you add a symlink in the data directory, we'll include the actual file so you have more flexibility. python-maturin_1.3.2.orig/guide/src/sphinx.md0000644000000000000000000000620614446366340016217 0ustar00# Sphinx Documentation Integration Sphinx is a popular documentation generator in Python community. It's commonly used together with services like [Read The Docs](https://readthedocs.org/) which automates documentation building, versioning, and hosting for you. Usually in a pure Python project setting up Sphinx is easy, just follow the [quick start](https://www.sphinx-doc.org/en/master/usage/quickstart.html) of Sphinx documentation is enough. But it can get complicated when Rust based Python extension modules are involved. With maturin, first you need to make sure you have added a `pyproject.toml` and properly configured it to build source distributions, for example a minimal configuration below: ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" ``` With this `pip install .` should work when invoked in the project directory. ## Read The Docs Integration To build documentation on [Read The Docs](https://readthedocs.org/), you need to tell it to install the Rust compiler and Python interpreter in its build environment, you can do it by adding a `.readthedocs.yaml` in your project root: ```yaml # https://docs.readthedocs.io/en/stable/config-file/v2.html#supported-settings version: 2 sphinx: builder: html build: os: "ubuntu-20.04" tools: python: "3.9" rust: "1.55" python: install: - method: pip path: . ``` If you're using a mixed Rust/Python project layout, make sure you didn't add the Python project path to `sys.path` in `conf.py` of Sphinx. Read The Docs doesn't install your project in editable mode, adding it to `sys.path` will make your project fail to import which breaks documentation generation. If you need to install a specific version of Sphinx or adding Sphinx themes/extensions, you can change the `python.install` section a bit to add an extra installation step, for example: ```yaml python: install: - requirements: docs/requirements.txt - method: pip path: . ``` In `docs/requirements.txt` you can add some Python package requirements you needs build the documentation. ## Netlify Integration [Netlify](https://www.netlify.com/) is another popular automated site hosting service that can be used with Sphinx and other documentation tools. Netlify configuration can be specified in a `.netlify.toml` file. Assuming your Sphinx documentation files are placed in `docs/` directory, a minimal configurationfor maturin based project can be: ```toml [build] base = "docs" publish = "_build/html" command = "maturin develop -m ../Cargo.toml && make html" ``` You also need to add a `rust-toolchain` file at `docs/rust-toolchain` which netlify will use to install the specified Rust toolchain that maturin needs to compile your project. For Sphinx which is written in Python to run you need to add a `runtime.txt` at `docs/runtime.txt`, its content should be a Python interpreter version for example `3.8`. Then a `requirements.txt` file at `docs/requirements.txt` is needed to install Sphinx and its dependencies, you can generate one by: ```bash python3 -m venv venv source venv/bin/activate python3 -m pip install sphinx python3 -m pip freeze > docs/requirements.txt ``` python-maturin_1.3.2.orig/guide/src/tutorial.md0000644000000000000000000002235414525221045016541 0ustar00# Tutorial In this tutorial we will wrap a version of [the guessing game from The Rust Book](https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html) to run in Python using pyo3. ## Create a new Rust project First, create a new Rust library project using `cargo new --lib --edition 2021 guessing-game`. This will create a directory with the following structure. ```ignore guessing-game/ ├── Cargo.toml └── src └── lib.rs ``` Edit `Cargo.toml` to configure the project and module name, and add the dependencies (`rand` and `pyo3`). Configure `pyo3` with additional features to make an extension module compatible with multiple Python versions using the stable ABI (`abi3`). ```toml [package] name = "guessing-game" version = "0.1.0" edition = "2021" [lib] name = "guessing_game" # "cdylib" is necessary to produce a shared library for Python to import from. crate-type = ["cdylib"] [dependencies] rand = "0.8.4" [dependencies.pyo3] version = "0.19.0" # "abi3-py38" tells pyo3 (and maturin) to build using the stable ABI with minimum Python version 3.8 features = ["abi3-py37"] ``` Add a `pyproject.toml` to configure [PEP 518](https://peps.python.org/pep-0518/) build system requirements and enable the `extension-module` feature of pyo3. ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [tool.maturin] # "extension-module" tells pyo3 we want to build an extension module (skips linking against libpython.so) features = ["pyo3/extension-module"] ``` ### Use `maturin new` New projects can also be quickly created using the `maturin new` command: ```bash maturin new --help Create a new cargo project Usage: maturin new [OPTIONS] Arguments: Project path Options: --name Set the resulting package name, defaults to the directory name --mixed Use mixed Rust/Python project layout --src Use Python first src layout for mixed Rust/Python project -b, --bindings Which kind of bindings to use [possible values: pyo3, rust-cpython, cffi, uniffi, bin] -h, --help Print help information ``` The above process can be achieved by running `maturin new -b pyo3 guessing_game` then edit `Cargo.toml` to add `abi3-py38` feature. ## Install and configure maturin (in a virtual environment) Create a virtual environment and install maturin. Note maturin has minimal dependencies! ```shell ferris@rustbox [~/src/rust/guessing-game] % python3 -m venv .venv ferris@rustbox [~/src/rust/guessing-game] % source .venv/bin/activate (.venv) ferris@rustbox [~/src/rust/guessing-game] % pip install -U pip maturin (.venv) ferris@rustbox [~/src/rust/guessing-game] % pip freeze maturin==1.3.0 tomli==2.0.1 ``` maturin is configured in `pyproject.toml` as introduced by [PEP 518](https://www.python.org/dev/peps/pep-0518/). This file lives in the root of your project tree: ```ignore guessing-game/ ├── Cargo.toml ├── pyproject.toml # <<< add this file └── src └── lib.rs ``` Configuration in this file is quite simple for most projects. You just need to indicate maturin as a requirement (and restrict the version) and as the build-backend (Python supports a number of build-backends since [PEP 517](https://www.python.org/dev/peps/pep-0517/)). ```toml [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" ``` Various other tools may also be configured in `pyproject.toml` and the Python community seems to be consolidating declarative configuration in this file. ## Program the guessing game in Rust When you create a `lib` project with `cargo new` it creates a file `src/lib.rs` with some default code. Edit that file and replace the default code with the code below. As mentioned, we will implement a slightly modified version of [the guessing game from The Rust Book](https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html). Instead of implementing as a `bin` crate, we're using a `lib` and will expose the main logic as a Python function. ```rust,no_run use pyo3::prelude::*; use rand::Rng; use std::cmp::Ordering; use std::io; #[pyfunction] fn guess_the_number() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen_range(1..101); loop { println!("Please input your guess."); let mut guess = String::new(); io::stdin() .read_line(&mut guess) .expect("Failed to read line"); let guess: u32 = match guess.trim().parse() { Ok(num) => num, Err(_) => continue, }; println!("You guessed: {}", guess); match guess.cmp(&secret_number) { Ordering::Less => println!("Too small!"), Ordering::Greater => println!("Too big!"), Ordering::Equal => { println!("You win!"); break; } } } } /// A Python module implemented in Rust. The name of this function must match /// the `lib.name` setting in the `Cargo.toml`, else Python will not be able to /// import the module. #[pymodule] fn guessing_game(_py: Python, m: &PyModule) -> PyResult<()> { m.add_function(wrap_pyfunction!(guess_the_number, m)?)?; Ok(()) } ``` Thanks to pyo3, there's very little difference between this and the example in The Rust Book. All we had to do was: 1. Include the pyo3 prelude 2. Add `#[pyfunction]` to our function 3. Add the `#[pymodule]` block to expose the function as part of a Python module Refer to the [pyo3 User Guide](https://pyo3.rs/) for more information on using pyo3. It can do a lot more! ## Build and install the module with `maturin develop` Note that *this is just a Rust project* at this point, and with few exceptions you can build it as you'd expect using `cargo build`. maturin helps with this, however, adding some platform-specific build configuration and ultimately packaging the binary results as a wheel (a `.whl` file, which is an archive of compiled components suitable for installation with `pip`, the Python package manager). So let's use maturin to build and install in our current environment. ```shell (.venv) ferris@rustbox [~/src/rust/guessing-game] % maturin develop 🔗 Found pyo3 bindings with abi3 support for Python ≥ 3.8 ðŸ Not using a specific python interpreter (With abi3, an interpreter is only required on windows) Compiling pyo3-build-config v0.18.0 Compiling libc v0.2.119 Compiling once_cell v1.10.0 Compiling cfg-if v1.0.0 Compiling proc-macro2 v1.0.36 Compiling unicode-xid v0.2.2 Compiling syn v1.0.86 Compiling parking_lot_core v0.8.5 Compiling smallvec v1.8.0 Compiling scopeguard v1.1.0 Compiling unindent v0.1.8 Compiling ppv-lite86 v0.2.16 Compiling instant v0.1.12 Compiling lock_api v0.4.6 Compiling indoc v1.0.4 Compiling getrandom v0.2.5 Compiling rand_core v0.6.3 Compiling parking_lot v0.11.2 Compiling rand_chacha v0.3.1 Compiling rand v0.8.5 Compiling quote v1.0.15 Compiling pyo3-ffi v0.18.0 Compiling pyo3 v0.18.0 Compiling pyo3-macros-backend v0.18.0 Compiling pyo3-macros v0.18.0 Compiling guessing-game v0.1.0 (/Users/ferris/src/rust/guessing-game) Finished dev [unoptimized + debuginfo] target(s) in 13.31s ``` Your `guessing_game` module should now be available in your current virtual environment. Go ahead and play a few games! ```shell (.venv) ferris@rustbox [~/src/rust/guessing-game] % python Python 3.9.6 (default, Aug 25 2021, 16:04:27) [Clang 12.0.5 (clang-1205.0.22.9)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import guessing_game >>> guessing_game.guess_the_number() Guess the number! Please input your guess. 42 You guessed: 42 Too small! Please input your guess. 80 You guessed: 80 Too big! Please input your guess. 50 You guessed: 50 Too small! Please input your guess. 60 You guessed: 60 Too big! Please input your guess. 55 You guessed: 55 You win! ``` ## Create a wheel for distribution `maturin develop` actually skips the wheel generation part and installs directly in the current environment. `maturin build` on the other hand will produce a wheel you can distribute. Note the wheel contains "tags" in its filename that correspond to supported Python versions, platforms, and/or architectures, so yours might look a little different. If you want to distribute broadly, you may need to build on multiple platforms and use a [`manylinux`](https://github.com/pypa/manylinux) Docker container to build wheels compatible with a wide range of Linux distros. ```shell (.venv) ferris@rustbox [~/src/rust/guessing-game] % maturin build 🔗 Found pyo3 bindings with abi3 support for Python ≥ 3.8 ðŸ Not using a specific python interpreter (With abi3, an interpreter is only required on windows) Finished dev [unoptimized + debuginfo] target(s) in 7.32s 📦 Built wheel for abi3 Python ≥ 3.8 to /Users/ferris/src/rust/guessing-game/target/wheels/guessing_game-0.1.0-cp37-abi3-macosx_10_7_x86_64.whl ``` maturin can even publish wheels directly to [PyPI](https://pypi.org) with `maturin publish`! ## Summary Congratulations! You successfully created a Python module implemented entirely in Rust thanks to pyo3 and maturin. This demonstrates how easy it is to get started with maturin, but keep reading to learn more about all the additional features. python-maturin_1.3.2.orig/guide/src/assets/sponsors/0000755000000000000000000000000014412704251017536 5ustar00python-maturin_1.3.2.orig/guide/src/assets/sponsors/pydantic.png0000644000000000000000000001212414412704251022057 0ustar00‰PNG  IHDRÈÈ":9ÉIDATxœìyTSÇþÀH” [Ëb‹U­ „ÔZ-ÚÚÖÁ¥Ë³ÕªU[j±¯Z•ºWKiû<-*‹´Úº€‚"«о>EeÑÚs”=’ A“ß‘ôð{¯µÌ¹so˜Ïßwf¾2¿÷fîÜïð† 8lÌp@0MˆX$±H b@Ä" ˆE@‹€" D,ˆX$±H b@Ä" ˆE@‹€" <Ü0GGG7Wgg''G{¡Phkcmii),63{üŸ°»»»ëáÃÎÎÎŽŽŽ¶{÷•J¥\~·¹¹¥¾¡áN]]K‹÷?‚) \±žzÊiÂx/¯qãßYR*ÅìËÓst–O#ÂÃpBEÅñ7]»^…;ã`“XB¡mü†¸eKbxX`…;†þár¹KÇ=’"ð׿³P˜™™M|~Â’Øèööö_ÿsw8Á‚Œ5â¹á_îßcÚS†#“•¿·f]훸éFg,33³5«Vúþ_ÃÝÝqÇÂÜÜ\ÇFkµÚòŠKL~óÈÜŒåâì|àÛÄ @1î@ŠD*{kùʺºzÜ<&f,@ðÁº5ßH9bîX˜Ë07·Å1‹ ôï_ÿ£V«q‡óg—±zð3ÖÏÑ¥ÅyýVã5©®¾îЄÿfìOYia¿—i´ÚÀàˆëUÕpG‡¿˜‘°us¿V)•Jbjªªk4M¿—ñÌÍ·mÙ}tÈbŠýÃÃúÿ䆹ERLÃîE„‡öûûÝX ‹¿!ÎËDB¡«‹ Ü¡ bŒçhÃKn4lâ ¦Xá¡!†‹¿tI Ä¡ eéb#þÂb±hH0ÄÑaŠ÷áZÃ/~oÅòÉ“&Bðߊ—-5ªÉGÆL_¿@ËoН¿ßï·°°øùè/¯q° ôâëã‘~ÈØÀþ~S|ûYž0hb­\±ÜØ&"‘0ëıñÄ-¨øúxÿ)ÃzèP€¶+W@û"Î:Ö°an—)3:qD¡P¾ôòk••W©‡A b•¾î÷„I~·ï@8ÏNÆZ¶$Ì*’· BÑ*‡cnnnì“Ùß!c âó«®ýê`oO¥…BõòkWHÞ…ºUzäò»£ÇM¤^ÔBÆzá…i­Òç­L’·@ñõ™ Å*‡ãà`?cúTêý@kÑÂùÔ;!nÓ“«~€b•žhJõVhg'ª½~âY¦äžh=¹ ¦Uús_Gzާ¸—†jÆš5 î ¹$oô\¥‡ÏçÏ¡\ƒ™ªX³Tø nÄ窿B½¸7¥[¡Phû[ÍUD‡¼‘õ­>€õðïÐh4ÃGmk»Ü¥Œ552ÝÑd}ëï@š«ôðx¼Èˆp*=PkÚÔH*ÍûEOôò‹tvè¹ê¯LŸA¥9¸X\.7 êF‹'Ò“·~"yK ¹ª—°Ð*5§ÀÅ;ÖÓÁ꺨!¼¥‡¶\¥ÇÑÑa …êÃàb·5’·èÌU½ˆÅà§Ú‚‹àoÄî+ê ä¼Es®ê…ʃ‹åãMwåã™·°äª?†öß÷(ÖSO9¹¸8 Ì@Ë[¸r•WW''G°¶€ba,ÿ?pòÆ\Õ ðDŠå5gÎy o®êx¢ÅÂ~ Žiç-&ä*=ž£=ÀŠÅ„c›M5o¡Ø Œ‡Ç(°†€b wwkÓË[Œ²ŠÊDƒˆåèè€å@©'bJy‹iVq8œ¡C­Àöƒˆåæê Ð ¦‘·h•77éËÅà Vß°=o1ÖªÇÓ ´` "ð¢RØ›·||&?ÆP«O·#ÈtƒˆEϦؘ·|}¼OûÁÚš¡VO7ˆX"¡ =°+oõäª &[Õ³dºAIJÆt~µôä­£xß ós•[ é‹9k ‡H$Ê:yŒÉ5’X‘«ôX…"=ÞQä±['Ž2Ó-ŸÉ¬ÈUzCk@ÄÌï§,=C‰D™Ìsë±U?±ÆªÇÓÝß)OD,3ЊEôc'ådxyNî@þ`á‚yY'Ž1veቀ¨¢ãè^¼X[MÜ·› n-\0oï®Ï‡ ‚;:«›mÇtY[[N>°ò]£‹YBdCÜúo“ö³Ñ*°SÙ@Äz¨~Ð ; [7J…†¸õâÖcš:L7ˆX:Z1„-ÜbµUÀÓ "–ª£ CxìÖ»ÿ m8¶[<Ý bÝ»w sHغ™ž¼eVõL7Hͱ”Jøç&Ò yË4¬Ò– Ð D,¹ü.@+¦‘°uó[o,EÔùÚ5U=Ó-h"VSs3@+25’R ¨>˜F­£hn¡K¬††F€V–RWWÐ D¬;uu­,…>±ZZä*‹W†ÓÞ®’ßy¤|Wxë÷ßÁØðDŠUS[ ÖÀ.ªk'P¬ªª°†vQU 8Ñ€bU^½ÖÀ.*+'P¬Ë—+ÁØÅ•JÀ‰«©¹¹®¾¬--Ü©«knnk ¾ƒôâÅKÀm ¬àâÅ_€Û‚‹%-+nK`T¦\,‰DÜ–À ¨L1¸X×®W½÷&°‚–ùõªjàæàbétºÂ¢ ÀÍ § ¨X§Ó7§ôù×¹Ü<*Í L&—ÚäR+/¿P­ÑPéÀLÔM^A!•(‰¥lk+-•PéÀLJJ$TŽW…ð%ô©Ì3{ 0S™§)ö@]¬Ójµšb'Fñè‘¿X­ Å›1iä((ˆ¡(Hú‘©wB`P&‚X9gsÁv¯ˆ\.Ï9wžz?ÄR«Õ©iG¨÷C`©é?@yh†S+ùP*X±£ÐjµÉS tG¬Û·ïœÉ> ¥+FNŸÉ¹}ç”® UôKLúVW\$&} «+hb•W\’ÊÈ-#‘Ê*àmÞ„YƒtÇ®={#ÐÌŽ]{!öS¬Â¢ ¥R²û•”JdEÅ%;„\5yk¸èúÄAK*-+((‚Û'5yù…RYÜ>á×yß°ñS Ù¤Å4Mü'› w _¬ªêšƒ‡S¡wK@Dò¡àïèûÉÉÛ>ß©l)\I ¥²-aû.=#K¡PnÚ¼ Eϸlúl›B¤T1ª³t¥¤•’™M©Dz(% Qç¨ÄÒét«Þ_ßÕÕ…¨EºººV­YO対Axú×Í›¿!º¨óùŽÝ7»…®´ÇÊ}ùÕ7%¥R¤C()•ìOüéhÅêîî~{ùJ•J…t‚Q´·«þñΪîîn¤£ ?³¾¡á˯Ȏ‘˜ôM]=H…m£ ã„Õý‰_“b¸ ¡¶öÆþÄ$¢C¬ÎÎÎ…1ËÈ ;ííªèØetüT§éLè7n._±Ý[B¿ètºwV®®©½AÏpô6ž™ufË¶í´ Gø[¶íÈÌ¢¯­§ØïÞ»ÿpj:#ô¤¦eìÞ»Îi‹ÃἿ.® lØ¢•‚¢Õk? yPºÅÒh4ѱo@Ü´O+++Ü! §¼âÒ¢Ø7èß!G·X§££cîë /_Á׸±|>w¹r¥òÕy ±A,ýqås^™‡b™QØØXÏŸ÷*ÞÐQU]3{î|\'ÃãK_ÿèÅY/cÏ[[6ÿsäˆçðÆ€‚+•Wg¾ôJkk+®°‰¥wkVÔÜò œÏ["¡ð\væÔT‡Cc¡ââ/3£æÞÅgf±ßïߟ3÷õ‚ÂbŒ1ØÛÛýt4}÷Î@€1 XÏ~åõ{÷(U¥f±zžå¼:/:%g!$.—ûö›ËJŠÎO|~Æ0¨“–žñÚ¼èOëÂ|°ÿOîîîîì³çÔjupP —ËņhÑÂù:®¼¼‚âÛ§EÑóÝÜ\á…Ö?:.aû®7nB½Æ@ðg¬^vïݳäÍöövŒ1ðùüOâ?Ê9sòÙg†a ÃXT*Uì’·à_ ƒÄÒ¿O |øbXøMñ•–ÄD/À†ÔÞ¸9ãTÕ:Çpa–X=û ~ Ÿž°}ÞÔeee•”øEÎé“þ~S0†Ñ7*UGÂö]ÁaÓhÛ³`8ŒK¿kûÎ=>þÁÅJñF"ð;—}êëÄ/øò§T"óõÞ¾sσ¸cyLKOCCãìW^ÿäÓ-˜ÿp‹¢HŠó<== o‚ô'HWW×?7o5{. ;Œa®Xú_‹û“‚#°ûêîþlNÖÉ¥‹c ¼ÞÁÞQ$¥©8$rßþ¯òëïï`ÄrCß(•Ê#?mhlô÷›"°°À†@ ˜ñÂ4;‘¨D"é{³€«‹süÇqГ–RÙ÷ñÆ?ÚØÚª€Û3 ±zÑét‡SÒŸŸìwà»d¼5’Þ~kYIQ^ßë¨ë×®13ƒù‡Õhµß%šäpèp[¶w³ cõÒÕÕ•{>?ëtö³Ï>3|¸;®0þµâ 먋c¢ã7|q¸ü‚¢è˜¥éG~Äþ¬iÜ¡B'Ü1€ ð‹ÿ8.0Àc —~ù÷¦ÏJ%RýãŽÇ¨‘k×¼·`þë°ú/•ȶ&ì€^kØ*–ž°àõëVŠ1ÆpïþýƆF¡Pèää«O©¬|ûÎÝp«ÍÒ »ÅÒãí=iÕÊwf½ø"gŽ;JhµÚ3Ùg“¾-¯¸ˆ;ª˜‚Xz† s[½86ÚÑÁw,FÓÚªHIKÿþ`ÊíÛpNÁŽéˆ¥‡ÏçOŸ¹háü©‘áÌßÏþH­.((:’ñcöÙÜGá&¦&V/B¡pNÔ¬¨—f‰™f˜F£‘HeÇOffξ{ç>Ot˜¬X½ØÚÚFF„MŸääíù€ÖVE~AáÙÜóyù…ψg>¦/V/\.wÌOq€Ÿÿ_oïIÏ £cÇUccSYy…DZ&‘Ê®WU³ey“:H¬?áää8a¼—׸±ž£=<èìèèh»w_©TÊåw›[ZêëîÔÕÉåälì? bÀŽ—ÐÖAÄ" ˆE@‹€" D,ˆX$±H b@Ä" ˆE@‹€" D,ˆX$±Hø¿ÿÿÿ à@A}D)IEND®B`‚python-maturin_1.3.2.orig/guide/src/assets/sponsors/rerun.png0000644000000000000000000001061214412704756021411 0ustar00‰PNG  IHDRÈÈ":9ÉQIDATxœìÝiPSWpŒ„„EQß*ˆVª(­Ö µq)V§j[G­—q«U+jÔI‘E(TD‰ 2L-Ul«´uß*ŠŽKcE-"J‰Š²È¾„@w¦w†aXÎ=@NÖç÷QOνùs¹÷žsÏev€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X€ ‚ˆ€`" X]õÉ'ŸÌŸ?ßнfÄÍÍíܹsÿINN~ï½÷ Ý#`âìííÅb±Z­nlF£ÑÈd2GGGC÷˜ &“¹zõê‚‚‚Ævy{{[YYº§ÖÝÐ0%<O&“yxx ›1™pæ ð8;;9r¤½£TÓŸÂèèè^½zº³À°ÙìÀÀ@¥R‰NUrròˆ# ÝY`",X P(БÊÎÎ†Û ×È‘#¯\¹‚ŽTUU•¿¿?›Í¦­ÆårÝÜÜôÒq`¬¿ÿþ{Fƒˆ”V«=|ø°““m5ƒ±|ùòׯ_óù|½t++«M›6•”” TwîÜáñx8=<=tèPœ‚sæÌyúôi›EÚ •Z±XlggG`~5S£#õøñãÙ³gã>|ø… ¥Á¢¬Y³çï,0RÍÏ©ÛSZZ*X,m5‡ýû÷·îD°(‰„ÌF’ZŸS·V__ß·o_ÚjL&síÚµoÞ¼AGªCÁJHH ³éúf)ƒÐ,K :88 šÝ¸qcË–-iii´§L™"•JÇŽ«Ón“‚8§nòòåËÅ‹ãTsqqùõ×_qŽR–|Ä2ó Ô9õ™3g—u555aaaîîîÇŽCW³±±Ù±cGffæ’%KÍþüóÏÌÌÌ.ôº¥ñãÇ9R‡AçažS;vlàÀ8½¼¼^¼x®–••5wîÜnݺ]½zU‡G¬U«Vi4š˜˜˜Þ½{ëb߀NÁ<§þçŸ<==q Ž5ªuPZ¨¬¬ôóóëÑ£õ‹úßââb>ŸÓS `Ê”)÷îÝC‡ °°pýúõ8ó<ûôé[__¨¦Õjúõë×üƒ„‚EÉÈȘ>}z×öÀ†sN]WW'•J{öìI[­{÷î›7o.--E”Ëå'Nlýq¢ÁjllLOOïì~Òs¸Ý`ccãëëëççÇårÍ.]º$pN«?þøc‰D‚~œ+??ûö퉉‰êµ™3ù`yyy‰ÅâAƒ!Ú<{öÌ××÷Ô©S´Õ\]]÷íÛ‡žªV«%Ixx¸R©ìT—-‚ kÔ¨QQQQÓ¦MC´©ªªÚµk×þýûëêêÐÕlmm…B¡µµ5¢ÙÉ“'·mÛ¦P(:ÛkKa’ÁêÓ§OXXØ×_¸>jhhHLLô÷÷ÏÏÏGWc0+V¬Ø½{7zvÔ£G|||.]ºDÛ=ww÷·ß~›¶0"]<§nmâĉr¹]­´´tóæÍÝ»ÓÿöìÙS*•ÖÕÕµ.bi'ï¦dæÌ™èäåå­\¹s’gBBí€tlllŸ>}h«1™Loo¢öJA°Œ‘««ë‰'Бª­­ˆˆ°µµ¥­Ö£G??¿ÊÊJtÁ«W¯Ž5 §{žžžiiièj,ãbkkQ[[‹þÚNž<ùÎ;ïàœ;wnVVºÚ‹/¼¼¼pª 80)) ] ‚etx<^^^ú {ôèÑÌ™3qª¹»»_¼x]M©TÛØØÐVãp8¡¡¡*• 'U,£¾*7nâJ­¬¬ìÛo¿¥†\ÐuzöìºaÃôŒÐcÇŽ‰D¢W¯^ÑvlñâÅ‘‘‘˜£×–ɨƒÕ­V\\\ŒnÉd2×­[÷Ýwß¡g„Þ¿ëÖ­7oÞ¤ýÑ£GŽŽŽž2e ¢R©¬­­Å9å7c¦7ëÚµkãÆÛ¸q#mª<==ïÝ»‡HUaaáºuëÆO›ª¾}ûÆÇÇß½{‘ª†††Ÿ~úiذa›bÎLìˆ%—Ë?úè#Úf‹Å‹-B´©««‹‰‰ ­¨¨@Wc±X|>?88=z-—ËÁ;wh»g L,XjµÝ€Ãá|óÍ7"‘ˆÃá š]¼xQ(þûï¿´?qÖ¬Y‰ÄÝÝÑ&777 ¤›3±`¡-Z´(22= ••åããsöìYÚjC† ‘H$sæÌA´Q«Õûö틈ˆ€éÌ$X£G–ÉdS§NE´©¨¨§†\ÐÕìííAÓŒÐ68qÂ×פÛdÁòðð¸}û6z@úСCèRL&sÕªU»víj1#´…G ‚Ë—/w¡×f΂Åår©’Ëå[¶l¹{÷.m'•JÇhSVVràÀÚ›gÎôn7àËÍÍ]±bÅäÉ“iSåì윘˜ø×_!R¥Õj8àææ ©¢eG¬Ö´Zíž={víÚU]]nÉf³}||üýýÑ£×ׯ_ß²e˃tÝS³ežÁR©T´Í>ÿüó½{÷ººº"ÚäääˆD¢¤¤$vÐü™g°h1"**jÆŒˆ6555‘ÿQ©Tzìš™°¸`9::†††z{{£g„þöÛo¾¾¾999zìšY± `1Œ 6„……¡Tðà@ ¸víš»f†,(X\.7&&Ñ ¸¸8$$$..®¡¡Aý2O,„úúú¸¸¸ààಲ2C÷ÅL@°º]¹rE(>|øÐÐ1+–¬µk×55*ÚÌ «óX,–P(|úôéºuë Ý¿êÔ©GÕoï þvΣ÷……… 8Á ‚Õa8Þã¯8b® X€ùèý… |||pVÁY1ÕDA°°0 êÑ{ôZðYYYB¡ðܹs´‡*‘H>ûì3vÓˆXz°Ð«Qx<^TTÔ„ m¨G¢¢¢4 ºš½½}PPÐÖ­[ч=SgéW…)))ˆ·Õ;99>|øæÍ›ˆT544üøãÇ‹ÅèT1™ÌÕ«W?yòD$™wªŒŸÏo±ZðÕ«W[7óôôlѬ²²²u3[[Ûö–4~üøñ¬Y³š7f³ÙþþþUUUèµoݺåáá³-<ïÎ;èjÅÅÅ_|ñEëÏšâªÉFMoÁ¢œ>}šzuôüùó³³³Ñ_¿~½lÙ2œ­ VAWÓh4ÑÑÑŽŽŽmV€`阞ƒE½Þ‚ö­*•jçÎèw#RØlv@@€R©D¼|ù2ú]â¦,K?yoÁÚÚzìØ±ˆÇ÷õõ}þü9m© ˆÅbôŠ# …B$?~¼S5j,\>)))´-GŽ)‘HÐ+ŽTWWGDDìÛ·¯¶¶]Ãáà, :@ÿ ÛTRR²iÓ&œwÇ;::FGGk4tÁÄÄDgggœ=°lÙ²W¯^µ®`ü -ývÃÂ… iB,ËÎν:••ÕÆŸ>}Êçó-SSS'Mš´bÅŠÜÜ\ôõðð¸uëÖ‘#G @· ƒôpÄrss£Î‡ ú0“=oÞ¼6û9}úôôôtôÇóóóW¯^ÍdÒÿ&¿õÖ[¬¯¯GT3þ#–QÓ[°¨Óö   Ú—&''7»ýàÁƒÿýwôGÔjudd¤½½=íö²X¬mÛ¶•——£ Þ¸qc̘1]Ûµ–MŸÁ¢8;;9rýÚUF#“É\\\vîÜIûZ¹³gÏR÷Æh}úé§Ožþ©gϞ͟?_» ÐY¼xq‹ïôX!ú•ÏÍ;öúõëèjåååAAA)))èf•••þþþÖÖÖºØgÏĉÿþûo½‹:ØüüóÏ8ƒÄ céÒ¥9998eÛûY‡rrrÒÑÞA=!“——§ÏÙ J¥rÇŽ8G‡ZSSÓÑTݾ}ûƒ>ÐÑNegg·{÷î .´þ/rÓf E›“Ð[4hPRRfÙ¼¼¼U«VáœÏ=qpphý] Vll,íÀsJJÊûï¿Ó½iÓ¦¥¥¥ÑK(BªL@o:99:tˆvà966ýv'Š••Õúõ닊ŠÐÙJMMg*i¯^½¤R)z*)þU0 ] é0Œ•+WRW èùìMÞ}÷Ýäädtµªªª   ¸×`Œú÷ïíÚµ®«©ÙîÝ»i¯òNœ81xð`œîÍ›7ö)E…B±`Áí ; cÑ¢E/_¾ìz°(C† 9uê: 555ááá8+ÆX[[oß¾ö*áÊ•+è aØØØ„„„¨T*]Ín˜9sæãÇÑixõêÕòåËq®ò0¯bbbp®€¾¹¸¸üðíÿ½sÓfºwï¾uëÖÒÒRt¼är9æ"-ÆÚT\\Œy• ¯Í`mÛ¶ çûëÝ»w\\íU^BBB¿~ýh«5K@HOOŸ>}ºŽ¶ÓÞ÷{÷î}øá‡8FÝâ*¡µŠŠ ‘H„s•G%Ð^%?~ó*zHçèÑ£...8u¼¼¼^¼xNÓ'OЋ”6Á¼Jعs§¯+iÚ¸\n-RYYÙöíÛq6l6;$$¤¼¼]ðÔ©SC† ÁéÛ¬Y³222ÐÕ²³³½¼¼t±'0Y0WÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@ ÁD@°,@Äÿÿÿ…þßï¬'GIEND®B`‚python-maturin_1.3.2.orig/guide/src/assets/sponsors/tsy-capital.png0000644000000000000000000001611414412704756022513 0ustar00‰PNG  IHDRÈÈ­X®žIDATxœì ¸VU¹Çÿç9 G”@AeASQ +s±ëˆš†™f Þ¼¥eŽeY×›™iÚ ÙdŽId* †iŽˆ’$„¦à” Ò‘Yæß}ö}þûºÜío{xßµöw¾õ{žõœáÛ{íµö·Þ5¾C3<OU¶r]KŒÐO(¯{¬ÊË6Ý'”×ååqÌ4¡4Àue 0Pð=Lu]4Ê«C0¯.‚yÙF²ì’ï´´4Š€¬Ì«M0/ÛH–½^§™™hY+˜×¶‚yÙF²ìkó*-" +óÚN0/ÛH–]ò––Få‚yí ˜—m$Ë.ùNKK£È¿ó(˜—m$Ë.ùNKK£ÈbÁ¼†æe›¡‚yI¾ÓÒÒ(òº`^ïÌË6» æ%ùN=ŽÙ^ð€lMv,-ÜÍ“zõ¼Yá‰a¹`ãØÃuer0L°þË\WÆõØæåEÁ¼öÌËÌKò]–šFy‚y$˜—-F æ%ù.KM# ÈÁ¼ÌË£ózV0/OI-8R×Ê€¤oF¹®-iù«°êÑ‚yi#YÖMf æWjI@Ö˜+˜ßñ‚yi#YÖgEQ &  æudhööp¸`~ eEØhò`^]ŒÌO‹q,«’Œ§dôâZj±*)pZ<,Xß ¶q]!.6˜-%×ÍÚe”ªï®+d›F›b^I¤hðEÁü¤™È2J1E0/OIÙMøL`EI§A™V ×UR]ÞSbf 7œ \W(† …ëø´ë yìqŽpãi°µëJeyK¸Žg»®”Ç;ñT]²ïºRç ×-xW;º®”Ç.’Þ+´7)ƒÑö¶/•Fñ¢èy7c…Q~êºR~¦P¯zR«ñÑà5ᆴ Àp‡uÚGø ´ÂwÔâ°N‡\¤ÐÛÎtÔ ‚g>¥PŸ‹ÔÅSzX­Ð¨ÎuP—s걊ïÈÓÀ\©Ð°ÖØÓbööX¦X¬ƒ§¤ô§§réÆ5@w åïÎgI—=·Ã=üX¡éz eÿ¹RÙl¡ìž:¡ŸÒZ$HË=A©Ì«CÖy: —*5¶ ÂEBF+M +|Ï»ØÀ›J ®À®‚eJïêe]  §`Y=ˆÓ”]^ äñ²b9?%PFO'¥IØâ0šžз@ù¶ð¼bù|—žNÊp᜜š±;Òm‘V¹68V“ñÔ—(6Ä Í08Cyvæ=šeºDñ}z:]è M³A¾`ßeÙ‡×j–å™:ÿîqÀpÅmÔ0­¦Ú}5Æ*žÏ„i½ŸZUGÒãE÷2²êFê ­¢“ƒ·¸¥ºÀ?¹+³D¹,y8 À5ÊÏØÂéÍeüô6s!€o[ð—vƒ2¹@Y8ÎQ,û! ’”·l^@™¨Ø¨ÖØÅB)«¯k…‡ ä•Ò ˆ2š½ï-”_3†â•ÊüAO^@,ðsÅF¦yV0Z±Ü“ä­ ïÚ ˆ‚EîCJ m–ÒÎOÏ]4ÊüW…°vmt.]V/ –èCÇ î$…òŽW*k;½+JÒ­àBÜ HI©t–0OX_©‰[ÉÒåÜL.ÒLR/ ÐZ´KŽ"'(•QC+ùlEáP¯…ùïHø¸c•`^‚y™lRÈs½BžGœ¨ÔËÍT(«FÜŽÍŒm.Íoëuñ¼Ã®Šjâ&¨Ç+•u €„ËÚJç ^@ê”m#¶>¨Xî4Žçò¤§…ÂÓ™töOìÄ-ж"Á”僊eß_Ñrð…ó›ú&öR'4ÑÎ@£UHS›[˯ek?^0PE®Tl\Ëô³P‡•½¸\¤TîÜ$0zQâRÅFU¡œ-´Ï¾¬Xö` :Õ H¹ø¾rƒzÜòS³¢^–öH2‚ŠŒYw½€,¯WnHë„¢åfeå4ëv¹…z´ø8×ViB×y¢'½Âk6  }Õa¿n¡~·YtÚÐDÇÛŸp ÏRæG ļ€0ØR,¾éœ$ÑÄà£Úõtíö Ù·} ÊQ÷o)ö·Æ t(EÕ&ï8®ÎiUÞÆ5S€Ã\WØàHKqSB×£1M<Šì§d/Q-]èºÂ1|Ãbýg2¦¤§äôàNË&‹ãwŽ×ÕhR6TЦ0üA«ëŠ{þ 1œê ’ÒÌÇw;ŒY–ßÉã\WÜóG9ˆ,6ª$EÙ À+ÞÏ>›;šh;=ÃÁ_a|Â]]¿„ ¼×ÒÎV5AñA<-±5C¬ÍsôeiYÆøÞÏa¤Û ;³S|hyZ àW%‚¿T)ü³-°¿1.ý‹§â.<àwzò€ïzNg\~¡¦pt†/õ@A·ŸEÓ|žU.kðϲlObãÛÀÁœ”é…-0Àß]Dˆ¸ªe!˜<Ê4À3휢- C¸ Úë‡ÞúèOý¨`¡»gÉc¿È²W]D˜ÝÜ¯èæ¨(ÁóOú X@¯— ¹Ù°” ‹ë™–º.l^^*Á0^$=Q²^Všþì©]¿ç"É;ŽsÄo©Œ×îº Š,â”v²ë‚4*õ8‚lð5×/Î2M ªq«.GmêM@2$X£2Æá¢’§²íê¸b€‡Kð}x)IZ àÌmy—çY°q÷R‚˜”áV´'ž½”œd{!e¥>ïGTtá¦EYNß½€(¦ª¯lçúÅÔ!ýéÑÄõwèD)Ý `×/¤0ªd‹x/ ÓãÔöÈòsKðýzÉ™¦{·4êk¸ãØ yÉmYÇš19<ñÑ–fxI™þA·›}\WØó6ð—RÏË H 4äMF+Úßu%=±4sí÷ eS_/ FzŽ¡ Fyo~uE72½–v5^@HQY@[ôϔذǓá 04YÀ¤ZU@´O’_J©Êñ6…áynΦŠCg¶Åð¼Ã®4¹Þ—áöd‡˜f–ð2€¡ZÓŸqá¼ÀZ*.§·õ çxƒ¦”K”Ëá©?ºRHvæ)~?j@ô¦S¼¦î„<m¼É­Ç“€'/ O^@<ž¼€x< xñxðâñ$àÄãIÀ ˆÇ“€'/ O$ ¡¥ÛlÃ,?û(cY†z£À tn=Àua Ρ§š¹.Hg¡ÆUüÙò³CóÓ-?·×xÀwh›‘ÄXö…%‹ #Ë5Kó![e¸¶'à k²œúý¬p€ÐôXö@.Y+ÔèNpSÊkßà0Ž¢û¸À¿dL”ƵÁˆñ=þþ]ý¤¡£Ú¾˜±uÍáŠvÅaºC¹Ac\Ìg=¥ü,“j#ÈZ¡÷ö©e „ã Úä„ù¬¢Áø®ž,P¦g”§ð¥AÊHÏuø €ó(ô/d¸w=] I1BÈhmqŽ{‚Qã\Gÿ»¨´]øìO+ÏŸ÷³ˆ÷1Výs‘<‡8›xΰ¥`½œ“¥q=`”×î ` ÿ,ïMÃê å x¨`h毿œÂ%E¦ ›8rßÁuÚ`“è[ìuÇD˜þA†æG§ §aWqô©{²ÈÚ ½­iKüzÆ^Ú㎡œrÍ '’Ð$:d"G›€“¸î …âJŽÈ38*e¡‰Â™…Vþláº* k8ZÖ¤Þ§X´e¼ç/´eFƒ?f¼÷Œ×§å”œŽµ¯åú&/­ôˆx<]ˆ¤ã„ÿbÛèàuÁïßpGœo3ÀΟø¿«9²Î¤Ë×M˱CwLS—e¼'˦† ÃŒÅÚá. C¸0>]ñwgtWsGÎ…pžéåìX~Ï@ýa^[Øû›gD­ÞçxÍrN¹@A }\ÍåD^_e;ZØÊµ©¡5‚˜ùv(=£32ƒ±“èÍ…p®à›¹»,Öogz…Ó•ÓŒ­ð0–J°hÿ ƒûƒ®#¸m>B¾ˆ?ïãäí”åZ àˆ×}—óïC¸©ð&;âGy\‹y)Ë¥Æ~†´äº0lŒ ï㦷øÌKÿ4®G«Sä=¤Àrïû§Iqm†Ã¿åtºo|G°¦ãê?»•ÚÅÈÿXã=Já ~ß@Abh ¦éJψòé”ÄÂ:ŸRuâï9Îgžü½?ƒ©Èó’äÏ\ëÌåßã8ZDy•¾Êf°QžÄ”Ä˦`:v0; Š`Ù/äw÷G¨OŸ=ÀçãZè,©‡¦`89C¾»¿ÿgŽíÛ<[©§f\ïËT‹I0m2×ø}L‘ôÀŒy/çðÚœe«Æ0ºŸÕc¢‚WáôëVgø±ÔÎiZÙÀ—r>ãÌ÷9kh7æÉqìË9økœúTchŽ­Ç¢ ¡Rcýž;À îÿ<€Ÿ –'ÊUl«ó'1ŽßQmfÇH<8­€´ÓWnZ†ûÔ0BuÙàNö"ÕõŸ.ðó„ëîæÖ§MŽsðLð»Éº5k²Y°,Q‚™Á‘üý« §ó[øùTjOOðë¢O+ w2¥¡_ÌÞüYÆÎƒ§:Ïñ,!‰žÆ ?÷à‚:MZQƒAû»¿ÆõÓÜÅQø*.à)€Æ"}¬±þ_Þ—½€¤b:·R“¢ ›¸~ÈKÁ²„mèfnø,Ë0ÅÖ¼£¹]=‰ëçÜús2‘?ÿÅÙÛ)4ï‹ÙÝñ”ƒ'¹«——Ó^’«ØÐÁFŸö¤}…én?߯õU.ÅIiuä±,h_0‰Ú Ás~(ü¬zeά²Åê‚nÜòΛ²êBÕâ+ÆVíuìd³p«!°cù»sëÙ6î…W¸­î¶Œ3&(>:ŸQ«'K{Px· Jh2;bn‡Ú:(Œr½° GV¨8&²·ò{,²ÙcbÆÑÊϲݔgÆ$9Åú O;þÛŠs'ïÜ~›Á“ÜÎNç¿§‹Øpt]Ê/,*̇¦ðž eQ]ÏÊÁ¬gQ¾IÛ÷&néžB5ú.1׆ëÜæ…ÕS¸pÆò‹þsúo•ó I}2Fðv6ãæè«P†²Œ }9|-Ò»nfO¦6±‰MeE“p¹»`>§AzEÞÁó‘‘²H:@ø÷)Κþ‰äë†Ýò›”Ш‚âk4œšDcªéÜÛ.sèµ°×ʺ¸[Çs˜pgg‘Þ˜pò–ŒçL! sÜÇ@ã¤:YOÜ£|ß0G~šÃik±„‹ý;8‹Ù‘}_š³Ÿ"Ò•Þ1ž8T…®vŠ=™¶—Qè ¨>¸bG¹ˆfÃ6;k ÑÕœV¶Q0îKqv“+FHªà,.Ïg粎ßÁ1 ÷\À©Ý<šWc1ó;À7|˜ëâ"£5 ^èߌak!·qÓðmã¾5<#‘Øa(2ÅúZ•á¹=§!“vpT)qš¦C((gEþMgrZ6!òÿ´m ެg)µéÕÈÔÖ²Ž }¨ïò%ãÞÇ9­J»O} ¯½†/åjjf^œÂ"‰ßs®™ÇúwlÔÔ¼]Åiᬜ‡LIj5½Í )6æ‰ÿI“èPõ“\|‚?n{uOvrÛQ-f¯»-ƉCÖ¸7 *Ž$úqjdZ ­£ r^+²–jašÃEÓƒŸ {$>%¼µZÉavÛ“û§†U`…Óä+SØTtg§xOÄdGJžyGqºòÜüB& oïʹäŠHþä]FÔõÚ¹ÿIÎý·ÎQŸ¾Ô¾~ÅÈo-§ºÛçÈ/-¥ÐÒJNcÞ¯/n/ #M\ ˆk.eýgsѺ›P¾ÍÜ>}œÛ½EvÅÒP*ÒUŠo&°ï`[åç”m'ÚyF¢¬ áÆÀîžåñxâp®Àåñ”/ O^@<ž¼€x< xñxðâñ$àÄãI ¯•ÛÐÒk•×8,‹Í´uÙ‡ªËk(-z: ¿æ—%%yÿûýuÄ(*~.aT;‘* ˨èXÃëö+X÷4lGoE계&¤ÝRæ3Þ(wõ‰_÷…é-*!>@ƒ¶>5ò¸-å÷ú?U±}¼’¢^ÍtÖiT†wòe>G+žË»Ècºc•¼Žbœ¿Ša¢Ù¹÷¡*jø-´e¯e"ú ¯ÑÖéݘšA0;hUi:fx"¥YÁ¤È{H« šæûYRÃC{šx&•§ÏØ>Ҙ掎ÜsMÊ÷ÃÜŠ }_Ú/˜ég,ÀŠ˜Ïv©2uk5¼{Ì"mO·‘Ë óÝ8N1^Xܾ¿ñùuOb'6¼ð‹øª¡ßÕJoèo¤Œåу&¦i›Rá—œ†P@3´QWi"ßi…vÞÕ ¹úE¾¿Ð†ûÞÈÿ{W¹¿L¸—y<óÙÎ)êu ï¿…?f0D³* q|/CO2Êh¼GW¹¦ƒf£·šóù]Æ«ÍÍÆ¨qd•kÒú‹o4òó÷§SÞ[K«õdã½§rÎâõE\Ѷm2:ÓáÆôudÊûÅÄæ.–éߨڔcQ ‹¯-t Ú³ïm|¶7ƒNV8÷×d6dÐ}Oµé\Zwž¡+ÑéŒá±™Qf ”õ/ÆïCò³ÁHŽÐ‹8Ûxÿ—v¹Z›2›ëÐ?VÒB;‰É´‡o¦-yÈùüß]9=„daŒáõ¤¨³ƒîFœ’©ô™õÿ–hæ&A½„à =œLãÏÐûÛöþ6d¹ÑûïB˶GiÿœÅ6¾B»vpú0€=ãIa.Q({”áü¹9ÃT¨ch?±Äð°6 9Ñø½|#7±J©òT~·ƒ t¬¹°}Px9¯äߣ¸Åø]·¤5ʺ› ³•£Èy²Ðqƒ6á6öÊ"žÃI(÷ÓË)üù!6Š4„ÛxÆ´7£1}—ŸO+ À²ÓÛÀ)'"‡õiVò,ÒMz±aG½.ʰc,ÄÖsú°gÎòdåV>{iÁ|ºŽ0ÆE>[Èÿ×ÚK³Íû7®›Òâr‘~ï›ùÿ%üÿË)ò[¤kñ¬Å †¾šÃéÙܖ݉½ç^)y¦ñŒ!Œ¢{3·2m†nÛ–süõ9ó9н=èÍܺ^Å]½ñl4µØlŒfáü\F›½‰[ÈeÇœ^u„t7váF‘€?êAâ8Çèñ¾‘òžO÷Øœ›ža<7íˆÇoSôþ›k¸áÑp^àj9 åAcÒY:ÃÇyض+¤áí*¿kzql¢ŸÇsäÑjÄ#¼µÊÚé[¡NPˆ[F …`MzCÌçÇð„}|Á@¯êäAš)Õ\Õ·Ð-}%CcøˆÑ«ÄÅ×d*Ÿ»1Áyso*0Æq¬QöU®¹Ÿ'…¯ë,#H“±&½´Ê5ãjhR„ÔåAáå\wÌad%Ó½OOƧýÁb¹òr¿€.–Ó"#r 4p´‰s³ó1þœM÷Ÿq„Ûœ#3.²ësÇîž*×Lçîʾ›•gù‘a°ž®GçE¯Ë§Ë$|þ£ +¹côºñ¿—cNÄ»p¬bœ Å1ØÈ§Z¼y‰¤¨²¢D¹®0v2“ïçu/$\s^ÊúÔ!mŽ 7PAñ&ö¼]¹-;Œ¿/¦Wñ‰ËT”)Ôo Ï0¶¡‡ópÿ—üüÕÈ}‡ŠSò•ÊÞc Ö/Tr¬Fø¾Þ›Óó~&òÛwcª‡~YèÎ9ä6¬—yÊ›5 }ËßJ-ÏÝ)éG·¬½ u‘U®íjL1kékµqA¿¥Ê»?ï`l’<´U seC†ƒÑ0ÏŽ(M†ÃëµÆ4*Ž­Œå5U¶¯»²ÕbS'0ÔóxÜñ¿ÿÿúÇõ½M"M9IEND®B`‚python-maturin_1.3.2.orig/maturin/__init__.py0000644000000000000000000001457214525221045016263 0ustar00#!/usr/bin/env python3 """ maturin's implementation of the PEP 517 interface. Calls maturin through subprocess Currently, the "return value" of the rust implementation is the last line of stdout On windows, apparently pip's subprocess handling sets stdout to some windows encoding (e.g. cp1252 on my machine), even though the terminal supports utf8. Writing directly to the binary stdout buffer avoids encoding errors due to maturin's emojis. """ from __future__ import annotations import os import platform import shlex import shutil import struct import subprocess import sys from subprocess import SubprocessError from typing import Any, Dict, Mapping, List, Optional try: import tomllib except ModuleNotFoundError: import tomli as tomllib # type: ignore def get_config() -> Dict[str, str]: with open("pyproject.toml", "rb") as fp: pyproject_toml = tomllib.load(fp) return pyproject_toml.get("tool", {}).get("maturin", {}) def get_maturin_pep517_args(config_settings: Optional[Mapping[str, Any]] = None) -> List[str]: build_args = config_settings.get("build-args") if config_settings else None if build_args is None: env_args = os.getenv("MATURIN_PEP517_ARGS", "") args = shlex.split(env_args) elif isinstance(build_args, str): args = shlex.split(build_args) else: args = build_args return args def _additional_pep517_args() -> List[str]: # Support building for 32-bit Python on x64 Windows if platform.system().lower() == "windows" and platform.machine().lower() == "amd64": pointer_width = struct.calcsize("P") * 8 if pointer_width == 32: return ["--target", "i686-pc-windows-msvc"] return [] # noinspection PyUnusedLocal def _build_wheel( wheel_directory: str, config_settings: Optional[Mapping[str, Any]] = None, metadata_directory: Optional[str] = None, editable: bool = False, ) -> str: # PEP 517 specifies that only `sys.executable` points to the correct # python interpreter command = [ "maturin", "pep517", "build-wheel", "-i", sys.executable, "--compatibility", "off", ] command.extend(_additional_pep517_args()) if editable: command.append("--editable") pep517_args = get_maturin_pep517_args(config_settings) if pep517_args: command.extend(pep517_args) print("Running `{}`".format(" ".join(command))) sys.stdout.flush() result = subprocess.run(command, stdout=subprocess.PIPE) sys.stdout.buffer.write(result.stdout) sys.stdout.flush() if result.returncode != 0: sys.stderr.write(f"Error: command {command} returned non-zero exit status {result.returncode}\n") sys.exit(1) output = result.stdout.decode(errors="replace") wheel_path = output.strip().splitlines()[-1] filename = os.path.basename(wheel_path) shutil.copy2(wheel_path, os.path.join(wheel_directory, filename)) return filename # noinspection PyUnusedLocal def build_wheel( wheel_directory: str, config_settings: Optional[Mapping[str, Any]] = None, metadata_directory: Optional[str] = None, ) -> str: return _build_wheel(wheel_directory, config_settings, metadata_directory) # noinspection PyUnusedLocal def build_sdist(sdist_directory: str, config_settings: Optional[Mapping[str, Any]] = None) -> str: command = ["maturin", "pep517", "write-sdist", "--sdist-directory", sdist_directory] print("Running `{}`".format(" ".join(command))) sys.stdout.flush() result = subprocess.run(command, stdout=subprocess.PIPE) sys.stdout.buffer.write(result.stdout) sys.stdout.flush() if result.returncode != 0: sys.stderr.write(f"Error: command {command} returned non-zero exit status {result.returncode}\n") sys.exit(1) output = result.stdout.decode(errors="replace") return output.strip().splitlines()[-1] # noinspection PyUnusedLocal def get_requires_for_build_wheel(config_settings: Optional[Mapping[str, Any]] = None) -> List[str]: if get_config().get("bindings") == "cffi": return ["cffi"] else: return [] # noinspection PyUnusedLocal def build_editable( wheel_directory: str, config_settings: Optional[Mapping[str, Any]] = None, metadata_directory: Optional[str] = None, ) -> str: return _build_wheel(wheel_directory, config_settings, metadata_directory, editable=True) # Requirements to build an editable are the same as for a wheel get_requires_for_build_editable = get_requires_for_build_wheel # noinspection PyUnusedLocal def get_requires_for_build_sdist(config_settings: Optional[Mapping[str, Any]] = None) -> List[str]: return [] # noinspection PyUnusedLocal def prepare_metadata_for_build_wheel( metadata_directory: str, config_settings: Optional[Mapping[str, Any]] = None ) -> str: print("Checking for Rust toolchain....") is_cargo_installed = False try: output = subprocess.check_output(["cargo", "--version"]).decode("utf-8", "ignore") if "cargo" in output: is_cargo_installed = True except (FileNotFoundError, SubprocessError): pass if not is_cargo_installed: sys.stderr.write( "\nCargo, the Rust package manager, is not installed or is not on PATH.\n" "This package requires Rust and Cargo to compile extensions. Install it through\n" "the system's package manager or via https://rustup.rs/\n\n" ) sys.exit(1) command = [ "maturin", "pep517", "write-dist-info", "--metadata-directory", metadata_directory, # PEP 517 specifies that only `sys.executable` points to the correct # python interpreter "--interpreter", sys.executable, ] command.extend(_additional_pep517_args()) pep517_args = get_maturin_pep517_args(config_settings) if pep517_args: command.extend(pep517_args) print("Running `{}`".format(" ".join(command))) try: _output = subprocess.check_output(command) except subprocess.CalledProcessError as e: sys.stderr.write(f"Error running maturin: {e}\n") sys.exit(1) sys.stdout.buffer.write(_output) sys.stdout.flush() output = _output.decode(errors="replace") return output.strip().splitlines()[-1] # Metadata for editable are the same as for a wheel prepare_metadata_for_build_editable = prepare_metadata_for_build_wheel python-maturin_1.3.2.orig/maturin/__main__.py0000644000000000000000000000173314525221045016237 0ustar00from __future__ import annotations import os import sys from pathlib import Path import sysconfig from typing import Optional def get_maturin_path() -> Optional[Path]: SCRIPT_NAME = "maturin" def script_dir(scheme: str) -> str: return sysconfig.get_path("scripts", scheme) def script_exists(dir: str) -> bool: for _, _, files in os.walk(dir): for f in files: name, *_ = os.path.splitext(f) if name == SCRIPT_NAME: return True return False paths = list( filter( script_exists, filter(os.path.exists, map(script_dir, sysconfig.get_scheme_names())), ) ) if paths: return Path(paths[0]) / SCRIPT_NAME return None if __name__ == "__main__": maturin = get_maturin_path() if maturin is None: print("Unable to find `maturin` script") exit(1) os.execv(maturin, [str(maturin)] + sys.argv[1:]) python-maturin_1.3.2.orig/maturin/import_hook.py0000644000000000000000000001274214525221045017053 0ustar00from __future__ import annotations import contextlib import importlib import importlib.util import os import pathlib import shutil import subprocess import sys from contextvars import ContextVar from importlib import abc from importlib.machinery import ModuleSpec from types import ModuleType from typing import Sequence try: import tomllib except ModuleNotFoundError: import tomli as tomllib # type: ignore # Track if we have already built the package, so we can avoid infinite # recursion. _ALREADY_BUILT = ContextVar("_ALREADY_BUILT", default=False) class Importer(abc.MetaPathFinder): """A meta-path importer for the maturin based packages""" def __init__(self, bindings: str | None = None, release: bool = False): self.bindings = bindings self.release = release def find_spec( self, fullname: str, path: Sequence[str | bytes] | None = None, target: ModuleType | None = None, ) -> ModuleSpec | None: if fullname in sys.modules: return None if _ALREADY_BUILT.get(): # At this point we'll just import normally. return None mod_parts = fullname.split(".") module_name = mod_parts[-1] cwd = pathlib.Path(os.getcwd()) # Full Cargo project in cwd cargo_toml = cwd / "Cargo.toml" if _is_cargo_project(cargo_toml, module_name): return self._build_and_load(fullname, cargo_toml) # Full Cargo project in subdirectory of cwd cargo_toml = cwd / module_name / "Cargo.toml" if _is_cargo_project(cargo_toml, module_name): return self._build_and_load(fullname, cargo_toml) # module name with '-' instead of '_' cargo_toml = cwd / module_name.replace("_", "-") / "Cargo.toml" if _is_cargo_project(cargo_toml, module_name): return self._build_and_load(fullname, cargo_toml) # Single .rs file rust_file = cwd / (module_name + ".rs") if rust_file.exists(): project_dir = generate_project(rust_file, bindings=self.bindings or "pyo3") cargo_toml = project_dir / "Cargo.toml" return self._build_and_load(fullname, cargo_toml) return None def _build_and_load(self, fullname: str, cargo_toml: pathlib.Path) -> ModuleSpec | None: build_module(cargo_toml, bindings=self.bindings) loader = Loader(fullname) return importlib.util.spec_from_loader(fullname, loader) class Loader(abc.Loader): def __init__(self, fullname: str): self.fullname = fullname def load_module(self, fullname: str) -> ModuleType: # By the time we're loading, the package should've already been built # by the previous step of finding the spec. old_value = _ALREADY_BUILT.set(True) try: return importlib.import_module(self.fullname) finally: _ALREADY_BUILT.reset(old_value) def _is_cargo_project(cargo_toml: pathlib.Path, module_name: str) -> bool: with contextlib.suppress(FileNotFoundError): with open(cargo_toml, "rb") as f: cargo = tomllib.load(f) package_name = cargo.get("package", {}).get("name") if package_name == module_name or package_name.replace("-", "_") == module_name: return True return False def generate_project(rust_file: pathlib.Path, bindings: str = "pyo3") -> pathlib.Path: build_dir = pathlib.Path(os.getcwd()) / "build" project_dir = build_dir / rust_file.stem if project_dir.exists(): shutil.rmtree(project_dir) command: list[str] = ["maturin", "new", "-b", bindings, str(project_dir)] result = subprocess.run(command, stdout=subprocess.PIPE) if result.returncode != 0: sys.stderr.write(f"Error: command {command} returned non-zero exit status {result.returncode}\n") raise ImportError("Failed to generate cargo project") with open(rust_file) as f: lib_rs_content = f.read() lib_rs = project_dir / "src" / "lib.rs" with open(lib_rs, "w") as f: f.write(lib_rs_content) return project_dir def build_module(manifest_path: pathlib.Path, bindings: str | None = None, release: bool = False) -> None: command = ["maturin", "develop", "-m", str(manifest_path)] if bindings: command.append("-b") command.append(bindings) if release: command.append("--release") result = subprocess.run(command, stdout=subprocess.PIPE) sys.stdout.buffer.write(result.stdout) sys.stdout.flush() if result.returncode != 0: sys.stderr.write(f"Error: command {command} returned non-zero exit status {result.returncode}\n") raise ImportError("Failed to build module with maturin") def _have_importer() -> bool: for importer in sys.meta_path: if isinstance(importer, Importer): return True return False def install(bindings: str | None = None, release: bool = False) -> Importer | None: """ Install the import hook. :param bindings: Which kind of bindings to use. Possible values are pyo3, rust-cpython and cffi :param release: Build in release mode, otherwise debug mode by default """ if _have_importer(): return None importer = Importer(bindings=bindings, release=release) sys.meta_path.insert(0, importer) return importer def uninstall(importer: Importer) -> None: """ Uninstall the import hook. """ try: sys.meta_path.remove(importer) except ValueError: pass python-maturin_1.3.2.orig/src/auditwheel/0000755000000000000000000000000014015335625015410 5ustar00python-maturin_1.3.2.orig/src/build_context.rs0000644000000000000000000013774214525221045016500 0ustar00use crate::auditwheel::{get_policy_and_libs, patchelf, relpath}; use crate::auditwheel::{PlatformTag, Policy}; use crate::build_options::CargoOptions; use crate::compile::{warn_missing_py_init, CompileTarget}; use crate::module_writer::{ add_data, write_bin, write_bindings_module, write_cffi_module, write_python_part, write_uniffi_module, write_wasm_launcher, WheelWriter, }; use crate::project_layout::ProjectLayout; use crate::python_interpreter::InterpreterKind; use crate::source_distribution::source_distribution; use crate::target::{Arch, Os}; use crate::{ compile, pyproject_toml::Format, BuildArtifact, Metadata21, ModuleWriter, PyProjectToml, PythonInterpreter, Target, }; use anyhow::{anyhow, bail, Context, Result}; use cargo_metadata::Metadata; use fs_err as fs; use ignore::overrides::{Override, OverrideBuilder}; use indexmap::IndexMap; use lddtree::Library; use normpath::PathExt; use pep508_rs::Requirement; use platform_info::*; use sha2::{Digest, Sha256}; use std::collections::{HashMap, HashSet}; use std::env; use std::fmt::{Display, Formatter}; use std::io; use std::path::{Path, PathBuf}; use std::str::FromStr; /// The way the rust code is used in the wheel #[derive(Clone, Debug, PartialEq, Eq)] pub enum BridgeModel { /// A rust binary to be shipped a python package /// The String is the name of the bindings /// providing crate, e.g. pyo3, the number is the minimum minor python version Bin(Option<(String, usize)>), /// A native module with pyo3 or rust-cpython bindings. The String is the name of the bindings /// providing crate, e.g. pyo3, the number is the minimum minor python version Bindings(String, usize), /// `Bindings`, but specifically for pyo3 with feature flags that allow building a single wheel /// for all cpython versions (pypy & graalpy still need multiple versions). /// The numbers are the minimum major and minor version BindingsAbi3(u8, u8), /// A native module with c bindings, i.e. `#[no_mangle] extern "C" ` Cffi, /// A native module generated from uniffi UniFfi, } impl BridgeModel { /// Returns the name of the bindings crate pub fn unwrap_bindings(&self) -> &str { match self { BridgeModel::Bindings(value, _) => value, _ => panic!("Expected Bindings"), } } /// Test whether this is using a specific bindings crate pub fn is_bindings(&self, name: &str) -> bool { match self { BridgeModel::Bin(Some((value, _))) => value == name, BridgeModel::Bindings(value, _) => value == name, _ => false, } } /// Test whether this is bin bindings pub fn is_bin(&self) -> bool { matches!(self, BridgeModel::Bin(_)) } } impl Display for BridgeModel { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { match self { BridgeModel::Bin(Some((name, _))) => write!(f, "{name} bin"), BridgeModel::Bin(None) => write!(f, "bin"), BridgeModel::Bindings(name, _) => write!(f, "{name}"), BridgeModel::BindingsAbi3(..) => write!(f, "pyo3"), BridgeModel::Cffi => write!(f, "cffi"), BridgeModel::UniFfi => write!(f, "uniffi"), } } } /// Insert wasm launcher scripts as entrypoints and the wasmtime dependency fn bin_wasi_helper( artifacts_and_files: &[(&BuildArtifact, String)], mut metadata21: Metadata21, ) -> Result { eprintln!("âš ï¸ Warning: wasi support is experimental"); // escaped can contain [\w\d.], but i don't know how we'd handle dots correctly here if metadata21.get_distribution_escaped().contains('.') { bail!( "Can't build wasm wheel if there is a dot in the name ('{}')", metadata21.get_distribution_escaped() ) } if !metadata21.entry_points.is_empty() { bail!("You can't define entrypoints yourself for a binary project"); } let mut console_scripts = IndexMap::new(); for (_, bin_name) in artifacts_and_files { let base_name = bin_name .strip_suffix(".wasm") .context("No .wasm suffix in wasi binary")?; console_scripts.insert( base_name.to_string(), format!( "{}.{}:main", metadata21.get_distribution_escaped(), base_name.replace('-', "_") ), ); } metadata21 .entry_points .insert("console_scripts".to_string(), console_scripts); // Add our wasmtime default version if the user didn't provide one if !metadata21 .requires_dist .iter() .any(|requirement| requirement.name == "wasmtime") { // Having the wasmtime version hardcoded is not ideal, it's easy enough to overwrite metadata21 .requires_dist .push(Requirement::from_str("wasmtime>=11.0.0,<12.0.0").unwrap()); } Ok(metadata21) } /// Contains all the metadata required to build the crate #[derive(Clone)] pub struct BuildContext { /// The platform, i.e. os and pointer width pub target: Target, /// List of Cargo targets to compile pub compile_targets: Vec, /// Whether this project is pure rust or rust mixed with python pub project_layout: ProjectLayout, /// The path to pyproject.toml. Required for the source distribution pub pyproject_toml_path: PathBuf, /// Parsed pyproject.toml if any pub pyproject_toml: Option, /// Python Package Metadata 2.1 pub metadata21: Metadata21, /// The name of the crate pub crate_name: String, /// The name of the module can be distinct from the package name, mostly /// because package names normally contain minuses while module names /// have underscores. The package name is part of metadata21 pub module_name: String, /// The path to the Cargo.toml. Required for the cargo invocations pub manifest_path: PathBuf, /// Directory for all generated artifacts pub target_dir: PathBuf, /// The directory to store the built wheels in. Defaults to a new "wheels" /// directory in the project's target directory pub out: PathBuf, /// Build artifacts in release mode, with optimizations pub release: bool, /// Strip the library for minimum file size pub strip: bool, /// Skip checking the linked libraries for manylinux/musllinux compliance pub skip_auditwheel: bool, /// When compiling for manylinux, use zig as linker to ensure glibc version compliance #[cfg(feature = "zig")] pub zig: bool, /// Whether to use the the manylinux/musllinux or use the native linux tag (off) pub platform_tag: Vec, /// The available python interpreter pub interpreter: Vec, /// Cargo.toml as resolved by [cargo_metadata] pub cargo_metadata: Metadata, /// Whether to use universal2 or use the native macOS tag (off) pub universal2: bool, /// Build editable wheels pub editable: bool, /// Cargo build options pub cargo_options: CargoOptions, } /// The wheel file location and its Python version tag (e.g. `py3`). /// /// For bindings the version tag contains the Python interpreter version /// they bind against (e.g. `cp37`). pub type BuiltWheelMetadata = (PathBuf, String); impl BuildContext { /// Checks which kind of bindings we have (pyo3/rust-cypthon or cffi or bin) and calls the /// correct builder. pub fn build_wheels(&self) -> Result> { use itertools::Itertools; fs::create_dir_all(&self.out) .context("Failed to create the target directory for the wheels")?; let wheels = match self.bridge() { BridgeModel::Bin(None) => self.build_bin_wheel(None)?, BridgeModel::Bin(Some(..)) => self.build_bin_wheels(&self.interpreter)?, BridgeModel::Bindings(..) => self.build_binding_wheels(&self.interpreter)?, BridgeModel::BindingsAbi3(major, minor) => { let abi3_interps: Vec<_> = self .interpreter .iter() .filter(|interp| interp.has_stable_api()) .cloned() .collect(); let non_abi3_interps: Vec<_> = self .interpreter .iter() .filter(|interp| !interp.has_stable_api()) .cloned() .collect(); let mut built_wheels = Vec::new(); if !abi3_interps.is_empty() { built_wheels.extend(self.build_binding_wheel_abi3( &abi3_interps, *major, *minor, )?); } if !non_abi3_interps.is_empty() { let interp_names: HashSet<_> = non_abi3_interps .iter() .map(|interp| match interp.interpreter_kind { InterpreterKind::CPython | InterpreterKind::GraalPy => { interp.implementation_name.to_string() } InterpreterKind::PyPy => "PyPy".to_string(), }) .collect(); eprintln!( "âš ï¸ Warning: {} does not yet support abi3 so the build artifacts will be version-specific.", interp_names.iter().join(", ") ); built_wheels.extend(self.build_binding_wheels(&non_abi3_interps)?); } built_wheels } BridgeModel::Cffi => self.build_cffi_wheel()?, BridgeModel::UniFfi => self.build_uniffi_wheel()?, }; Ok(wheels) } /// Bridge model pub fn bridge(&self) -> &BridgeModel { // FIXME: currently we only allow multiple bin targets so bridges are all the same &self.compile_targets[0].bridge_model } /// Builds a source distribution and returns the same metadata as [BuildContext::build_wheels] pub fn build_source_distribution(&self) -> Result> { fs::create_dir_all(&self.out) .context("Failed to create the target directory for the source distribution")?; match self.pyproject_toml.as_ref() { Some(pyproject) => { let sdist_path = source_distribution(self, pyproject, self.excludes(Format::Sdist)?) .context("Failed to build source distribution")?; Ok(Some((sdist_path, "source".to_string()))) } None => Ok(None), } } fn auditwheel( &self, artifact: &BuildArtifact, platform_tag: &[PlatformTag], python_interpreter: Option<&PythonInterpreter>, ) -> Result<(Policy, Vec)> { if self.skip_auditwheel { return Ok((Policy::default(), Vec::new())); } if let Some(python_interpreter) = python_interpreter { if platform_tag.is_empty() && self.target.is_linux() && !python_interpreter.support_portable_wheels() { eprintln!( "ðŸ Skipping auditwheel because {python_interpreter} does not support manylinux/musllinux wheels" ); return Ok((Policy::default(), Vec::new())); } } let mut musllinux: Vec<_> = platform_tag .iter() .filter(|tag| tag.is_musllinux()) .copied() .collect(); musllinux.sort(); let mut others: Vec<_> = platform_tag .iter() .filter(|tag| !tag.is_musllinux()) .copied() .collect(); others.sort(); // only bin bindings allow linking to libpython, extension modules must not let allow_linking_libpython = self.bridge().is_bin(); if self.bridge().is_bin() && !musllinux.is_empty() { return get_policy_and_libs( artifact, Some(musllinux[0]), &self.target, allow_linking_libpython, ); } let tag = others.get(0).or_else(|| musllinux.get(0)).copied(); get_policy_and_libs(artifact, tag, &self.target, allow_linking_libpython) } /// Add library search paths in Cargo target directory rpath when building in editable mode fn add_rpath(&self, artifacts: &[&BuildArtifact]) -> Result<()> { if self.editable && self.target.is_linux() && !artifacts.is_empty() { for artifact in artifacts { if artifact.linked_paths.is_empty() { continue; } let old_rpaths = patchelf::get_rpath(&artifact.path)?; let mut new_rpaths = old_rpaths.clone(); for path in &artifact.linked_paths { if !old_rpaths.contains(path) { new_rpaths.push(path.to_string()); } } let new_rpath = new_rpaths.join(":"); if let Err(err) = patchelf::set_rpath(&artifact.path, &new_rpath) { eprintln!( "âš ï¸ Warning: Failed to set rpath for {}: {}", artifact.path.display(), err ); } } } Ok(()) } fn add_external_libs( &self, writer: &mut WheelWriter, artifacts: &[&BuildArtifact], ext_libs: &[Vec], ) -> Result<()> { if self.editable { return self.add_rpath(artifacts); } if ext_libs.iter().all(|libs| libs.is_empty()) { return Ok(()); } patchelf::verify_patchelf()?; // Put external libs to ${module_name}.libs directory // See https://github.com/pypa/auditwheel/issues/89 let mut libs_dir = self .project_layout .python_module .as_ref() .and_then(|py| py.file_name().map(|s| s.to_os_string())) .unwrap_or_else(|| self.module_name.clone().into()); libs_dir.push(".libs"); let libs_dir = PathBuf::from(libs_dir); writer.add_directory(&libs_dir)?; let temp_dir = tempfile::tempdir()?; let mut soname_map = HashMap::new(); let mut libs_copied = HashSet::new(); for lib in ext_libs.iter().flatten() { let lib_path = lib.realpath.clone().with_context(|| { format!( "Cannot repair wheel, because required library {} could not be located.", lib.path.display() ) })?; // Generate a new soname with a short hash let short_hash = &hash_file(&lib_path)?[..8]; let (file_stem, file_ext) = lib.name.split_once('.').unwrap(); let new_soname = if !file_stem.ends_with(&format!("-{short_hash}")) { format!("{file_stem}-{short_hash}.{file_ext}") } else { format!("{file_stem}.{file_ext}") }; // Copy the original lib to a tmpdir and modify some of its properties // for example soname and rpath let dest_path = temp_dir.path().join(&new_soname); fs::copy(&lib_path, &dest_path)?; libs_copied.insert(lib_path); // fs::copy copies permissions as well, and the original // file may have been read-only let mut perms = fs::metadata(&dest_path)?.permissions(); #[allow(clippy::permissions_set_readonly_false)] perms.set_readonly(false); fs::set_permissions(&dest_path, perms)?; patchelf::set_soname(&dest_path, &new_soname)?; if !lib.rpath.is_empty() || !lib.runpath.is_empty() { patchelf::set_rpath(&dest_path, &libs_dir)?; } soname_map.insert( lib.name.clone(), (new_soname.clone(), dest_path.clone(), lib.needed.clone()), ); } for (artifact, artifact_ext_libs) in artifacts.iter().zip(ext_libs) { let artifact_deps: HashSet<_> = artifact_ext_libs.iter().map(|lib| &lib.name).collect(); let replacements = soname_map .iter() .filter_map(|(k, v)| { if artifact_deps.contains(k) { Some((k, v.0.clone())) } else { None } }) .collect::>(); if !replacements.is_empty() { patchelf::replace_needed(&artifact.path, &replacements[..])?; } } // we grafted in a bunch of libraries and modified their sonames, but // they may have internal dependencies (DT_NEEDED) on one another, so // we need to update those records so each now knows about the new // name of the other. for (new_soname, path, needed) in soname_map.values() { let mut replacements = Vec::new(); for n in needed { if soname_map.contains_key(n) { replacements.push((n, soname_map[n].0.clone())); } } if !replacements.is_empty() { patchelf::replace_needed(path, &replacements[..])?; } writer.add_file_with_permissions(libs_dir.join(new_soname), path, 0o755)?; } eprintln!( "🖨 Copied external shared libraries to package {} directory:", libs_dir.display() ); for lib_path in libs_copied { eprintln!(" {}", lib_path.display()); } // Currently artifact .so file always resides at ${module_name}/${module_name}.so let artifact_dir = Path::new(&self.module_name); for artifact in artifacts { let mut new_rpaths = patchelf::get_rpath(&artifact.path)?; // TODO: clean existing rpath entries if it's not pointed to a location within the wheel // See https://github.com/pypa/auditwheel/blob/353c24250d66951d5ac7e60b97471a6da76c123f/src/auditwheel/repair.py#L160 let new_rpath = Path::new("$ORIGIN").join(relpath(&libs_dir, artifact_dir)); new_rpaths.push(new_rpath.to_str().unwrap().to_string()); let new_rpath = new_rpaths.join(":"); patchelf::set_rpath(&artifact.path, &new_rpath)?; } Ok(()) } fn add_pth(&self, writer: &mut WheelWriter) -> Result<()> { if self.editable { writer.add_pth(&self.project_layout, &self.metadata21)?; } Ok(()) } fn excludes(&self, format: Format) -> Result { let project_dir = match self.pyproject_toml_path.normalize() { Ok(pyproject_toml_path) => pyproject_toml_path.into_path_buf(), Err(_) => self.manifest_path.normalize()?.into_path_buf(), }; let mut excludes = OverrideBuilder::new(project_dir.parent().unwrap()); if let Some(pyproject) = self.pyproject_toml.as_ref() { if let Some(glob_patterns) = &pyproject.exclude() { for glob in glob_patterns .iter() .filter_map(|glob_pattern| glob_pattern.targets(format)) { excludes.add(glob)?; } } } // Ignore sdist output files so that we don't include them in the sdist if matches!(format, Format::Sdist) { let glob_pattern = format!( "{}{}{}-*.tar.gz", self.out.display(), std::path::MAIN_SEPARATOR, &self.metadata21.get_distribution_escaped(), ); excludes.add(&glob_pattern)?; } Ok(excludes.build()?) } /// Returns the platform part of the tag for the wheel name pub fn get_platform_tag(&self, platform_tags: &[PlatformTag]) -> Result { let target = &self.target; let tag = match (&target.target_os(), &target.target_arch()) { // Windows (Os::Windows, Arch::X86) => "win32".to_string(), (Os::Windows, Arch::X86_64) => "win_amd64".to_string(), (Os::Windows, Arch::Aarch64) => "win_arm64".to_string(), // Linux (Os::Linux, _) => { let arch = target.get_platform_arch()?; let mut platform_tags = platform_tags.to_vec(); platform_tags.sort(); let mut tags = vec![]; for platform_tag in platform_tags { tags.push(format!("{platform_tag}_{arch}")); for alias in platform_tag.aliases() { tags.push(format!("{alias}_{arch}")); } } tags.join(".") } // macOS (Os::Macos, Arch::X86_64) | (Os::Macos, Arch::Aarch64) => { let ((x86_64_major, x86_64_minor), (arm64_major, arm64_minor)) = macosx_deployment_target(env::var("MACOSX_DEPLOYMENT_TARGET").ok().as_deref(), self.universal2)?; let x86_64_tag = if let Some(deployment_target) = self.pyproject_toml.as_ref().and_then(|x| x.target_config("x86_64-apple-darwin")).and_then(|config| config.macos_deployment_target.as_ref()) { deployment_target.replace('.', "_") } else { format!("{x86_64_major}_{x86_64_minor}") }; let arm64_tag = if let Some(deployment_target) = self.pyproject_toml.as_ref().and_then(|x| x.target_config("aarch64-apple-darwin")).and_then(|config| config.macos_deployment_target.as_ref()) { deployment_target.replace('.', "_") } else { format!("{arm64_major}_{arm64_minor}") }; if self.universal2 { format!( "macosx_{x86_64_tag}_x86_64.macosx_{arm64_tag}_arm64.macosx_{x86_64_tag}_universal2" ) } else if target.target_arch() == Arch::Aarch64 { format!("macosx_{arm64_tag}_arm64") } else { format!("macosx_{x86_64_tag}_x86_64") } } // FreeBSD (Os::FreeBsd, _) // NetBSD | (Os::NetBsd, _) // OpenBSD | (Os::OpenBsd, _) => { let release = target.get_platform_release()?; format!( "{}_{}_{}", target.target_os().to_string().to_ascii_lowercase(), release, target.target_arch().machine(), ) } // DragonFly (Os::Dragonfly, Arch::X86_64) // Haiku | (Os::Haiku, Arch::X86_64) => { let release = target.get_platform_release()?; format!( "{}_{}_{}", target.target_os().to_string().to_ascii_lowercase(), release.to_ascii_lowercase(), "x86_64" ) } // Emscripten (Os::Emscripten, Arch::Wasm32) => { let release = emscripten_version()?.replace(['.', '-'], "_"); format!("emscripten_{release}_wasm32") } (Os::Wasi, Arch::Wasm32) => { "any".to_string() } // osname_release_machine fallback for any POSIX system (_, _) => { let info = PlatformInfo::new() .map_err(|e| anyhow!("Failed to fetch platform information: {e}"))?; let mut release = info.release().to_string_lossy().replace(['.', '-'], "_"); let mut machine = info.machine().to_string_lossy().replace([' ', '/'], "_"); let mut os = target.target_os().to_string().to_ascii_lowercase(); // See https://github.com/python/cpython/blob/46c8d915715aa2bd4d697482aa051fe974d440e1/Lib/sysconfig.py#L722-L730 if os.starts_with("sunos") { // Solaris / Illumos if let Some((major, other)) = release.split_once('_') { let major_ver: u64 = major.parse().context("illumos major version is not a number")?; if major_ver >= 5 { // SunOS 5 == Solaris 2 os = "solaris".to_string(); release = format!("{}_{}", major_ver - 3, other); machine = format!("{machine}_64bit"); } } } format!( "{os}_{release}_{machine}" ) } }; Ok(tag) } /// Returns the tags for the WHEEL file for cffi wheels pub fn get_py3_tags(&self, platform_tags: &[PlatformTag]) -> Result> { let tags = vec![format!( "py3-none-{}", self.get_platform_tag(platform_tags)? )]; Ok(tags) } /// Returns the tags for the platform without python version pub fn get_universal_tags( &self, platform_tags: &[PlatformTag], ) -> Result<(String, Vec)> { let tag = format!( "py3-none-{platform}", platform = self.get_platform_tag(platform_tags)? ); let tags = self.get_py3_tags(platform_tags)?; Ok((tag, tags)) } fn write_binding_wheel_abi3( &self, artifact: BuildArtifact, platform_tags: &[PlatformTag], ext_libs: Vec, major: u8, min_minor: u8, ) -> Result { let platform = self.get_platform_tag(platform_tags)?; let tag = format!("cp{major}{min_minor}-abi3-{platform}"); let mut writer = WheelWriter::new( &tag, &self.out, &self.metadata21, &[tag.clone()], self.excludes(Format::Wheel)?, )?; self.add_external_libs(&mut writer, &[&artifact], &[ext_libs])?; write_bindings_module( &mut writer, &self.project_layout, &artifact.path, self.interpreter.first(), true, &self.target, self.editable, self.pyproject_toml.as_ref(), ) .context("Failed to add the files to the wheel")?; self.add_pth(&mut writer)?; add_data(&mut writer, self.project_layout.data.as_deref())?; let wheel_path = writer.finish()?; Ok((wheel_path, format!("cp{major}{min_minor}"))) } /// For abi3 we only need to build a single wheel and we don't even need a python interpreter /// for it pub fn build_binding_wheel_abi3( &self, interpreters: &[PythonInterpreter], major: u8, min_minor: u8, ) -> Result> { let mut wheels = Vec::new(); // On windows, we have picked an interpreter to set the location of python.lib, // otherwise it's none let python_interpreter = interpreters.get(0); let artifact = self.compile_cdylib( python_interpreter, Some(&self.project_layout.extension_name), )?; let (policy, external_libs) = self.auditwheel(&artifact, &self.platform_tag, python_interpreter)?; let platform_tags = if self.platform_tag.is_empty() { vec![policy.platform_tag()] } else { self.platform_tag.clone() }; let (wheel_path, tag) = self.write_binding_wheel_abi3( artifact, &platform_tags, external_libs, major, min_minor, )?; eprintln!( "📦 Built wheel for abi3 Python ≥ {}.{} to {}", major, min_minor, wheel_path.display() ); wheels.push((wheel_path, tag)); Ok(wheels) } fn write_binding_wheel( &self, python_interpreter: &PythonInterpreter, artifact: BuildArtifact, platform_tags: &[PlatformTag], ext_libs: Vec, ) -> Result { let tag = python_interpreter.get_tag(self, platform_tags)?; let mut writer = WheelWriter::new( &tag, &self.out, &self.metadata21, &[tag.clone()], self.excludes(Format::Wheel)?, )?; self.add_external_libs(&mut writer, &[&artifact], &[ext_libs])?; write_bindings_module( &mut writer, &self.project_layout, &artifact.path, Some(python_interpreter), false, &self.target, self.editable, self.pyproject_toml.as_ref(), ) .context("Failed to add the files to the wheel")?; self.add_pth(&mut writer)?; add_data(&mut writer, self.project_layout.data.as_deref())?; let wheel_path = writer.finish()?; Ok(( wheel_path, format!("cp{}{}", python_interpreter.major, python_interpreter.minor), )) } /// Builds wheels for a Cargo project for all given python versions. /// Return type is the same as [BuildContext::build_wheels()] /// /// Defaults to 3.{5, 6, 7, 8, 9} if no python versions are given /// and silently ignores all non-existent python versions. /// /// Runs [auditwheel_rs()] if not deactivated pub fn build_binding_wheels( &self, interpreters: &[PythonInterpreter], ) -> Result> { let mut wheels = Vec::new(); for python_interpreter in interpreters { let artifact = self.compile_cdylib( Some(python_interpreter), Some(&self.project_layout.extension_name), )?; let (policy, external_libs) = self.auditwheel(&artifact, &self.platform_tag, Some(python_interpreter))?; let platform_tags = if self.platform_tag.is_empty() { vec![policy.platform_tag()] } else { self.platform_tag.clone() }; let (wheel_path, tag) = self.write_binding_wheel( python_interpreter, artifact, &platform_tags, external_libs, )?; eprintln!( "📦 Built wheel for {} {}.{}{} to {}", python_interpreter.interpreter_kind, python_interpreter.major, python_interpreter.minor, python_interpreter.abiflags, wheel_path.display() ); wheels.push((wheel_path, tag)); } Ok(wheels) } /// Runs cargo build, extracts the cdylib from the output and returns the path to it /// /// The module name is used to warn about missing a `PyInit_` function for /// bindings modules. pub fn compile_cdylib( &self, python_interpreter: Option<&PythonInterpreter>, extension_name: Option<&str>, ) -> Result { let artifacts = compile(self, python_interpreter, &self.compile_targets) .context("Failed to build a native library through cargo")?; let error_msg = "Cargo didn't build a cdylib. Did you miss crate-type = [\"cdylib\"] \ in the lib section of your Cargo.toml?"; let artifacts = artifacts.get(0).context(error_msg)?; let mut artifact = artifacts .get("cdylib") .cloned() .ok_or_else(|| anyhow!(error_msg,))?; if let Some(extension_name) = extension_name { // globin has an issue parsing MIPS64 ELF, see https://github.com/m4b/goblin/issues/274 // But don't fail the build just because we can't emit a warning let _ = warn_missing_py_init(&artifact.path, extension_name); } if self.editable || self.skip_auditwheel { return Ok(artifact); } // auditwheel repair will edit the file, so we need to copy it to avoid errors in reruns let artifact_path = &artifact.path; let maturin_build = artifact_path.parent().unwrap().join("maturin"); fs::create_dir_all(&maturin_build)?; let new_artifact_path = maturin_build.join(artifact_path.file_name().unwrap()); fs::copy(artifact_path, &new_artifact_path)?; artifact.path = new_artifact_path; Ok(artifact) } fn write_cffi_wheel( &self, artifact: BuildArtifact, platform_tags: &[PlatformTag], ext_libs: Vec, ) -> Result { let (tag, tags) = self.get_universal_tags(platform_tags)?; let mut writer = WheelWriter::new( &tag, &self.out, &self.metadata21, &tags, self.excludes(Format::Wheel)?, )?; self.add_external_libs(&mut writer, &[&artifact], &[ext_libs])?; write_cffi_module( &mut writer, &self.project_layout, self.manifest_path.parent().unwrap(), &self.target_dir, &self.module_name, &artifact.path, &self.interpreter[0].executable, self.editable, self.pyproject_toml.as_ref(), )?; self.add_pth(&mut writer)?; add_data(&mut writer, self.project_layout.data.as_deref())?; let wheel_path = writer.finish()?; Ok((wheel_path, "py3".to_string())) } /// Builds a wheel with cffi bindings pub fn build_cffi_wheel(&self) -> Result> { let mut wheels = Vec::new(); let artifact = self.compile_cdylib(None, None)?; let (policy, external_libs) = self.auditwheel(&artifact, &self.platform_tag, None)?; let platform_tags = if self.platform_tag.is_empty() { vec![policy.platform_tag()] } else { self.platform_tag.clone() }; let (wheel_path, tag) = self.write_cffi_wheel(artifact, &platform_tags, external_libs)?; // Warn if cffi isn't specified in the requirements if !self .metadata21 .requires_dist .iter() .any(|requirement| requirement.name == "cffi") { eprintln!( "âš ï¸ Warning: missing cffi package dependency, please add it to pyproject.toml. \ e.g: `dependencies = [\"cffi\"]`. This will become an error." ); } eprintln!("📦 Built wheel to {}", wheel_path.display()); wheels.push((wheel_path, tag)); Ok(wheels) } fn write_uniffi_wheel( &self, artifact: BuildArtifact, platform_tags: &[PlatformTag], ext_libs: Vec, ) -> Result { let (tag, tags) = self.get_universal_tags(platform_tags)?; let mut writer = WheelWriter::new( &tag, &self.out, &self.metadata21, &tags, self.excludes(Format::Wheel)?, )?; self.add_external_libs(&mut writer, &[&artifact], &[ext_libs])?; write_uniffi_module( &mut writer, &self.project_layout, self.manifest_path.parent().unwrap(), &self.target_dir, &self.module_name, &artifact.path, self.target.target_os(), self.editable, self.pyproject_toml.as_ref(), )?; self.add_pth(&mut writer)?; add_data(&mut writer, self.project_layout.data.as_deref())?; let wheel_path = writer.finish()?; Ok((wheel_path, "py3".to_string())) } /// Builds a wheel with uniffi bindings pub fn build_uniffi_wheel(&self) -> Result> { let mut wheels = Vec::new(); let artifact = self.compile_cdylib(None, None)?; let (policy, external_libs) = self.auditwheel(&artifact, &self.platform_tag, None)?; let platform_tags = if self.platform_tag.is_empty() { vec![policy.platform_tag()] } else { self.platform_tag.clone() }; let (wheel_path, tag) = self.write_uniffi_wheel(artifact, &platform_tags, external_libs)?; eprintln!("📦 Built wheel to {}", wheel_path.display()); wheels.push((wheel_path, tag)); Ok(wheels) } fn write_bin_wheel( &self, python_interpreter: Option<&PythonInterpreter>, artifacts: &[BuildArtifact], platform_tags: &[PlatformTag], ext_libs: &[Vec], ) -> Result { let (tag, tags) = match (self.bridge(), python_interpreter) { (BridgeModel::Bin(None), _) => self.get_universal_tags(platform_tags)?, (BridgeModel::Bin(Some(..)), Some(python_interpreter)) => { let tag = python_interpreter.get_tag(self, platform_tags)?; (tag.clone(), vec![tag]) } _ => unreachable!(), }; if !self.metadata21.scripts.is_empty() { bail!("Defining scripts and working with a binary doesn't mix well"); } let mut artifacts_and_files = Vec::new(); for artifact in artifacts { // I wouldn't know of any case where this would be the wrong (and neither do // I know a better alternative) let bin_name = artifact .path .file_name() .context("Couldn't get the filename from the binary produced by cargo")? .to_str() .context("binary produced by cargo has non-utf8 filename")? .to_string(); // From https://packaging.python.org/en/latest/specifications/entry-points/ // > The name may contain any characters except =, but it cannot start or end with any // > whitespace character, or start with [. For new entry points, it is recommended to // > use only letters, numbers, underscores, dots and dashes (regex [\w.-]+). // All of these rules are already enforced by cargo: // https://github.com/rust-lang/cargo/blob/58a961314437258065e23cb6316dfc121d96fb71/src/cargo/util/restricted_names.rs#L39-L84 // i.e. we don't need to do any bin name validation here anymore artifacts_and_files.push((artifact, bin_name)) } let metadata21 = if self.target.is_wasi() { bin_wasi_helper(&artifacts_and_files, self.metadata21.clone())? } else { self.metadata21.clone() }; let mut writer = WheelWriter::new( &tag, &self.out, &metadata21, &tags, self.excludes(Format::Wheel)?, )?; if self.project_layout.python_module.is_some() && self.target.is_wasi() { // TODO: Can we have python code and the wasm launchers coexisting // without clashes? bail!("Sorry, adding python code to a wasm binary is currently not supported") } if !self.editable { write_python_part( &mut writer, &self.project_layout, self.pyproject_toml.as_ref(), ) .context("Failed to add the python module to the package")?; } let mut artifacts_ref = Vec::with_capacity(artifacts.len()); for (artifact, bin_name) in &artifacts_and_files { artifacts_ref.push(*artifact); write_bin(&mut writer, &artifact.path, &self.metadata21, bin_name)?; if self.target.is_wasi() { write_wasm_launcher(&mut writer, &self.metadata21, bin_name)?; } } self.add_external_libs(&mut writer, &artifacts_ref, ext_libs)?; self.add_pth(&mut writer)?; add_data(&mut writer, self.project_layout.data.as_deref())?; let wheel_path = writer.finish()?; Ok((wheel_path, "py3".to_string())) } /// Builds a wheel that contains a binary /// /// Runs [auditwheel_rs()] if not deactivated pub fn build_bin_wheel( &self, python_interpreter: Option<&PythonInterpreter>, ) -> Result> { let mut wheels = Vec::new(); let artifacts = compile(self, python_interpreter, &self.compile_targets) .context("Failed to build a native library through cargo")?; if artifacts.is_empty() { bail!("Cargo didn't build a binary") } let mut policies = Vec::with_capacity(artifacts.len()); let mut ext_libs = Vec::new(); let mut artifact_paths = Vec::with_capacity(artifacts.len()); for artifact in artifacts { let artifact = artifact .get("bin") .cloned() .ok_or_else(|| anyhow!("Cargo didn't build a binary"))?; let (policy, external_libs) = self.auditwheel(&artifact, &self.platform_tag, None)?; policies.push(policy); ext_libs.push(external_libs); artifact_paths.push(artifact); } let policy = policies.iter().min_by_key(|p| p.priority).unwrap(); let platform_tags = if self.platform_tag.is_empty() { vec![policy.platform_tag()] } else { self.platform_tag.clone() }; let (wheel_path, tag) = self.write_bin_wheel( python_interpreter, &artifact_paths, &platform_tags, &ext_libs, )?; eprintln!("📦 Built wheel to {}", wheel_path.display()); wheels.push((wheel_path, tag)); Ok(wheels) } /// Builds a wheel that contains a binary /// /// Runs [auditwheel_rs()] if not deactivated pub fn build_bin_wheels( &self, interpreters: &[PythonInterpreter], ) -> Result> { let mut wheels = Vec::new(); for python_interpreter in interpreters { wheels.extend(self.build_bin_wheel(Some(python_interpreter))?); } Ok(wheels) } } /// Calculate the sha256 of a file pub fn hash_file(path: impl AsRef) -> Result { let mut file = fs::File::open(path.as_ref())?; let mut hasher = Sha256::new(); io::copy(&mut file, &mut hasher)?; let hex = format!("{:x}", hasher.finalize()); Ok(hex) } /// Get the default macOS deployment target version fn macosx_deployment_target( deploy_target: Option<&str>, universal2: bool, ) -> Result<((u16, u16), (u16, u16))> { let x86_64_default_rustc = rustc_macosx_target_version("x86_64-apple-darwin"); let x86_64_default = if universal2 && x86_64_default_rustc.1 < 9 { (10, 9) } else { x86_64_default_rustc }; let arm64_default = rustc_macosx_target_version("aarch64-apple-darwin"); let mut x86_64_ver = x86_64_default; let mut arm64_ver = arm64_default; if let Some(deploy_target) = deploy_target { let err_ctx = "MACOSX_DEPLOYMENT_TARGET is invalid"; let mut parts = deploy_target.split('.'); let major = parts.next().context(err_ctx)?; let major: u16 = major.parse().context(err_ctx)?; let minor = parts.next().context(err_ctx)?; let minor: u16 = minor.parse().context(err_ctx)?; if (major, minor) > x86_64_default { x86_64_ver = (major, minor); } if (major, minor) > arm64_default { arm64_ver = (major, minor); } } Ok(( python_macosx_target_version(x86_64_ver), python_macosx_target_version(arm64_ver), )) } #[inline] fn python_macosx_target_version(version: (u16, u16)) -> (u16, u16) { let (major, minor) = version; if major >= 11 { // pip only supports (major, 0) for macOS 11+ (major, 0) } else { (major, minor) } } pub(crate) fn rustc_macosx_target_version(target: &str) -> (u16, u16) { use std::process::{Command, Stdio}; use target_lexicon::OperatingSystem; // On rustc 1.71.0+ we can use `rustc --print deployment-target` if let Ok(output) = Command::new("rustc") .stderr(Stdio::piped()) .stdout(Stdio::piped()) .env_remove("MACOSX_DEPLOYMENT_TARGET") .args(["--target", target]) .args(["--print", "deployment-target"]) .output() { if output.status.success() { let target_version = std::str::from_utf8(&output.stdout) .unwrap() .split('=') .last() .and_then(|v| v.trim().split_once('.')); if let Some((major, minor)) = target_version { let major: u16 = major.parse().unwrap(); let minor: u16 = minor.parse().unwrap(); return (major, minor); } } } let fallback_version = if target == "aarch64-apple-darwin" { (11, 0) } else { (10, 7) }; let rustc_target_version = || -> Result<(u16, u16)> { let cmd = Command::new("rustc") .arg("-Z") .arg("unstable-options") .arg("--print") .arg("target-spec-json") .arg("--target") .arg(target) .env("RUSTC_BOOTSTRAP", "1") .env_remove("MACOSX_DEPLOYMENT_TARGET") .output() .context("Failed to run rustc to get the target spec")?; let stdout = String::from_utf8(cmd.stdout).context("rustc output is not valid utf-8")?; let spec: serde_json::Value = serde_json::from_str(&stdout).context("rustc output is not valid json")?; let llvm_target = spec .as_object() .context("rustc output is not a json object")? .get("llvm-target") .context("rustc output does not contain llvm-target")? .as_str() .context("llvm-target is not a string")?; let triple = llvm_target.parse::(); let (major, minor) = match triple.map(|t| t.operating_system) { Ok(OperatingSystem::MacOSX { major, minor, .. }) => (major, minor), _ => fallback_version, }; Ok((major, minor)) }; rustc_target_version().unwrap_or(fallback_version) } /// Emscripten version fn emscripten_version() -> Result { let os_version = env::var("MATURIN_EMSCRIPTEN_VERSION"); let release = match os_version { Ok(os_ver) => os_ver, Err(_) => emcc_version()?, }; Ok(release) } fn emcc_version() -> Result { use regex::bytes::Regex; use std::process::Command; let emcc = Command::new("emcc") .arg("--version") .output() .context("Failed to run emcc to get the version")?; let pattern = Regex::new(r"^emcc .+? (\d+\.\d+\.\d+).*").unwrap(); let caps = pattern .captures(&emcc.stdout) .context("Failed to parse emcc version")?; let version = caps.get(1).context("Failed to parse emcc version")?; Ok(String::from_utf8(version.as_bytes().to_vec())?) } #[cfg(test)] mod test { use super::macosx_deployment_target; use pretty_assertions::assert_eq; #[test] fn test_macosx_deployment_target() { assert_eq!( macosx_deployment_target(None, false).unwrap(), ((10, 7), (11, 0)) ); assert_eq!( macosx_deployment_target(None, true).unwrap(), ((10, 9), (11, 0)) ); assert_eq!( macosx_deployment_target(Some("10.6"), false).unwrap(), ((10, 7), (11, 0)) ); assert_eq!( macosx_deployment_target(Some("10.6"), true).unwrap(), ((10, 9), (11, 0)) ); assert_eq!( macosx_deployment_target(Some("10.9"), false).unwrap(), ((10, 9), (11, 0)) ); assert_eq!( macosx_deployment_target(Some("11.0.0"), false).unwrap(), ((11, 0), (11, 0)) ); assert_eq!( macosx_deployment_target(Some("11.1"), false).unwrap(), ((11, 0), (11, 0)) ); } } python-maturin_1.3.2.orig/src/build_options.rs0000644000000000000000000016150514525221045016501 0ustar00use crate::auditwheel::PlatformTag; use crate::build_context::BridgeModel; use crate::compile::{CompileTarget, LIB_CRATE_TYPES}; use crate::cross_compile::{find_sysconfigdata, parse_sysconfigdata}; use crate::project_layout::ProjectResolver; use crate::pyproject_toml::ToolMaturin; use crate::python_interpreter::{InterpreterConfig, InterpreterKind, MINIMUM_PYTHON_MINOR}; use crate::{BuildContext, PythonInterpreter, Target}; use anyhow::{bail, format_err, Context, Result}; use cargo_metadata::{Metadata, Node}; use pep440_rs::VersionSpecifiers; use serde::{Deserialize, Serialize}; use std::collections::{HashMap, HashSet}; use std::env; use std::ops::{Deref, DerefMut}; use std::path::PathBuf; use tracing::debug; // This is used for BridgeModel::Bindings("pyo3-ffi") and BridgeModel::Bindings("pyo3"). // These should be treated almost identically but must be correctly identified // as one or the other in logs. pyo3-ffi is ordered first because it is newer // and more restrictive. const PYO3_BINDING_CRATES: [&str; 2] = ["pyo3-ffi", "pyo3"]; fn pyo3_minimum_python_minor_version(major_version: u64, minor_version: u64) -> Option { if (major_version, minor_version) >= (0, 16) { Some(7) } else { None } } fn pyo3_ffi_minimum_python_minor_version(major_version: u64, minor_version: u64) -> Option { if (major_version, minor_version) >= (0, 16) { pyo3_minimum_python_minor_version(major_version, minor_version) } else { None } } /// Cargo options for the build process #[derive(Debug, Default, Serialize, Deserialize, clap::Parser, Clone, Eq, PartialEq)] #[serde(default, rename_all = "kebab-case")] pub struct CargoOptions { /// Do not print cargo log messages #[arg(short = 'q', long)] pub quiet: bool, /// Number of parallel jobs, defaults to # of CPUs #[arg(short = 'j', long, value_name = "N")] pub jobs: Option, /// Build artifacts with the specified Cargo profile #[arg(long, value_name = "PROFILE-NAME")] pub profile: Option, /// Space or comma separated list of features to activate #[arg(short = 'F', long, action = clap::ArgAction::Append)] pub features: Vec, /// Activate all available features #[arg(long)] pub all_features: bool, /// Do not activate the `default` feature #[arg(long)] pub no_default_features: bool, /// Build for the target triple #[arg(long, value_name = "TRIPLE", env = "CARGO_BUILD_TARGET")] pub target: Option, /// Directory for all generated artifacts #[arg(long, value_name = "DIRECTORY")] pub target_dir: Option, /// Path to Cargo.toml #[arg(short = 'm', long, value_name = "PATH")] pub manifest_path: Option, /// Ignore `rust-version` specification in packages #[arg(long)] pub ignore_rust_version: bool, /// Use verbose output (-vv very verbose/build.rs output) #[arg(short = 'v', long, action = clap::ArgAction::Count)] pub verbose: u8, /// Coloring: auto, always, never #[arg(long, value_name = "WHEN")] pub color: Option, /// Require Cargo.lock and cache are up to date #[arg(long)] pub frozen: bool, /// Require Cargo.lock is up to date #[arg(long)] pub locked: bool, /// Run without accessing the network #[arg(long)] pub offline: bool, /// Override a configuration value (unstable) #[arg(long, value_name = "KEY=VALUE", action = clap::ArgAction::Append)] pub config: Vec, /// Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details #[arg(short = 'Z', value_name = "FLAG", action = clap::ArgAction::Append)] pub unstable_flags: Vec, /// Timing output formats (unstable) (comma separated): html, json #[arg( long, value_name = "FMTS", value_delimiter = ',', require_equals = true )] pub timings: Option>, /// Outputs a future incompatibility report at the end of the build (unstable) #[arg(long)] pub future_incompat_report: bool, /// Rustc flags #[arg(num_args = 0.., trailing_var_arg = true)] pub args: Vec, } /// High level API for building wheels from a crate which is also used for the CLI #[derive(Debug, Default, Serialize, Deserialize, clap::Parser, Clone, Eq, PartialEq)] #[serde(default)] pub struct BuildOptions { /// Control the platform tag on linux. /// /// Options are `manylinux` tags (for example `manylinux2014`/`manylinux_2_24`) /// or `musllinux` tags (for example `musllinux_1_2`) /// and `linux` for the native linux tag. /// /// Note that `manylinux1` and `manylinux2010` is unsupported by the rust compiler. /// Wheels with the native `linux` tag will be rejected by pypi, /// unless they are separately validated by `auditwheel`. /// /// The default is the lowest compatible `manylinux` tag, or plain `linux` if nothing matched /// /// This option is ignored on all non-linux platforms #[arg( id = "compatibility", long = "compatibility", alias = "manylinux", num_args = 0.., action = clap::ArgAction::Append )] pub platform_tag: Vec, /// The python versions to build wheels for, given as the executables of /// interpreters such as `python3.9` or `/usr/bin/python3.8`. #[arg(short, long, num_args = 0.., action = clap::ArgAction::Append)] pub interpreter: Vec, /// Find interpreters from the host machine #[arg(short = 'f', long, conflicts_with = "interpreter")] pub find_interpreter: bool, /// Which kind of bindings to use. #[arg(short, long, value_parser = ["pyo3", "pyo3-ffi", "rust-cpython", "cffi", "uniffi", "bin"])] pub bindings: Option, /// The directory to store the built wheels in. Defaults to a new "wheels" /// directory in the project's target directory #[arg(short, long)] pub out: Option, /// Don't check for manylinux compliance #[arg(long = "skip-auditwheel")] pub skip_auditwheel: bool, /// For manylinux targets, use zig to ensure compliance for the chosen manylinux version /// /// Default to manylinux2014/manylinux_2_17 if you do not specify an `--compatibility` /// /// Make sure you installed zig with `pip install maturin[zig]` #[cfg(feature = "zig")] #[arg(long)] pub zig: bool, /// Cargo build options #[command(flatten)] pub cargo: CargoOptions, } impl Deref for BuildOptions { type Target = CargoOptions; fn deref(&self) -> &Self::Target { &self.cargo } } impl DerefMut for BuildOptions { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.cargo } } impl BuildOptions { /// Finds the appropriate amount for python versions for each [BridgeModel]. fn find_interpreters( &self, bridge: &BridgeModel, interpreter: &[PathBuf], target: &Target, requires_python: Option<&VersionSpecifiers>, generate_import_lib: bool, ) -> Result> { match bridge { BridgeModel::Bindings(binding_name, _) | BridgeModel::Bin(Some((binding_name, _))) => { let mut interpreters = Vec::new(); if let Some(config_file) = env::var_os("PYO3_CONFIG_FILE") { if !binding_name.starts_with("pyo3") { bail!("Only pyo3 bindings can be configured with PYO3_CONFIG_FILE"); } let interpreter_config = InterpreterConfig::from_pyo3_config(config_file.as_ref(), target) .context("Invalid PYO3_CONFIG_FILE")?; interpreters.push(PythonInterpreter::from_config(interpreter_config)); } else if binding_name.starts_with("pyo3") && target.cross_compiling() { if let Some(cross_lib_dir) = env::var_os("PYO3_CROSS_LIB_DIR") { let host_interpreters = find_interpreter_in_host(bridge, interpreter, target, requires_python)?; let host_python = &host_interpreters[0]; eprintln!("ðŸ Using host {host_python} for cross-compiling preparation"); // pyo3 env::set_var("PYO3_PYTHON", &host_python.executable); // rust-cpython, and legacy pyo3 versions env::set_var("PYTHON_SYS_EXECUTABLE", &host_python.executable); let sysconfig_path = find_sysconfigdata(cross_lib_dir.as_ref(), target)?; env::set_var( "MATURIN_PYTHON_SYSCONFIGDATA_DIR", sysconfig_path.parent().unwrap(), ); let sysconfig_data = parse_sysconfigdata(host_python, sysconfig_path)?; let major = sysconfig_data .get("version_major") .context("version_major is not defined")? .parse::() .context("Could not parse value of version_major")?; let minor = sysconfig_data .get("version_minor") .context("version_minor is not defined")? .parse::() .context("Could not parse value of version_minor")?; let abiflags = sysconfig_data .get("ABIFLAGS") .map(ToString::to_string) .unwrap_or_default(); let ext_suffix = sysconfig_data .get("EXT_SUFFIX") .context("syconfig didn't define an `EXT_SUFFIX` ಠ_ಠ")?; let soabi = sysconfig_data.get("SOABI"); let interpreter_kind = soabi .and_then(|tag| { if tag.starts_with("pypy") { Some(InterpreterKind::PyPy) } else if tag.starts_with("cpython") { Some(InterpreterKind::CPython) } else if tag.starts_with("graalpy") { Some(InterpreterKind::GraalPy) } else { None } }) .context("unsupported Python interpreter")?; interpreters.push(PythonInterpreter { config: InterpreterConfig { major, minor, interpreter_kind, abiflags, ext_suffix: ext_suffix.to_string(), pointer_width: None, }, executable: PathBuf::new(), platform: None, runnable: false, implementation_name: interpreter_kind.to_string().to_ascii_lowercase(), soabi: soabi.cloned(), }); } else { if interpreter.is_empty() && !self.find_interpreter { bail!("Couldn't find any python interpreters. Please specify at least one with -i"); } for interp in interpreter { // If `-i` looks like a file path, check if it's a valid interpreter if interp.components().count() > 1 && PythonInterpreter::check_executable(interp, target, bridge)? .is_none() { bail!("{} is not a valid python interpreter", interp.display()); } } interpreters = find_interpreter_in_sysconfig(interpreter, target, requires_python)?; } } else if binding_name.starts_with("pyo3") { // Only pyo3/pyo3-ffi bindings supports bundled sysconfig interpreters interpreters = find_interpreter(bridge, interpreter, target, requires_python)?; } else { interpreters = find_interpreter_in_host(bridge, interpreter, target, requires_python)?; } let interpreters_str = interpreters .iter() .map(ToString::to_string) .collect::>() .join(", "); eprintln!("ðŸ Found {interpreters_str}"); Ok(interpreters) } BridgeModel::Cffi => { let interpreter = find_single_python_interpreter(bridge, interpreter, target, "cffi")?; eprintln!("ðŸ Using {interpreter} to generate the cffi bindings"); Ok(vec![interpreter]) } BridgeModel::Bin(None) | BridgeModel::UniFfi => Ok(vec![]), BridgeModel::BindingsAbi3(major, minor) => { if target.is_windows() { // Ideally, we wouldn't want to use any python interpreter without abi3 at all. // Unfortunately, on windows we need one to figure out base_prefix for a linker // argument. let interpreters = find_interpreter_in_host(bridge, interpreter, target, requires_python) .unwrap_or_default(); if env::var_os("PYO3_CROSS_LIB_DIR").is_some() { // PYO3_CROSS_LIB_DIR should point to the `libs` directory inside base_prefix // when cross compiling, so we fake a python interpreter matching it eprintln!("âš ï¸ Cross-compiling is poorly supported"); Ok(vec![PythonInterpreter { config: InterpreterConfig { major: *major as usize, minor: *minor as usize, interpreter_kind: InterpreterKind::CPython, abiflags: "".to_string(), ext_suffix: ".pyd".to_string(), pointer_width: None, }, executable: PathBuf::new(), platform: None, runnable: false, implementation_name: "cpython".to_string(), soabi: None, }]) } else if let Some(config_file) = env::var_os("PYO3_CONFIG_FILE") { let interpreter_config = InterpreterConfig::from_pyo3_config(config_file.as_ref(), target) .context("Invalid PYO3_CONFIG_FILE")?; Ok(vec![PythonInterpreter::from_config(interpreter_config)]) } else if let Some(interp) = interpreters.get(0) { eprintln!("ðŸ Using {interp} to generate to link bindings (With abi3, an interpreter is only required on windows)"); Ok(interpreters) } else if generate_import_lib { eprintln!("ðŸ Not using a specific python interpreter (Automatically generating windows import library)"); // fake a python interpreter Ok(vec![PythonInterpreter { config: InterpreterConfig { major: *major as usize, minor: *minor as usize, interpreter_kind: InterpreterKind::CPython, abiflags: "".to_string(), ext_suffix: ".pyd".to_string(), pointer_width: None, }, executable: PathBuf::new(), platform: None, runnable: false, implementation_name: "cpython".to_string(), soabi: None, }]) } else { bail!("Failed to find a python interpreter"); } } else { let found_interpreters = find_interpreter_in_host(bridge, interpreter, target, requires_python) .or_else(|err| { let interps = find_interpreter_in_sysconfig( interpreter, target, requires_python, ) .unwrap_or_default(); if interps.is_empty() && !self.interpreter.is_empty() { // Print error when user supplied `--interpreter` option Err(err) } else { Ok(interps) } })?; eprintln!("ðŸ Not using a specific python interpreter"); if self.interpreter.is_empty() { // Fake one to make `BuildContext::build_wheels` happy for abi3 when no cpython/pypy found on host // The python interpreter config doesn't matter, as it's not used for anything Ok(vec![PythonInterpreter { config: InterpreterConfig { major: *major as usize, minor: *minor as usize, interpreter_kind: InterpreterKind::CPython, abiflags: "".to_string(), ext_suffix: "".to_string(), pointer_width: None, }, executable: PathBuf::new(), platform: None, runnable: false, implementation_name: "cpython".to_string(), soabi: None, }]) } else if target.cross_compiling() { let mut interps = Vec::with_capacity(found_interpreters.len()); let mut pypys = Vec::new(); for interp in found_interpreters { if interp.interpreter_kind.is_pypy() { pypys.push(PathBuf::from(format!( "pypy{}.{}", interp.major, interp.minor ))); } else { interps.push(interp); } } // cross compiling to PyPy with abi3 feature enabled, // we cannot use host pypy so switch to bundled sysconfig instead if !pypys.is_empty() { interps.extend(find_interpreter_in_sysconfig( &pypys, target, requires_python, )?) } if interps.is_empty() { bail!("Failed to find any python interpreter"); } Ok(interps) } else { if found_interpreters.is_empty() { bail!("Failed to find any python interpreter"); } Ok(found_interpreters) } } } } } /// Tries to fill the missing metadata for a BuildContext by querying cargo and python pub fn into_build_context( self, release: bool, strip: bool, editable: bool, ) -> Result { let ProjectResolver { project_layout, cargo_toml_path, cargo_toml, pyproject_toml_path, pyproject_toml, module_name, metadata21, mut cargo_options, cargo_metadata, mut pyproject_toml_maturin_options, } = ProjectResolver::resolve(self.manifest_path.clone(), self.cargo.clone())?; let pyproject = pyproject_toml.as_ref(); let bridge = find_bridge( &cargo_metadata, self.bindings.as_deref().or_else(|| { pyproject.and_then(|x| { if x.bindings().is_some() { pyproject_toml_maturin_options.push("bindings"); } x.bindings() }) }), )?; if !bridge.is_bin() && project_layout.extension_name.contains('-') { bail!( "The module name must not contain a minus `-` \ (Make sure you have set an appropriate [lib] name or \ [tool.maturin] module-name in your pyproject.toml)" ); } let mut target_triple = self.target.clone(); let mut universal2 = target_triple.as_deref() == Some("universal2-apple-darwin"); // Also try to determine universal2 from ARCHFLAGS environment variable if target_triple.is_none() { if let Ok(arch_flags) = env::var("ARCHFLAGS") { let arches: HashSet<&str> = arch_flags .split("-arch") .filter_map(|x| { let x = x.trim(); if x.is_empty() { None } else { Some(x) } }) .collect(); match (arches.contains("x86_64"), arches.contains("arm64")) { (true, true) => universal2 = true, (true, false) => target_triple = Some("x86_64-apple-darwin".to_string()), (false, true) => target_triple = Some("aarch64-apple-darwin".to_string()), (false, false) => {} } }; } if universal2 { target_triple = None; } let target = Target::from_target_triple(target_triple)?; let wheel_dir = match self.out { Some(ref dir) => dir.clone(), None => PathBuf::from(&cargo_metadata.target_directory).join("wheels"), }; let generate_import_lib = is_generating_import_lib(&cargo_metadata)?; let interpreter = if self.find_interpreter { // Auto-detect interpreters self.find_interpreters( &bridge, &[], &target, metadata21.requires_python.as_ref(), generate_import_lib, )? } else { // User given list of interpreters let interpreter = if self.interpreter.is_empty() && !target.cross_compiling() { if cfg!(test) { match env::var_os("MATURIN_TEST_PYTHON") { Some(python) => vec![python.into()], None => vec![target.get_python()], } } else { vec![target.get_python()] } } else { // XXX: False positive clippy warning #[allow(clippy::redundant_clone)] self.interpreter.clone() }; self.find_interpreters(&bridge, &interpreter, &target, None, generate_import_lib)? }; if cargo_options.args.is_empty() { // if not supplied on command line, try pyproject.toml let tool_maturin = pyproject.and_then(|p| p.maturin()); if let Some(args) = tool_maturin.and_then(|x| x.rustc_args.as_ref()) { cargo_options.args.extend(args.iter().cloned()); pyproject_toml_maturin_options.push("rustc-args"); } } let strip = pyproject.map(|x| x.strip()).unwrap_or_default() || strip; let skip_auditwheel = pyproject.map(|x| x.skip_auditwheel()).unwrap_or_default() || self.skip_auditwheel; let platform_tags = if self.platform_tag.is_empty() { #[cfg(feature = "zig")] let use_zig = self.zig; #[cfg(not(feature = "zig"))] let use_zig = false; let compatibility = pyproject .and_then(|x| { if x.compatibility().is_some() { pyproject_toml_maturin_options.push("compatibility"); } x.compatibility() }) .or(if use_zig { if target.is_musl_libc() { // Zig bundles musl 1.2 Some(PlatformTag::Musllinux { x: 1, y: 2 }) } else { // With zig we can compile to any glibc version that we want, so we pick the lowest // one supported by the rust compiler Some(target.get_minimum_manylinux_tag()) } } else { // Defaults to musllinux_1_2 for musl target if it's not bin bindings if target.is_musl_libc() && !bridge.is_bin() { Some(PlatformTag::Musllinux { x: 1, y: 2 }) } else { None } }); if let Some(platform_tag) = compatibility { vec![platform_tag] } else { Vec::new() } } else { self.platform_tag }; for platform_tag in &platform_tags { if !platform_tag.is_supported() { eprintln!("âš ï¸ Warning: {platform_tag} is unsupported by the Rust compiler."); } else if platform_tag.is_musllinux() && !target.is_musl_libc() { eprintln!("âš ï¸ Warning: {target} is not compatible with {platform_tag}."); } } validate_bridge_type(&bridge, &target, &platform_tags)?; // linux tag can not be mixed with manylinux and musllinux tags if platform_tags.len() > 1 && platform_tags.iter().any(|tag| !tag.is_portable()) { bail!("Cannot mix linux and manylinux/musllinux platform tags",); } if !pyproject_toml_maturin_options.is_empty() { eprintln!( "📡 Using build options {} from pyproject.toml", pyproject_toml_maturin_options.join(", ") ); } let target_dir = self .cargo .target_dir .clone() .unwrap_or_else(|| cargo_metadata.target_directory.clone().into_std_path_buf()); let config_targets = pyproject.and_then(|x| x.targets()); let compile_targets = filter_cargo_targets(&cargo_metadata, bridge, config_targets.as_deref())?; if compile_targets.is_empty() { bail!("No Cargo targets to build, please check your bindings configuration in pyproject.toml."); } let crate_name = cargo_toml.package.name; Ok(BuildContext { target, compile_targets, project_layout, pyproject_toml_path, pyproject_toml, metadata21, crate_name, module_name, manifest_path: cargo_toml_path, target_dir, out: wheel_dir, release, strip, skip_auditwheel, #[cfg(feature = "zig")] zig: self.zig, platform_tag: platform_tags, interpreter, cargo_metadata, universal2, editable, cargo_options, }) } } /// Checks for bridge/platform type edge cases fn validate_bridge_type( bridge: &BridgeModel, target: &Target, platform_tags: &[PlatformTag], ) -> Result<()> { match bridge { BridgeModel::Bin(None) => { // Only support two different kind of platform tags when compiling to musl target without any binding crates if platform_tags.iter().any(|tag| tag.is_musllinux()) && !target.is_musl_libc() { bail!( "Cannot mix musllinux and manylinux platform tags when compiling to {}", target.target_triple() ); } #[allow(clippy::comparison_chain)] if platform_tags.len() > 2 { bail!( "Expected only one or two platform tags but found {}", platform_tags.len() ); } else if platform_tags.len() == 2 { // The two platform tags can't be the same kind let tag_types = platform_tags .iter() .map(|tag| tag.is_musllinux()) .collect::>(); if tag_types.len() == 1 { bail!( "Expected only one platform tag but found {}", platform_tags.len() ); } } } _ => { if platform_tags.len() > 1 { bail!( "Expected only one platform tag but found {}", platform_tags.len() ); } } } Ok(()) } fn filter_cargo_targets( cargo_metadata: &Metadata, bridge: BridgeModel, config_targets: Option<&[crate::pyproject_toml::CargoTarget]>, ) -> Result> { let root_pkg = cargo_metadata.root_package().unwrap(); let resolved_features = cargo_metadata .resolve .as_ref() .and_then(|resolve| resolve.nodes.iter().find(|node| node.id == root_pkg.id)) .map(|node| node.features.clone()) .unwrap_or_default(); let mut targets: Vec<_> = root_pkg .targets .iter() .filter(|target| match bridge { BridgeModel::Bin(_) => { let is_bin = target.is_bin(); if target.required_features.is_empty() { is_bin } else { // Check all required features are enabled for this bin target is_bin && target .required_features .iter() .all(|f| resolved_features.contains(f)) } } _ => target.kind.contains(&"cdylib".to_string()), }) .map(|target| CompileTarget { target: target.clone(), bridge_model: bridge.clone(), }) .collect(); if targets.is_empty() && !bridge.is_bin() { // No `crate-type = ["cdylib"]` in `Cargo.toml` // Let's try compile one of the target with `--crate-type cdylib` let lib_target = root_pkg.targets.iter().find(|target| { target .kind .iter() .any(|k| LIB_CRATE_TYPES.contains(&k.as_str())) }); if let Some(target) = lib_target { targets.push(CompileTarget { target: target.clone(), bridge_model: bridge, }); } } // Filter targets by config_targets if let Some(config_targets) = config_targets { targets.retain(|CompileTarget { target, .. }| { config_targets.iter().any(|config_target| { let name_eq = config_target.name == target.name; match &config_target.kind { Some(kind) => name_eq && target.kind.contains(kind), None => name_eq, } }) }); if targets.is_empty() { bail!( "No Cargo targets matched by `package.metadata.maturin.targets`, please check your `Cargo.toml`" ); } else { let target_names = targets .iter() .map(|CompileTarget { target, .. }| target.name.as_str()) .collect::>(); eprintln!( "🎯 Found {} Cargo targets in `Cargo.toml`: {}", targets.len(), target_names.join(", ") ); } } Ok(targets) } /// pyo3 supports building abi3 wheels if the unstable-api feature is not selected fn has_abi3(cargo_metadata: &Metadata) -> Result> { let resolve = cargo_metadata .resolve .as_ref() .context("Expected cargo to return metadata with resolve")?; for &lib in PYO3_BINDING_CRATES.iter() { let pyo3_packages = resolve .nodes .iter() .filter(|package| cargo_metadata[&package.id].name.as_str() == lib) .collect::>(); match pyo3_packages.as_slice() { [pyo3_crate] => { // Find the minimal abi3 python version. If there is none, abi3 hasn't been selected // This parser abi3-py{major}{minor} and returns the minimal (major, minor) tuple let abi3_selected = pyo3_crate.features.iter().any(|x| x == "abi3"); let min_abi3_version = pyo3_crate .features .iter() .filter(|x| x.starts_with("abi3-py") && x.len() >= "abi3-pyxx".len()) .map(|x| { Ok(( (x.as_bytes()[7] as char).to_string().parse::()?, x[8..].parse::()?, )) }) .collect::>>() .context(format!("Bogus {lib} cargo features"))? .into_iter() .min(); if abi3_selected && min_abi3_version.is_none() { bail!( "You have selected the `abi3` feature but not a minimum version (e.g. the `abi3-py36` feature). \ maturin needs a minimum version feature to build abi3 wheels." ) } return Ok(min_abi3_version); } _ => continue, } } Ok(None) } /// pyo3 0.16.4+ supports building abi3 wheels without a working Python interpreter for Windows /// when `generate-import-lib` feature is enabled fn is_generating_import_lib(cargo_metadata: &Metadata) -> Result { let resolve = cargo_metadata .resolve .as_ref() .context("Expected cargo to return metadata with resolve")?; for &lib in PYO3_BINDING_CRATES.iter().rev() { let pyo3_packages = resolve .nodes .iter() .filter(|package| cargo_metadata[&package.id].name.as_str() == lib) .collect::>(); match pyo3_packages.as_slice() { [pyo3_crate] => { let generate_import_lib = pyo3_crate .features .iter() .any(|x| x == "generate-import-lib" || x == "generate-abi3-import-lib"); return Ok(generate_import_lib); } _ => continue, } } Ok(false) } /// Tries to determine the bindings type from dependency fn find_bindings( deps: &HashMap<&str, &Node>, packages: &HashMap<&str, &cargo_metadata::Package>, ) -> Option<(String, usize)> { if deps.get("pyo3").is_some() { let ver = &packages["pyo3"].version; let minor = pyo3_minimum_python_minor_version(ver.major, ver.minor).unwrap_or(MINIMUM_PYTHON_MINOR); Some(("pyo3".to_string(), minor)) } else if deps.get("pyo3-ffi").is_some() { let ver = &packages["pyo3-ffi"].version; let minor = pyo3_ffi_minimum_python_minor_version(ver.major, ver.minor) .unwrap_or(MINIMUM_PYTHON_MINOR); Some(("pyo3-ffi".to_string(), minor)) } else if deps.contains_key("cpython") { Some(("rust-cpython".to_string(), MINIMUM_PYTHON_MINOR)) } else if deps.contains_key("uniffi") { Some(("uniffi".to_string(), MINIMUM_PYTHON_MINOR)) } else { None } } /// Tries to determine the [BridgeModel] for the target crate pub fn find_bridge(cargo_metadata: &Metadata, bridge: Option<&str>) -> Result { let resolve = cargo_metadata .resolve .as_ref() .ok_or_else(|| format_err!("Expected to get a dependency graph from cargo"))?; let deps: HashMap<&str, &Node> = resolve .nodes .iter() .map(|node| (cargo_metadata[&node.id].name.as_ref(), node)) .collect(); let packages: HashMap<&str, &cargo_metadata::Package> = cargo_metadata .packages .iter() .filter_map(|pkg| { let name = &pkg.name; if name == "pyo3" || name == "pyo3-ffi" || name == "cpython" || name == "uniffi" { Some((name.as_ref(), pkg)) } else { None } }) .collect(); let root_package = cargo_metadata .root_package() .context("Expected cargo to return metadata with root_package")?; let targets: Vec<_> = root_package .targets .iter() .filter(|target| { target.kind.iter().any(|kind| { kind != "example" && kind != "test" && kind != "bench" && kind != "custom-build" }) }) .flat_map(|target| target.crate_types.iter()) .map(String::as_str) .collect(); let bridge = if let Some(bindings) = bridge { if bindings == "cffi" { BridgeModel::Cffi } else if bindings == "uniffi" { BridgeModel::UniFfi } else if bindings == "bin" { // uniffi bindings don't support bin let bindings = find_bindings(&deps, &packages).filter(|(bindings, _)| bindings != "uniffi"); BridgeModel::Bin(bindings) } else { if !deps.contains_key(bindings) { bail!( "The bindings crate {} was not found in the dependencies list", bindings ); } BridgeModel::Bindings(bindings.to_string(), MINIMUM_PYTHON_MINOR) } } else if let Some((bindings, minor)) = find_bindings(&deps, &packages) { if !targets.contains(&"cdylib") && targets.contains(&"bin") { if bindings == "uniffi" { // uniffi bindings don't support bin BridgeModel::Bin(None) } else { BridgeModel::Bin(Some((bindings, minor))) } } else if bindings == "uniffi" { BridgeModel::UniFfi } else { BridgeModel::Bindings(bindings, minor) } } else if targets.contains(&"cdylib") { BridgeModel::Cffi } else if targets.contains(&"bin") { BridgeModel::Bin(find_bindings(&deps, &packages)) } else { bail!("Couldn't detect the binding type; Please specify them with --bindings/-b") }; if !(bridge.is_bindings("pyo3") || bridge.is_bindings("pyo3-ffi")) { eprintln!("🔗 Found {bridge} bindings"); return Ok(bridge); } for &lib in PYO3_BINDING_CRATES.iter() { if !bridge.is_bin() && bridge.is_bindings(lib) { let pyo3_node = deps[lib]; if !pyo3_node.features.contains(&"extension-module".to_string()) { let version = cargo_metadata[&pyo3_node.id].version.to_string(); eprintln!( "âš ï¸ Warning: You're building a library without activating {lib}'s \ `extension-module` feature. \ See https://pyo3.rs/v{version}/building_and_distribution.html#linking" ); } return if let Some((major, minor)) = has_abi3(cargo_metadata)? { eprintln!("🔗 Found {lib} bindings with abi3 support for Python ≥ {major}.{minor}"); Ok(BridgeModel::BindingsAbi3(major, minor)) } else { eprintln!("🔗 Found {lib} bindings"); Ok(bridge) }; } } Ok(bridge) } /// Shared between cffi and pyo3-abi3 fn find_single_python_interpreter( bridge: &BridgeModel, interpreter: &[PathBuf], target: &Target, bridge_name: &str, ) -> Result { let err_message = "Failed to find a python interpreter"; let executable = if interpreter.is_empty() { target.get_python() } else if interpreter.len() == 1 { interpreter[0].clone() } else { bail!( "You can only specify one python interpreter for {}", bridge_name ); }; let interpreter = PythonInterpreter::check_executable(executable, target, bridge) .context(format_err!(err_message))? .ok_or_else(|| format_err!(err_message))?; Ok(interpreter) } /// Find python interpreters in host machine first, /// fallback to bundled sysconfig if not found in host machine fn find_interpreter( bridge: &BridgeModel, interpreter: &[PathBuf], target: &Target, requires_python: Option<&VersionSpecifiers>, ) -> Result> { let mut found_interpreters = Vec::new(); if !interpreter.is_empty() { let mut missing = Vec::new(); for interp in interpreter { match PythonInterpreter::check_executable(interp.clone(), target, bridge) { Ok(Some(interp)) => found_interpreters.push(interp), _ => missing.push(interp.clone()), } } if !missing.is_empty() { let sysconfig_interps = find_interpreter_in_sysconfig(&missing, target, requires_python)?; found_interpreters.extend(sysconfig_interps); } } else { found_interpreters = PythonInterpreter::find_all(target, bridge, requires_python) .context("Finding python interpreters failed")?; }; if found_interpreters.is_empty() { if interpreter.is_empty() { if let Some(requires_python) = requires_python { bail!("Couldn't find any python interpreters with version {}. Please specify at least one with -i", requires_python); } else { bail!("Couldn't find any python interpreters. Please specify at least one with -i"); } } else { let interps_str = interpreter .iter() .map(|path| format!("'{}'", path.display())) .collect::>() .join(", "); bail!( "Couldn't find any python interpreters from {}.", interps_str ); } } Ok(found_interpreters) } /// Find python interpreters in the host machine fn find_interpreter_in_host( bridge: &BridgeModel, interpreter: &[PathBuf], target: &Target, requires_python: Option<&VersionSpecifiers>, ) -> Result> { let interpreters = if !interpreter.is_empty() { PythonInterpreter::check_executables(interpreter, target, bridge)? } else { PythonInterpreter::find_all(target, bridge, requires_python) .context("Finding python interpreters failed")? }; if interpreters.is_empty() { if let Some(requires_python) = requires_python { bail!("Couldn't find any python interpreters with {}. Please specify at least one with -i", requires_python); } else { bail!("Couldn't find any python interpreters. Please specify at least one with -i"); } } Ok(interpreters) } /// Find python interpreters in the bundled sysconfig fn find_interpreter_in_sysconfig( interpreter: &[PathBuf], target: &Target, requires_python: Option<&VersionSpecifiers>, ) -> Result> { if interpreter.is_empty() { return Ok(PythonInterpreter::find_by_target(target, requires_python)); } let mut interpreters = Vec::new(); for interp in interpreter { let python = interp.display().to_string(); let (python_impl, python_ver) = if let Some(ver) = python.strip_prefix("pypy") { (InterpreterKind::PyPy, ver.strip_prefix('-').unwrap_or(ver)) } else if let Some(ver) = python.strip_prefix("graalpy") { ( InterpreterKind::GraalPy, ver.strip_prefix('-').unwrap_or(ver), ) } else if let Some(ver) = python.strip_prefix("python") { ( InterpreterKind::CPython, ver.strip_prefix('-').unwrap_or(ver), ) } else if python .chars() .next() .map(|c| c.is_ascii_digit()) .unwrap_or(false) { // Eg: -i 3.9 without interpreter kind, assume it's CPython (InterpreterKind::CPython, &*python) } else { // if interpreter not known if std::path::Path::new(&python).is_file() { bail!("Python interpreter should be a kind of interpreter (e.g. 'python3.8' or 'pypy3.9') when cross-compiling, got path to interpreter: {}", python); } else { bail!("Unsupported Python interpreter for cross-compilation: {}; supported interpreters are pypy, graalpy, and python (cpython)", python); } }; if python_ver.is_empty() { continue; } let (ver_major, ver_minor) = python_ver .split_once('.') .context("Invalid python interpreter version")?; let ver_major = ver_major.parse::().with_context(|| { format!("Invalid python interpreter major version '{ver_major}', expect a digit") })?; let ver_minor = ver_minor.parse::().with_context(|| { format!("Invalid python interpreter minor version '{ver_minor}', expect a digit") })?; let sysconfig = InterpreterConfig::lookup_one(target, python_impl, (ver_major, ver_minor)) .with_context(|| { format!("Failed to find a {python_impl} {ver_major}.{ver_minor} interpreter in known sysconfig") })?; debug!( "Found {} {}.{} in bundled sysconfig", sysconfig.interpreter_kind, sysconfig.major, sysconfig.minor, ); interpreters.push(PythonInterpreter::from_config(sysconfig.clone())); } Ok(interpreters) } /// We need to pass the global flags to cargo metadata /// (https://github.com/PyO3/maturin/issues/211 and https://github.com/PyO3/maturin/issues/472), /// but we can't pass all the extra args, as e.g. `--target` isn't supported, so this tries to /// extract the arguments for cargo metadata /// /// There are flags (without value) and options (with value). The options value be passed /// in the same string as its name or in the next one. For this naive parsing logic, we /// assume that the value is in the next argument if the argument string equals the name, /// otherwise it's in the same argument and the next argument is unrelated. pub(crate) fn extract_cargo_metadata_args(cargo_options: &CargoOptions) -> Result> { let mut cargo_metadata_extra_args = vec![]; if cargo_options.frozen { cargo_metadata_extra_args.push("--frozen".to_string()); } if cargo_options.locked { cargo_metadata_extra_args.push("--locked".to_string()); } if cargo_options.offline { cargo_metadata_extra_args.push("--offline".to_string()); } for feature in &cargo_options.features { cargo_metadata_extra_args.push("--features".to_string()); cargo_metadata_extra_args.push(feature.clone()); } if cargo_options.all_features { cargo_metadata_extra_args.push("--all-features".to_string()); } if cargo_options.no_default_features { cargo_metadata_extra_args.push("--no-default-features".to_string()); } for opt in &cargo_options.unstable_flags { cargo_metadata_extra_args.push("-Z".to_string()); cargo_metadata_extra_args.push(opt.clone()); } Ok(cargo_metadata_extra_args) } impl From for cargo_options::Rustc { fn from(cargo: CargoOptions) -> Self { cargo_options::Rustc { common: cargo_options::CommonOptions { quiet: cargo.quiet, jobs: cargo.jobs, profile: cargo.profile, features: cargo.features, all_features: cargo.all_features, no_default_features: cargo.no_default_features, target: match cargo.target { Some(target) => vec![target], None => Vec::new(), }, target_dir: cargo.target_dir, verbose: cargo.verbose, color: cargo.color, frozen: cargo.frozen, locked: cargo.locked, offline: cargo.offline, config: cargo.config, unstable_flags: cargo.unstable_flags, timings: cargo.timings, ..Default::default() }, manifest_path: cargo.manifest_path, ignore_rust_version: cargo.ignore_rust_version, future_incompat_report: cargo.future_incompat_report, args: cargo.args, ..Default::default() } } } impl CargoOptions { /// Merge options from pyproject.toml pub fn merge_with_pyproject_toml(&mut self, tool_maturin: ToolMaturin) -> Vec<&'static str> { let mut args_from_pyproject = Vec::new(); if self.manifest_path.is_none() && tool_maturin.manifest_path.is_some() { self.manifest_path = tool_maturin.manifest_path.clone(); args_from_pyproject.push("manifest-path"); } if self.profile.is_none() && tool_maturin.profile.is_some() { self.profile = tool_maturin.profile.clone(); args_from_pyproject.push("profile"); } if let Some(features) = tool_maturin.features { if self.features.is_empty() { self.features = features; args_from_pyproject.push("features"); } } if let Some(all_features) = tool_maturin.all_features { if !self.all_features { self.all_features = all_features; args_from_pyproject.push("all-features"); } } if let Some(no_default_features) = tool_maturin.no_default_features { if !self.no_default_features { self.no_default_features = no_default_features; args_from_pyproject.push("no-default-features"); } } if let Some(frozen) = tool_maturin.frozen { if !self.frozen { self.frozen = frozen; args_from_pyproject.push("frozen"); } } if let Some(locked) = tool_maturin.locked { if !self.locked { self.locked = locked; args_from_pyproject.push("locked"); } } if let Some(config) = tool_maturin.config { if self.config.is_empty() { self.config = config; args_from_pyproject.push("config"); } } if let Some(unstable_flags) = tool_maturin.unstable_flags { if self.unstable_flags.is_empty() { self.unstable_flags = unstable_flags; args_from_pyproject.push("unstable-flags"); } } args_from_pyproject } } #[cfg(test)] mod test { use cargo_metadata::MetadataCommand; use pretty_assertions::assert_eq; use std::path::Path; use super::*; #[test] fn test_find_bridge_pyo3() { let pyo3_mixed = MetadataCommand::new() .manifest_path(&Path::new("test-crates/pyo3-mixed").join("Cargo.toml")) .exec() .unwrap(); assert!(matches!( find_bridge(&pyo3_mixed, None), Ok(BridgeModel::Bindings(..)) )); assert!(matches!( find_bridge(&pyo3_mixed, Some("pyo3")), Ok(BridgeModel::Bindings(..)) )); assert!(find_bridge(&pyo3_mixed, Some("rust-cpython")).is_err()); } #[test] fn test_find_bridge_pyo3_abi3() { let pyo3_pure = MetadataCommand::new() .manifest_path(&Path::new("test-crates/pyo3-pure").join("Cargo.toml")) .exec() .unwrap(); assert!(matches!( find_bridge(&pyo3_pure, None), Ok(BridgeModel::BindingsAbi3(3, 7)) )); assert!(matches!( find_bridge(&pyo3_pure, Some("pyo3")), Ok(BridgeModel::BindingsAbi3(3, 7)) )); assert!(find_bridge(&pyo3_pure, Some("rust-cpython")).is_err()); } #[test] fn test_find_bridge_pyo3_feature() { let pyo3_pure = MetadataCommand::new() .manifest_path(&Path::new("test-crates/pyo3-feature").join("Cargo.toml")) .exec() .unwrap(); assert!(find_bridge(&pyo3_pure, None).is_err()); let pyo3_pure = MetadataCommand::new() .manifest_path(&Path::new("test-crates/pyo3-feature").join("Cargo.toml")) .other_options(vec!["--features=pyo3".to_string()]) .exec() .unwrap(); assert!(matches!( find_bridge(&pyo3_pure, None).unwrap(), BridgeModel::Bindings(..) )); } #[test] fn test_find_bridge_cffi() { let cffi_pure = MetadataCommand::new() .manifest_path(&Path::new("test-crates/cffi-pure").join("Cargo.toml")) .exec() .unwrap(); assert_eq!( find_bridge(&cffi_pure, Some("cffi")).unwrap(), BridgeModel::Cffi ); assert_eq!(find_bridge(&cffi_pure, None).unwrap(), BridgeModel::Cffi); assert!(find_bridge(&cffi_pure, Some("rust-cpython")).is_err()); assert!(find_bridge(&cffi_pure, Some("pyo3")).is_err()); } #[test] fn test_find_bridge_bin() { let hello_world = MetadataCommand::new() .manifest_path(&Path::new("test-crates/hello-world").join("Cargo.toml")) .exec() .unwrap(); assert_eq!( find_bridge(&hello_world, Some("bin")).unwrap(), BridgeModel::Bin(None) ); assert_eq!( find_bridge(&hello_world, None).unwrap(), BridgeModel::Bin(None) ); assert!(find_bridge(&hello_world, Some("rust-cpython")).is_err()); assert!(find_bridge(&hello_world, Some("pyo3")).is_err()); let pyo3_bin = MetadataCommand::new() .manifest_path(&Path::new("test-crates/pyo3-bin").join("Cargo.toml")) .exec() .unwrap(); assert!(matches!( find_bridge(&pyo3_bin, Some("bin")).unwrap(), BridgeModel::Bin(Some((..))) )); assert!(matches!( find_bridge(&pyo3_bin, None).unwrap(), BridgeModel::Bin(Some(..)) )); } #[test] fn test_old_extra_feature_args() { let cargo_extra_args = CargoOptions { no_default_features: true, features: vec!["a".to_string(), "c".to_string()], target: Some("x86_64-unknown-linux-musl".to_string()), ..Default::default() }; let cargo_metadata_extra_args = extract_cargo_metadata_args(&cargo_extra_args).unwrap(); assert_eq!( cargo_metadata_extra_args, vec![ "--features", "a", "--features", "c", "--no-default-features", ] ); } #[test] fn test_extract_cargo_metadata_args() { let args = CargoOptions { locked: true, features: vec!["my-feature".to_string(), "other-feature".to_string()], target: Some("x86_64-unknown-linux-musl".to_string()), unstable_flags: vec!["unstable-options".to_string()], ..Default::default() }; let expected = vec![ "--locked", "--features", "my-feature", "--features", "other-feature", "-Z", "unstable-options", ]; assert_eq!(extract_cargo_metadata_args(&args).unwrap(), expected); } } python-maturin_1.3.2.orig/src/cargo_toml.rs0000644000000000000000000001243714446366340015766 0ustar00use anyhow::{bail, Context, Result}; use fs_err as fs; use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::path::Path; /// The `[lib]` section of a Cargo.toml #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] pub(crate) struct CargoTomlLib { pub(crate) crate_type: Option>, pub(crate) name: Option, } /// The `[package]` section of a Cargo.toml #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] pub(crate) struct CargoTomlPackage { pub(crate) name: String, metadata: Option, } /// Extract of the Cargo.toml that can be reused for the python metadata /// /// See https://doc.rust-lang.org/cargo/reference/manifest.html for a specification #[derive(Serialize, Deserialize, Debug, Clone)] pub struct CargoToml { pub(crate) lib: Option, pub(crate) package: CargoTomlPackage, } impl CargoToml { /// Reads and parses the Cargo.toml at the given location pub fn from_path(manifest_file: impl AsRef) -> Result { let contents = fs::read_to_string(&manifest_file).context(format!( "Can't read Cargo.toml at {}", manifest_file.as_ref().display(), ))?; let cargo_toml = toml::from_str(&contents).context(format!( "Failed to parse Cargo.toml at {}", manifest_file.as_ref().display() ))?; Ok(cargo_toml) } /// Returns the value of `[project.metadata.maturin]` or an empty stub pub fn remaining_core_metadata(&self) -> RemainingCoreMetadata { match &self.package.metadata { Some(CargoTomlMetadata { maturin: Some(extra_metadata), }) => extra_metadata.clone(), _ => Default::default(), } } /// Check removed python metadata support in `Cargo.toml` pub fn check_removed_python_metadata(&self) -> Result<()> { let mut removed = Vec::new(); if let Some(CargoTomlMetadata { maturin: Some(extra_metadata), }) = &self.package.metadata { let removed_keys = [ "scripts", "classifiers", "classifier", "data", "maintainer", "maintainer-email", "requires-dist", "requires-python", "requires-external", "project-url", "provides-extra", "description-content-type", ]; for key in removed_keys { if extra_metadata.other.contains_key(key) { removed.push(key); } } } if !removed.is_empty() { bail!( "The following metadata fields in `package.metadata.maturin` section \ of Cargo.toml are removed since maturin 0.14.0: {}, \ please set them in pyproject.toml as PEP 621 specifies.", removed.join(", ") ); } Ok(()) } } #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] struct CargoTomlMetadata { maturin: Option, } /// The `[project.metadata.maturin]` with the maturin specific metadata #[derive(Serialize, Deserialize, Debug, Clone, Default)] #[serde(rename_all = "kebab-case")] pub struct RemainingCoreMetadata { #[serde(flatten)] pub other: HashMap, } #[cfg(test)] mod test { use super::*; use indoc::indoc; #[test] fn test_metadata_from_cargo_toml() { let cargo_toml = indoc!( r#" [package] authors = ["konstin "] name = "info-project" version = "0.1.0" description = "A test project" homepage = "https://example.org" keywords = ["ffi", "test"] [lib] crate-type = ["cdylib"] name = "pyo3_pure" [package.metadata.maturin.scripts] ph = "maturin:print_hello" [package.metadata.maturin] classifiers = ["Programming Language :: Python"] requires-dist = ["flask~=1.1.0", "toml==0.10.0"] [[package.metadata.maturin.targets]] name = "pyo3_pure" kind = "lib" bindings = "pyo3" "# ); let cargo_toml: Result = toml::from_str(cargo_toml); assert!(cargo_toml.is_ok()); } #[test] fn test_metadata_from_cargo_toml_without_authors() { let cargo_toml = indoc!( r#" [package] name = "info-project" version = "0.1.0" description = "A test project" homepage = "https://example.org" keywords = ["ffi", "test"] [lib] crate-type = ["cdylib"] name = "pyo3_pure" [package.metadata.maturin.scripts] ph = "maturin:print_hello" [package.metadata.maturin] classifiers = ["Programming Language :: Python"] requires-dist = ["flask~=1.1.0", "toml==0.10.0"] "# ); let cargo_toml: Result = toml::from_str(cargo_toml); assert!(cargo_toml.is_ok()); } } python-maturin_1.3.2.orig/src/ci.rs0000644000000000000000000010331114525221045014211 0ustar00use std::collections::BTreeSet; use std::fmt; use std::path::{Path, PathBuf}; use anyhow::Result; use clap::{ArgAction, Parser, ValueEnum}; use fs_err as fs; use crate::build_options::find_bridge; use crate::project_layout::ProjectResolver; use crate::{BridgeModel, CargoOptions}; /// CI providers #[derive(Debug, Clone, Copy, ValueEnum)] #[clap(rename_all = "lower")] pub enum Provider { /// GitHub GitHub, } /// Platform #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] #[clap(rename_all = "lower")] pub enum Platform { /// All All, /// Linux Linux, /// Windows Windows, /// macOS Macos, /// Emscripten Emscripten, } impl Platform { fn defaults() -> Vec { vec![Platform::Linux, Platform::Windows, Platform::Macos] } fn all() -> Vec { vec![ Platform::Linux, Platform::Windows, Platform::Macos, Platform::Emscripten, ] } } impl fmt::Display for Platform { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Platform::All => write!(f, "all"), Platform::Linux => write!(f, "linux"), Platform::Windows => write!(f, "windows"), Platform::Macos => write!(f, "macos"), Platform::Emscripten => write!(f, "emscripten"), } } } /// Generate CI configuration #[derive(Debug, Parser)] pub struct GenerateCI { /// CI provider #[arg(value_enum, value_name = "CI")] pub ci: Provider, /// Path to Cargo.toml #[arg(short = 'm', long, value_name = "PATH")] pub manifest_path: Option, /// Output path #[arg(short = 'o', long, value_name = "PATH", default_value = "-")] pub output: PathBuf, /// Platform support #[arg( id = "platform", long, action = ArgAction::Append, num_args = 1.., default_values_t = vec![Platform::Linux, Platform::Windows, Platform::Macos], )] pub platforms: Vec, /// Enable pytest #[arg(long)] pub pytest: bool, /// Use zig to do cross compilation #[arg(long)] pub zig: bool, } impl Default for GenerateCI { fn default() -> Self { Self { ci: Provider::GitHub, manifest_path: None, output: PathBuf::from("-"), platforms: vec![Platform::Linux, Platform::Windows, Platform::Macos], pytest: false, zig: false, } } } impl GenerateCI { /// Execute this command pub fn execute(&self) -> Result<()> { let conf = self.generate()?; self.print(&conf) } /// Generate CI configuration pub fn generate(&self) -> Result { let cargo_options = CargoOptions { manifest_path: self.manifest_path.clone(), ..Default::default() }; let ProjectResolver { cargo_metadata, pyproject_toml, project_layout, .. } = ProjectResolver::resolve(self.manifest_path.clone(), cargo_options)?; let pyproject = pyproject_toml.as_ref(); let bridge = find_bridge(&cargo_metadata, pyproject.and_then(|x| x.bindings()))?; let project_name = pyproject .and_then(|project| project.project_name()) .unwrap_or(&project_layout.extension_name); let sdist = pyproject_toml.is_some(); match self.ci { Provider::GitHub => self.generate_github(project_name, &bridge, sdist), } } pub(crate) fn generate_github( &self, project_name: &str, bridge_model: &BridgeModel, sdist: bool, ) -> Result { let is_abi3 = matches!(bridge_model, BridgeModel::BindingsAbi3(..)); let is_bin = bridge_model.is_bin(); let setup_python = self.pytest || matches!( bridge_model, BridgeModel::Bin(Some(_)) | BridgeModel::Bindings(..) | BridgeModel::BindingsAbi3(..) | BridgeModel::Cffi | BridgeModel::UniFfi ); let mut gen_cmd = std::env::args() .enumerate() .map(|(i, arg)| { if i == 0 { env!("CARGO_PKG_NAME").to_string() } else { arg } }) .collect::>() .join(" "); if gen_cmd.starts_with("maturin new") || gen_cmd.starts_with("maturin init") { gen_cmd = format!("{} generate-ci github", env!("CARGO_PKG_NAME")); } let mut conf = format!( "# This file is autogenerated by maturin v{version} # To update, run # # {gen_cmd} # name: CI on: push: branches: - main - master tags: - '*' pull_request: workflow_dispatch: permissions: contents: read jobs:\n", version = env!("CARGO_PKG_VERSION"), ); let mut needs = Vec::new(); let platforms: BTreeSet<_> = self .platforms .iter() .flat_map(|p| { if matches!(p, Platform::All) { if !bridge_model.is_bin() { Platform::all() } else { Platform::defaults() } } else { vec![*p] } }) .collect(); for platform in &platforms { if bridge_model.is_bin() && matches!(platform, Platform::Emscripten) { continue; } let plat_name = platform.to_string(); let os_name = match platform { Platform::Linux | Platform::Emscripten => "ubuntu", _ => &plat_name, }; needs.push(platform.to_string()); conf.push_str(&format!( " {plat_name}: runs-on: {os_name}-latest\n" )); // target matrix let targets = match platform { Platform::Linux => vec!["x86_64", "x86", "aarch64", "armv7", "s390x", "ppc64le"], Platform::Windows => vec!["x64", "x86"], Platform::Macos => vec!["x86_64", "aarch64"], _ => Vec::new(), }; if !targets.is_empty() { conf.push_str(&format!( " strategy: matrix: target: [{targets}]\n", targets = targets.join(", ") )); } // job steps conf.push_str( " steps: - uses: actions/checkout@v3\n", ); // install pyodide-build for emscripten if matches!(platform, Platform::Emscripten) { // install stable pyodide-build conf.push_str(" - run: pip install pyodide-build\n"); // get the current python version for the installed pyodide-build conf.push_str( " - name: Get Emscripten and Python version info shell: bash run: | echo EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version) >> $GITHUB_ENV echo PYTHON_VERSION=$(pyodide config get python_version | cut -d '.' -f 1-2) >> $GITHUB_ENV pip uninstall -y pyodide-build\n", ); conf.push_str( " - uses: mymindstorm/setup-emsdk@v12 with: version: ${{ env.EMSCRIPTEN_VERSION }} actions-cache-folder: emsdk-cache\n", ); conf.push_str( " - uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_VERSION }}\n", ); // install pyodide-build again in the right Python version conf.push_str(" - run: pip install pyodide-build\n"); } else { // setup python on demand if setup_python { conf.push_str( " - uses: actions/setup-python@v4 with: python-version: '3.10'\n", ); if matches!(platform, Platform::Windows) { conf.push_str(" architecture: ${{ matrix.target }}\n"); } } } // build wheels let mut maturin_args = if is_abi3 || (is_bin && !setup_python) { Vec::new() } else if matches!(platform, Platform::Emscripten) { vec!["-i".to_string(), "${{ env.PYTHON_VERSION }}".to_string()] } else { vec!["--find-interpreter".to_string()] }; if let Some(manifest_path) = self.manifest_path.as_ref() { if manifest_path != Path::new("Cargo.toml") { maturin_args.push("--manifest-path".to_string()); maturin_args.push(manifest_path.display().to_string()) } } if self.zig && matches!(platform, Platform::Linux) { maturin_args.push("--zig".to_string()); } let maturin_args = if maturin_args.is_empty() { String::new() } else { format!(" {}", maturin_args.join(" ")) }; let maturin_target = if matches!(platform, Platform::Emscripten) { "wasm32-unknown-emscripten" } else { "${{ matrix.target }}" }; conf.push_str(&format!( " - name: Build wheels uses: PyO3/maturin-action@v1 with: target: {maturin_target} args: --release --out dist{maturin_args} sccache: 'true' " )); if matches!(platform, Platform::Linux) { conf.push_str(" manylinux: auto\n"); } else if matches!(platform, Platform::Emscripten) { conf.push_str(" rust-toolchain: nightly\n"); } // upload wheels let artifact_name = if matches!(platform, Platform::Emscripten) { "wasm-wheels" } else { "wheels" }; conf.push_str(&format!( " - name: Upload wheels uses: actions/upload-artifact@v3 with: name: {artifact_name} path: dist " )); // pytest let mut chdir = String::new(); if let Some(manifest_path) = self.manifest_path.as_ref() { if manifest_path != Path::new("Cargo.toml") { let parent = manifest_path.parent().unwrap(); chdir = format!("cd {} && ", parent.display()); } } if self.pytest { if matches!(platform, Platform::Linux) { // Test on host for x86_64 conf.push_str(&format!( " - name: pytest if: ${{{{ startsWith(matrix.target, 'x86_64') }}}} shell: bash run: | set -e pip install {project_name} --find-links dist --force-reinstall pip install pytest {chdir}pytest " )); // Test on QEMU for other architectures conf.push_str(&format!( " - name: pytest if: ${{{{ !startsWith(matrix.target, 'x86') && matrix.target != 'ppc64' }}}} uses: uraimo/run-on-arch-action@v2.5.0 with: arch: ${{{{ matrix.target }}}} distro: ubuntu22.04 githubToken: ${{{{ github.token }}}} install: | apt-get update apt-get install -y --no-install-recommends python3 python3-pip pip3 install -U pip pytest run: | set -e pip3 install {project_name} --find-links dist --force-reinstall {chdir}pytest " )); } else if matches!(platform, Platform::Emscripten) { conf.push_str( " - uses: actions/setup-node@v3 with: node-version: '18' ", ); conf.push_str(&format!( " - name: pytest run: | set -e pyodide venv .venv source .venv/bin/activate pip install {project_name} --find-links dist --force-reinstall pip install pytest {chdir}python -m pytest " )); } else { conf.push_str(&format!( " - name: pytest if: ${{{{ !startsWith(matrix.target, 'aarch64') }}}} shell: bash run: | set -e pip install {project_name} --find-links dist --force-reinstall pip install pytest {chdir}pytest " )); } } conf.push('\n'); } // build sdist if sdist { needs.push("sdist".to_string()); let maturin_args = self .manifest_path .as_ref() .map(|manifest_path| { if manifest_path != Path::new("Cargo.toml") { format!(" --manifest-path {}", manifest_path.display()) } else { String::new() } }) .unwrap_or_default(); conf.push_str(&format!( r#" sdist: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --out dist{maturin_args} "# )); conf.push_str( " - name: Upload sdist uses: actions/upload-artifact@v3 with: name: wheels path: dist ", ); conf.push('\n'); } conf.push_str(&format!( r#" release: name: Release runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" needs: [{needs}] "#, needs = needs.join(", ") )); if platforms.contains(&Platform::Emscripten) { conf.push_str( r#" permissions: # Used to upload release artifacts contents: write "#, ); } conf.push_str( r#" steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing * "#, ); if platforms.contains(&Platform::Emscripten) { conf.push_str( " - uses: actions/download-artifact@v3 with: name: wasm-wheels path: wasm - name: Upload to GitHub Release uses: softprops/action-gh-release@v1 with: files: | wasm/*.whl prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') }} ", ); } Ok(conf) } fn print(&self, conf: &str) -> Result<()> { if self.output == Path::new("-") { print!("{conf}"); } else { fs::write(&self.output, conf)?; } Ok(()) } } #[cfg(test)] mod tests { use super::GenerateCI; use crate::BridgeModel; use expect_test::expect; #[test] fn test_generate_github() { let conf = GenerateCI::default() .generate_github( "example", &BridgeModel::Bindings("pyo3".to_string(), 7), true, ) .unwrap() .lines() .skip(5) .collect::>() .join("\n"); let expected = expect![[r#" name: CI on: push: branches: - main - master tags: - '*' pull_request: workflow_dispatch: permissions: contents: read jobs: linux: runs-on: ubuntu-latest strategy: matrix: target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter sccache: 'true' manylinux: auto - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist windows: runs-on: windows-latest strategy: matrix: target: [x64, x86] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' architecture: ${{ matrix.target }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist macos: runs-on: macos-latest strategy: matrix: target: [x86_64, aarch64] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist sdist: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --out dist - name: Upload sdist uses: actions/upload-artifact@v3 with: name: wheels path: dist release: name: Release runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" needs: [linux, windows, macos, sdist] steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing *"#]]; expected.assert_eq(&conf); } #[test] fn test_generate_github_abi3() { let conf = GenerateCI::default() .generate_github("example", &BridgeModel::BindingsAbi3(3, 7), false) .unwrap() .lines() .skip(5) .collect::>() .join("\n"); let expected = expect![[r#" name: CI on: push: branches: - main - master tags: - '*' pull_request: workflow_dispatch: permissions: contents: read jobs: linux: runs-on: ubuntu-latest strategy: matrix: target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist sccache: 'true' manylinux: auto - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist windows: runs-on: windows-latest strategy: matrix: target: [x64, x86] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' architecture: ${{ matrix.target }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist macos: runs-on: macos-latest strategy: matrix: target: [x86_64, aarch64] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist release: name: Release runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" needs: [linux, windows, macos] steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing *"#]]; expected.assert_eq(&conf); } #[test] fn test_generate_github_zig_pytest() { let gen = GenerateCI { zig: true, pytest: true, ..Default::default() }; let conf = gen .generate_github( "example", &BridgeModel::Bindings("pyo3".to_string(), 7), true, ) .unwrap() .lines() .skip(5) .collect::>() .join("\n"); let expected = expect![[r#" name: CI on: push: branches: - main - master tags: - '*' pull_request: workflow_dispatch: permissions: contents: read jobs: linux: runs-on: ubuntu-latest strategy: matrix: target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter --zig sccache: 'true' manylinux: auto - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist - name: pytest if: ${{ startsWith(matrix.target, 'x86_64') }} shell: bash run: | set -e pip install example --find-links dist --force-reinstall pip install pytest pytest - name: pytest if: ${{ !startsWith(matrix.target, 'x86') && matrix.target != 'ppc64' }} uses: uraimo/run-on-arch-action@v2.5.0 with: arch: ${{ matrix.target }} distro: ubuntu22.04 githubToken: ${{ github.token }} install: | apt-get update apt-get install -y --no-install-recommends python3 python3-pip pip3 install -U pip pytest run: | set -e pip3 install example --find-links dist --force-reinstall pytest windows: runs-on: windows-latest strategy: matrix: target: [x64, x86] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' architecture: ${{ matrix.target }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist - name: pytest if: ${{ !startsWith(matrix.target, 'aarch64') }} shell: bash run: | set -e pip install example --find-links dist --force-reinstall pip install pytest pytest macos: runs-on: macos-latest strategy: matrix: target: [x86_64, aarch64] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist - name: pytest if: ${{ !startsWith(matrix.target, 'aarch64') }} shell: bash run: | set -e pip install example --find-links dist --force-reinstall pip install pytest pytest sdist: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --out dist - name: Upload sdist uses: actions/upload-artifact@v3 with: name: wheels path: dist release: name: Release runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" needs: [linux, windows, macos, sdist] steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing *"#]]; expected.assert_eq(&conf); } #[test] fn test_generate_github_bin_no_binding() { let conf = GenerateCI::default() .generate_github("example", &BridgeModel::Bin(None), true) .unwrap() .lines() .skip(5) .collect::>() .join("\n"); let expected = expect![[r#" name: CI on: push: branches: - main - master tags: - '*' pull_request: workflow_dispatch: permissions: contents: read jobs: linux: runs-on: ubuntu-latest strategy: matrix: target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] steps: - uses: actions/checkout@v3 - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist sccache: 'true' manylinux: auto - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist windows: runs-on: windows-latest strategy: matrix: target: [x64, x86] steps: - uses: actions/checkout@v3 - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist macos: runs-on: macos-latest strategy: matrix: target: [x86_64, aarch64] steps: - uses: actions/checkout@v3 - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist sdist: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --out dist - name: Upload sdist uses: actions/upload-artifact@v3 with: name: wheels path: dist release: name: Release runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" needs: [linux, windows, macos, sdist] steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing *"#]]; expected.assert_eq(&conf); } } python-maturin_1.3.2.orig/src/compile.rs0000644000000000000000000005751014525221045015257 0ustar00use crate::build_context::BridgeModel; use crate::target::RUST_1_64_0; #[cfg(feature = "zig")] use crate::PlatformTag; use crate::{BuildContext, PythonInterpreter, Target}; use anyhow::{anyhow, bail, Context, Result}; use fat_macho::FatWriter; use fs_err::{self as fs, File}; use normpath::PathExt; use std::collections::HashMap; use std::env; use std::io::{BufReader, Read}; use std::path::{Path, PathBuf}; use std::process::Stdio; use std::str; use tracing::{debug, trace}; /// The first version of pyo3 that supports building Windows abi3 wheel /// without `PYO3_NO_PYTHON` environment variable const PYO3_ABI3_NO_PYTHON_VERSION: (u64, u64, u64) = (0, 16, 4); /// crate types excluding `bin`, `cdylib` and `proc-macro` pub(crate) const LIB_CRATE_TYPES: [&str; 4] = ["lib", "dylib", "rlib", "staticlib"]; /// A cargo target to build #[derive(Debug, Clone)] pub struct CompileTarget { /// The cargo target to build pub target: cargo_metadata::Target, /// The bridge model to use pub bridge_model: BridgeModel, } /// A cargo build artifact #[derive(Debug, Clone)] pub struct BuildArtifact { /// Path to the build artifact pub path: PathBuf, /// Array of paths to include in the library search path, as indicated by /// the `cargo:rustc-link-search` instruction. pub linked_paths: Vec, } /// Builds the rust crate into a native module (i.e. an .so or .dll) for a /// specific python version. Returns a mapping from crate type (e.g. cdylib) /// to artifact location. pub fn compile( context: &BuildContext, python_interpreter: Option<&PythonInterpreter>, targets: &[CompileTarget], ) -> Result>> { if context.universal2 { compile_universal2(context, python_interpreter, targets) } else { compile_targets(context, python_interpreter, targets) } } /// Build an universal2 wheel for macos which contains both an x86 and an aarch64 binary fn compile_universal2( context: &BuildContext, python_interpreter: Option<&PythonInterpreter>, targets: &[CompileTarget], ) -> Result>> { let mut aarch64_context = context.clone(); aarch64_context.target = Target::from_target_triple(Some("aarch64-apple-darwin".to_string()))?; let aarch64_artifacts = compile_targets(&aarch64_context, python_interpreter, targets) .context("Failed to build a aarch64 library through cargo")?; let mut x86_64_context = context.clone(); x86_64_context.target = Target::from_target_triple(Some("x86_64-apple-darwin".to_string()))?; let x86_64_artifacts = compile_targets(&x86_64_context, python_interpreter, targets) .context("Failed to build a x86_64 library through cargo")?; let mut universal_artifacts = Vec::with_capacity(targets.len()); for (bridge_model, (aarch64_artifact, x86_64_artifact)) in targets .iter() .map(|target| &target.bridge_model) .zip(aarch64_artifacts.iter().zip(&x86_64_artifacts)) { let build_type = if bridge_model.is_bin() { "bin" } else { "cdylib" }; let aarch64_artifact = aarch64_artifact.get(build_type).cloned().ok_or_else(|| { if build_type == "cdylib" { anyhow!( "Cargo didn't build an aarch64 cdylib. Did you miss crate-type = [\"cdylib\"] \ in the lib section of your Cargo.toml?", ) } else { anyhow!("Cargo didn't build an aarch64 bin.") } })?; let x86_64_artifact = x86_64_artifact.get(build_type).cloned().ok_or_else(|| { if build_type == "cdylib" { anyhow!( "Cargo didn't build a x86_64 cdylib. Did you miss crate-type = [\"cdylib\"] \ in the lib section of your Cargo.toml?", ) } else { anyhow!("Cargo didn't build a x86_64 bin.") } })?; // Create an universal dylib let output_path = aarch64_artifact .path .display() .to_string() .replace("aarch64-apple-darwin/", ""); let mut writer = FatWriter::new(); let aarch64_file = fs::read(&aarch64_artifact.path)?; let x86_64_file = fs::read(&x86_64_artifact.path)?; writer .add(aarch64_file) .map_err(|e| anyhow!("Failed to add aarch64 cdylib: {:?}", e))?; writer .add(x86_64_file) .map_err(|e| anyhow!("Failed to add x86_64 cdylib: {:?}", e))?; writer .write_to_file(&output_path) .map_err(|e| anyhow!("Failed to create universal cdylib: {:?}", e))?; let mut result = HashMap::new(); let universal_artifact = BuildArtifact { path: PathBuf::from(output_path), ..x86_64_artifact }; result.insert(build_type.to_string(), universal_artifact); universal_artifacts.push(result); } Ok(universal_artifacts) } fn compile_targets( context: &BuildContext, python_interpreter: Option<&PythonInterpreter>, targets: &[CompileTarget], ) -> Result>> { let mut artifacts = Vec::with_capacity(targets.len()); for target in targets { artifacts.push(compile_target(context, python_interpreter, target)?); } Ok(artifacts) } fn compile_target( context: &BuildContext, python_interpreter: Option<&PythonInterpreter>, compile_target: &CompileTarget, ) -> Result> { let target = &context.target; let mut cargo_rustc: cargo_options::Rustc = context.cargo_options.clone().into(); cargo_rustc.message_format = vec!["json-render-diagnostics".to_string()]; // --release and --profile are conflicting options if context.release && cargo_rustc.profile.is_none() { cargo_rustc.release = true; } // Add `--crate-type cdylib` if available if compile_target .target .kind .iter() .any(|k| LIB_CRATE_TYPES.contains(&k.as_str())) { // `--crate-type` is stable since Rust 1.64.0 // See https://github.com/rust-lang/cargo/pull/10838 if target.rustc_version.semver >= RUST_1_64_0 { debug!("Setting crate_type to cdylib for Rust >= 1.64.0"); cargo_rustc.crate_type = vec!["cdylib".to_string()]; } } let target_triple = target.target_triple(); let manifest_dir = context.manifest_path.parent().unwrap(); let mut rustflags = cargo_config2::Config::load_with_cwd(manifest_dir)? .rustflags(target_triple)? .unwrap_or_default(); // We need to pass --bin / --lib let bridge_model = &compile_target.bridge_model; match bridge_model { BridgeModel::Bin(..) => { cargo_rustc.bin.push(compile_target.target.name.clone()); } BridgeModel::Cffi | BridgeModel::UniFfi | BridgeModel::Bindings(..) | BridgeModel::BindingsAbi3(..) => { cargo_rustc.lib = true; // https://github.com/rust-lang/rust/issues/59302#issue-422994250 // We must only do this for libraries as it breaks binaries // For some reason this value is ignored when passed as rustc argument if context.target.is_musl_libc() && !rustflags .flags .iter() .any(|f| f == "target-feature=-crt-static") { debug!("Setting `-C target-features=-crt-static` for musl dylib"); rustflags.push("-C"); rustflags.push("target-feature=-crt-static"); } } } // https://github.com/PyO3/pyo3/issues/88#issuecomment-337744403 if target.is_macos() { if let BridgeModel::Bindings(..) | BridgeModel::BindingsAbi3(..) = bridge_model { // Change LC_ID_DYLIB to the final .so name for macOS targets to avoid linking with // non-existent library. // See https://github.com/PyO3/setuptools-rust/issues/106 for detail let module_name = &context.module_name; let so_filename = match bridge_model { BridgeModel::BindingsAbi3(..) => format!("{module_name}.abi3.so"), _ => python_interpreter .expect("missing python interpreter for non-abi3 wheel build") .get_library_name(module_name), }; let macos_dylib_install_name = format!("link-args=-Wl,-install_name,@rpath/{so_filename}"); let mac_args = [ "-C".to_string(), "link-arg=-undefined".to_string(), "-C".to_string(), "link-arg=dynamic_lookup".to_string(), "-C".to_string(), macos_dylib_install_name, ]; debug!("Setting additional linker args for macOS: {:?}", mac_args); cargo_rustc.args.extend(mac_args); } } else if target.is_emscripten() { // Allow user to override these default flags if !rustflags .flags .iter() .any(|f| f.contains("link-native-libraries")) { debug!("Setting `-Z link-native-libraries=no` for Emscripten"); rustflags.push("-Z"); rustflags.push("link-native-libraries=no"); } let mut emscripten_args = Vec::new(); // Allow user to override these default settings if !cargo_rustc .args .iter() .any(|arg| arg.contains("SIDE_MODULE")) { emscripten_args.push("-C".to_string()); emscripten_args.push("link-arg=-sSIDE_MODULE=2".to_string()); } if !cargo_rustc .args .iter() .any(|arg| arg.contains("WASM_BIGINT")) { emscripten_args.push("-C".to_string()); emscripten_args.push("link-arg=-sWASM_BIGINT".to_string()); } debug!( "Setting additional linker args for Emscripten: {:?}", emscripten_args ); cargo_rustc.args.extend(emscripten_args); } if context.strip { cargo_rustc .args .extend(["-C".to_string(), "link-arg=-s".to_string()]); } let mut build_command = if target.is_msvc() && target.cross_compiling() { #[cfg(feature = "xwin")] { let mut build = cargo_xwin::Rustc::from(cargo_rustc); build.target = vec![target_triple.to_string()]; build.build_command()? } #[cfg(not(feature = "xwin"))] { if target.user_specified { cargo_rustc.target = vec![target_triple.to_string()]; } cargo_rustc.command() } } else { #[cfg(feature = "zig")] { let mut build = cargo_zigbuild::Rustc::from(cargo_rustc); if !context.zig { build.disable_zig_linker = true; if target.user_specified { build.target = vec![target_triple.to_string()]; } } else { build.enable_zig_ar = true; let zig_triple = if target.is_linux() && !target.is_musl_libc() { match context.platform_tag.iter().find(|tag| tag.is_manylinux()) { Some(PlatformTag::Manylinux { x, y }) => { format!("{target_triple}.{x}.{y}") } _ => target_triple.to_string(), } } else { target_triple.to_string() }; build.target = vec![zig_triple]; } build.build_command()? } #[cfg(not(feature = "zig"))] { if target.user_specified { cargo_rustc.target = vec![target_triple.to_string()]; } cargo_rustc.command() } }; #[cfg(feature = "zig")] if context.zig { // Pass zig command to downstream, eg. python3-dll-a if let Ok((zig_cmd, zig_args)) = cargo_zigbuild::Zig::find_zig() { if zig_args.is_empty() { build_command.env("ZIG_COMMAND", zig_cmd); } else { build_command.env( "ZIG_COMMAND", format!("{} {}", zig_cmd.display(), zig_args.join(" ")), ); }; } } build_command // We need to capture the json messages .stdout(Stdio::piped()) // We can't get colored human and json messages from rustc as they are mutually exclusive, // but forwarding stderr is still useful in case there some non-json error .stderr(Stdio::inherit()); if !rustflags.flags.is_empty() { build_command.env("CARGO_ENCODED_RUSTFLAGS", rustflags.encode()?); } if let BridgeModel::BindingsAbi3(_, _) = bridge_model { let is_pypy_or_graalpy = python_interpreter .map(|p| p.interpreter_kind.is_pypy() || p.interpreter_kind.is_graalpy()) .unwrap_or(false); if !is_pypy_or_graalpy && !target.is_windows() { let pyo3_ver = pyo3_version(&context.cargo_metadata) .context("Failed to get pyo3 version from cargo metadata")?; if pyo3_ver < PYO3_ABI3_NO_PYTHON_VERSION { // This will make old pyo3's build script only set some predefined linker // arguments without trying to read any python configuration build_command.env("PYO3_NO_PYTHON", "1"); } } } // Setup `PYO3_CONFIG_FILE` if we are cross compiling for pyo3 bindings if let Some(interpreter) = python_interpreter { // Target python interpreter isn't runnable when cross compiling if interpreter.runnable { if bridge_model.is_bindings("pyo3") || bridge_model.is_bindings("pyo3-ffi") || matches!(bridge_model, BridgeModel::BindingsAbi3(_, _)) { debug!( "Setting PYO3_PYTHON to {}", interpreter.executable.display() ); build_command .env("PYO3_PYTHON", &interpreter.executable) .env( "PYO3_ENVIRONMENT_SIGNATURE", interpreter.environment_signature(), ); } // rust-cpython, and legacy pyo3 versions build_command.env("PYTHON_SYS_EXECUTABLE", &interpreter.executable); } else if (bridge_model.is_bindings("pyo3") || bridge_model.is_bindings("pyo3-ffi") || (matches!(bridge_model, BridgeModel::BindingsAbi3(_, _)) && (interpreter.interpreter_kind.is_pypy() || interpreter.interpreter_kind.is_graalpy()))) && env::var_os("PYO3_CONFIG_FILE").is_none() { let pyo3_config = interpreter.pyo3_config_file(); let maturin_target_dir = context.target_dir.join("maturin"); let config_file = maturin_target_dir.join(format!( "pyo3-config-{}-{}.{}.txt", target_triple, interpreter.major, interpreter.minor )); fs::create_dir_all(&maturin_target_dir)?; fs::write(&config_file, pyo3_config).with_context(|| { format!( "Failed to create pyo3 config file at '{}'", config_file.display() ) })?; let abs_config_file = config_file.normalize()?.into_path_buf(); build_command.env("PYO3_CONFIG_FILE", abs_config_file); } } if let Some(lib_dir) = env::var_os("MATURIN_PYTHON_SYSCONFIGDATA_DIR") { build_command.env("PYO3_CROSS_LIB_DIR", lib_dir); } // Set default macOS deployment target version for non-editable builds if !context.editable && target.is_macos() && env::var_os("MACOSX_DEPLOYMENT_TARGET").is_none() { use crate::build_context::rustc_macosx_target_version; let target_config = context .pyproject_toml .as_ref() .and_then(|x| x.target_config(target_triple)); let deployment_target = if let Some(deployment_target) = target_config .as_ref() .and_then(|config| config.macos_deployment_target.as_ref()) { eprintln!( "💻 Using `MACOSX_DEPLOYMENT_TARGET={deployment_target}` for {target_triple} by configuration" ); deployment_target.clone() } else { let (major, minor) = rustc_macosx_target_version(target_triple); eprintln!( "💻 Using `MACOSX_DEPLOYMENT_TARGET={major}.{minor}` for {target_triple} by default" ); format!("{major}.{minor}") }; build_command.env("MACOSX_DEPLOYMENT_TARGET", deployment_target); } debug!("Running {:?}", build_command); let mut cargo_build = build_command .spawn() .context("Failed to run `cargo rustc`")?; let mut artifacts = HashMap::new(); let mut linked_paths = Vec::new(); let stream = cargo_build .stdout .take() .expect("Cargo build should have a stdout"); for message in cargo_metadata::Message::parse_stream(BufReader::new(stream)) { let message = message.context("Failed to parse cargo metadata message")?; trace!("cargo message: {:?}", message); match message { cargo_metadata::Message::CompilerArtifact(artifact) => { let package_in_metadata = context .cargo_metadata .packages .iter() .find(|package| package.id == artifact.package_id); let crate_name = match package_in_metadata { Some(package) => &package.name, None => { let package_id = &artifact.package_id; // Ignore the package if it's coming from Rust sysroot when compiling with `-Zbuild-std` let should_warn = !package_id.repr.contains("rustup") && !package_id.repr.contains("rustlib") && !artifact.features.contains(&"rustc-dep-of-std".to_string()); if should_warn { // This is a spurious error I don't really understand eprintln!( "âš ï¸ Warning: The package {package_id} wasn't listed in `cargo metadata`" ); } continue; } }; // Extract the location of the .so/.dll/etc. from cargo's json output if crate_name == &context.crate_name { let tuples = artifact .target .crate_types .into_iter() .zip(artifact.filenames); for (crate_type, filename) in tuples { let artifact = BuildArtifact { path: filename.into(), linked_paths: Vec::new(), }; artifacts.insert(crate_type, artifact); } } } // See https://doc.rust-lang.org/cargo/reference/external-tools.html#build-script-output cargo_metadata::Message::BuildScriptExecuted(msg) => { for path in msg.linked_paths.iter().map(|p| p.as_str()) { // `linked_paths` may include a "KIND=" prefix in the string where KIND is the library kind if let Some(index) = path.find('=') { linked_paths.push(path[index + 1..].to_string()); } else { linked_paths.push(path.to_string()); } } } cargo_metadata::Message::CompilerMessage(msg) => { println!("{}", msg.message); } _ => (), } } // Add linked_paths to build artifacts for artifact in artifacts.values_mut() { artifact.linked_paths = linked_paths.clone(); } let status = cargo_build .wait() .expect("Failed to wait on cargo child process"); if !status.success() { bail!( r#"Cargo build finished with "{}": `{:?}`"#, status, build_command, ) } Ok(artifacts) } /// Checks that the native library contains a function called `PyInit_` and warns /// if it's missing. /// /// That function is the python's entrypoint for loading native extensions, i.e. python will fail /// to import the module with error if it's missing or named incorrectly /// /// Currently the check is only run on linux, macOS and Windows pub fn warn_missing_py_init(artifact: &Path, module_name: &str) -> Result<()> { let py_init = format!("PyInit_{module_name}"); let mut fd = File::open(artifact)?; let mut buffer = Vec::new(); fd.read_to_end(&mut buffer)?; let mut found = false; match goblin::Object::parse(&buffer)? { goblin::Object::Elf(elf) => { for dyn_sym in elf.dynsyms.iter() { if py_init == elf.dynstrtab[dyn_sym.st_name] { found = true; break; } } } goblin::Object::Mach(mach) => { match mach { goblin::mach::Mach::Binary(macho) => { for sym in macho.exports()? { let sym_name = sym.name; if py_init == sym_name.strip_prefix('_').unwrap_or(&sym_name) { found = true; break; } } if !found { for sym in macho.symbols() { let (sym_name, _) = sym?; if py_init == sym_name.strip_prefix('_').unwrap_or(sym_name) { found = true; break; } } } } goblin::mach::Mach::Fat(_) => { // Ignore fat macho, // we only generate them by combining thin binaries which is handled above found = true } } } goblin::Object::PE(pe) => { for sym in &pe.exports { if let Some(sym_name) = sym.name { if py_init == sym_name { found = true; break; } } } } _ => { // Currently, only linux, macOS and Windows are implemented found = true } } if !found { eprintln!( "âš ï¸ Warning: Couldn't find the symbol `{py_init}` in the native library. \ Python will fail to import this module. \ If you're using pyo3, check that `#[pymodule]` uses `{module_name}` as module name" ) } Ok(()) } fn pyo3_version(cargo_metadata: &cargo_metadata::Metadata) -> Option<(u64, u64, u64)> { let packages: HashMap<&str, &cargo_metadata::Package> = cargo_metadata .packages .iter() .filter_map(|pkg| { let name = &pkg.name; if name == "pyo3" || name == "pyo3-ffi" { Some((name.as_ref(), pkg)) } else { None } }) .collect(); packages .get("pyo3") .or_else(|| packages.get("pyo3-ffi")) .map(|pkg| (pkg.version.major, pkg.version.minor, pkg.version.patch)) } python-maturin_1.3.2.orig/src/cross_compile.rs0000644000000000000000000002025314525221045016462 0ustar00use crate::{PythonInterpreter, Target}; use anyhow::{bail, Result}; use fs_err::{self as fs, DirEntry}; use normpath::PathExt as _; use std::collections::HashMap; use std::env; use std::path::{Path, PathBuf}; pub fn is_cross_compiling(target: &Target) -> Result { let target_triple = target.target_triple(); let host = target.host_triple(); if target_triple == host { // Not cross-compiling return Ok(false); } if target_triple == "x86_64-apple-darwin" && host == "aarch64-apple-darwin" { // Not cross-compiling to compile for x86-64 Python from macOS arm64 return Ok(false); } if target_triple == "aarch64-apple-darwin" && host == "x86_64-apple-darwin" { // Not cross-compiling to compile for arm64 Python from macOS x86_64 return Ok(false); } if target_triple.starts_with("i686-pc-windows") && host.starts_with("x86_64-pc-windows") { // Not cross-compiling to compile for 32-bit Python from windows 64-bit return Ok(false); } if let Some(target_without_env) = target_triple .rfind('-') .map(|index| &target_triple[0..index]) { if host.starts_with(target_without_env) { // Not cross-compiling if arch-vendor-os is all the same // e.g. x86_64-unknown-linux-musl on x86_64-unknown-linux-gnu host return Ok(false); } } Ok(true) } /// Parse sysconfigdata file /// /// The sysconfigdata is simply a dictionary containing all the build time variables used for the /// python executable and library. Here it is read and added to a script to extract only what is /// necessary. This necessitates a python interpreter for the host machine to work. pub fn parse_sysconfigdata( interpreter: &PythonInterpreter, config_path: impl AsRef, ) -> Result> { let mut script = fs::read_to_string(config_path)?; script += r#" print("version_major", build_time_vars["VERSION"][0]) # 3 print("version_minor", build_time_vars["VERSION"][2:]) # E.g., 8, 10 KEYS = [ "ABIFLAGS", "EXT_SUFFIX", "SOABI", ] for key in KEYS: print(key, build_time_vars.get(key, "")) "#; let output = interpreter.run_script(&script)?; Ok(parse_script_output(&output)) } fn parse_script_output(output: &str) -> HashMap { output .lines() .filter_map(|line| { line.split_once(' ') .map(|(x, y)| (x.to_string(), y.to_string())) }) .collect() } fn starts_with(entry: &DirEntry, pat: &str) -> bool { let name = entry.file_name(); name.to_string_lossy().starts_with(pat) } fn ends_with(entry: &DirEntry, pat: &str) -> bool { let name = entry.file_name(); name.to_string_lossy().ends_with(pat) } /// Finds the `_sysconfigdata*.py` file in the library path. /// /// From the python source for `_sysconfigdata*.py` is always going to be located at /// `build/lib.{PLATFORM}-{PY_MINOR_VERSION}` when built from source. The [exact line][1] is defined as: /// /// ```py /// pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version_info[:2]) /// ``` /// /// Where get_platform returns a kebab-case formatted string containing the os, the architecture and /// possibly the os' kernel version (not the case on linux). However, when installed using a package /// manager, the `_sysconfigdata*.py` file is installed in the `${PREFIX}/lib/python3.Y/` directory. /// The `_sysconfigdata*.py` is generally in a sub-directory of the location of `libpython3.Y.so`. /// So we must find the file in the following possible locations: /// /// ```sh /// # distribution from package manager, lib_dir should include lib/ /// ${INSTALL_PREFIX}/lib/python3.Y/_sysconfigdata*.py /// ${INSTALL_PREFIX}/lib/libpython3.Y.so /// ${INSTALL_PREFIX}/lib/python3.Y/config-3.Y-${HOST_TRIPLE}/libpython3.Y.so /// /// # Built from source from host /// ${CROSS_COMPILED_LOCATION}/build/lib.linux-x86_64-Y/_sysconfigdata*.py /// ${CROSS_COMPILED_LOCATION}/libpython3.Y.so /// /// # if cross compiled, kernel release is only present on certain OS targets. /// ${CROSS_COMPILED_LOCATION}/build/lib.{OS}(-{OS-KERNEL-RELEASE})?-{ARCH}-Y/_sysconfigdata*.py /// ${CROSS_COMPILED_LOCATION}/libpython3.Y.so /// ``` /// /// [1]: https://github.com/python/cpython/blob/3.5/Lib/sysconfig.py#L389 pub fn find_sysconfigdata(lib_dir: &Path, target: &Target) -> Result { let sysconfig_paths = search_lib_dir(lib_dir, target)?; let sysconfig_name = env::var_os("_PYTHON_SYSCONFIGDATA_NAME"); let mut sysconfig_paths = sysconfig_paths .iter() .filter_map(|p| { let canonical = p.normalize().ok().map(|p| p.into_path_buf()); match &sysconfig_name { Some(_) => canonical.filter(|p| p.file_stem() == sysconfig_name.as_deref()), None => canonical, } }) .collect::>(); sysconfig_paths.dedup(); if sysconfig_paths.is_empty() { bail!("Could not find _sysconfigdata*.py in {}", lib_dir.display()); } else if sysconfig_paths.len() > 1 { bail!( "Detected multiple possible python versions, please set the PYO3_PYTHON_VERSION \ variable to the wanted version on your system or set the _PYTHON_SYSCONFIGDATA_NAME \ variable to the wanted sysconfigdata file name\nsysconfigdata paths = {:?}", sysconfig_paths ) } Ok(sysconfig_paths.remove(0)) } /// recursive search for _sysconfigdata, returns all possibilities of sysconfigdata paths fn search_lib_dir(path: impl AsRef, target: &Target) -> Result> { let mut sysconfig_paths = vec![]; let (cpython_version_pat, pypy_version_pat) = if let Some(v) = env::var_os("PYO3_CROSS_PYTHON_VERSION").map(|s| s.into_string().unwrap()) { (format!("python{v}"), format!("pypy{v}")) } else { ("python3.".into(), "pypy3.".into()) }; for f in fs::read_dir(path.as_ref())? { let sysc = match &f { Ok(f) if starts_with(f, "_sysconfigdata") && ends_with(f, "py") => vec![f.path()], Ok(f) if starts_with(f, "build") => search_lib_dir(f.path(), target)?, Ok(f) if starts_with(f, "lib.") => { let name = f.file_name(); // check if right target os if !name.to_string_lossy().contains(target.get_python_os()) { continue; } // Check if right arch if !name .to_string_lossy() .contains(&target.target_arch().to_string()) { continue; } search_lib_dir(f.path(), target)? } Ok(f) if starts_with(f, &cpython_version_pat) => search_lib_dir(f.path(), target)?, // PyPy 3.7: /opt/python/pp37-pypy37_pp73/lib_pypy/_sysconfigdata__linux_x86_64-linux-gnu.py Ok(f) if starts_with(f, "lib_pypy") => search_lib_dir(f.path(), target)?, // PyPy 3.8: /opt/python/pp38-pypy38_pp73/lib/pypy3.8/_sysconfigdata__linux_x86_64-linux-gnu.py Ok(f) if starts_with(f, &pypy_version_pat) => search_lib_dir(f.path(), target)?, Ok(f) if starts_with(f, "lib") && f.path().is_dir() => { search_lib_dir(f.path(), target)? } _ => continue, }; sysconfig_paths.extend(sysc); } // If we got more than one file, only take those that contain the arch name. // For ubuntu 20.04 with host architecture x86_64 and a foreign architecture of armhf // this reduces the number of candidates to 1: // // $ find /usr/lib/python3.8/ -name '_sysconfigdata*.py' -not -lname '*' // /usr/lib/python3.8/_sysconfigdata__x86_64-linux-gnu.py // /usr/lib/python3.8/_sysconfigdata__arm-linux-gnueabihf.py if sysconfig_paths.len() > 1 { let temp = sysconfig_paths .iter() .filter(|p| { p.to_string_lossy() .contains(&target.target_arch().to_string()) }) .cloned() .collect::>(); if !temp.is_empty() { sysconfig_paths = temp; } } Ok(sysconfig_paths) } python-maturin_1.3.2.orig/src/develop.rs0000644000000000000000000001771314525221045015266 0ustar00use crate::build_options::CargoOptions; use crate::target::Arch; use crate::BuildOptions; use crate::PlatformTag; use crate::PythonInterpreter; use crate::Target; use anyhow::{anyhow, bail, Context, Result}; use pep508_rs::{MarkerExpression, MarkerOperator, MarkerTree, MarkerValue}; use std::path::Path; use std::path::PathBuf; use std::process::Command; use tempfile::TempDir; /// Install the crate as module in the current virtualenv #[derive(Debug, clap::Parser)] pub struct DevelopOptions { /// Which kind of bindings to use #[arg( short = 'b', long = "bindings", alias = "binding-crate", value_parser = ["pyo3", "pyo3-ffi", "rust-cpython", "cffi", "uniffi", "bin"] )] pub bindings: Option, /// Pass --release to cargo #[arg(short = 'r', long)] pub release: bool, /// Strip the library for minimum file size #[arg(long)] pub strip: bool, /// Install extra requires aka. optional dependencies /// /// Use as `--extras=extra1,extra2` #[arg( short = 'E', long, value_delimiter = ',', action = clap::ArgAction::Append )] pub extras: Vec, /// Skip installation, only build the extension module inplace /// /// Only works with mixed Rust/Python project layout #[arg(long)] pub skip_install: bool, /// Use a specific pip installation instead of the default one. /// /// This can be used to supply the path to a pip executable when the /// current virtualenv does not provide one. #[arg(long)] pub pip_path: Option, /// `cargo rustc` options #[command(flatten)] pub cargo_options: CargoOptions, } fn make_pip_command(python_path: &Path, pip_path: Option<&Path>) -> Command { match pip_path { Some(pip_path) => { let mut cmd = Command::new(pip_path); cmd.arg("--python") .arg(python_path) .arg("--disable-pip-version-check"); cmd } None => { let mut cmd = Command::new(python_path); cmd.arg("-m").arg("pip").arg("--disable-pip-version-check"); cmd } } } /// Installs a crate by compiling it and copying the shared library to site-packages. /// Also adds the dist-info directory to make sure pip and other tools detect the library /// /// Works only in a virtualenv. #[allow(clippy::too_many_arguments)] pub fn develop(develop_options: DevelopOptions, venv_dir: &Path) -> Result<()> { let DevelopOptions { bindings, release, strip, extras, skip_install, pip_path, cargo_options, } = develop_options; let mut target_triple = cargo_options.target.as_ref().map(|x| x.to_string()); let target = Target::from_target_triple(cargo_options.target)?; let python = target.get_venv_python(venv_dir); // check python platform and architecture if !target.user_specified { match Command::new(&python) .arg("-c") .arg("import sysconfig; print(sysconfig.get_platform(), end='')") .output() { Ok(output) if output.status.success() => { let platform = String::from_utf8_lossy(&output.stdout); if platform.contains("macos") { if platform.contains("x86_64") && target.target_arch() != Arch::X86_64 { target_triple = Some("x86_64-apple-darwin".to_string()); } else if platform.contains("arm64") && target.target_arch() != Arch::Aarch64 { target_triple = Some("aarch64-apple-darwin".to_string()); } } } _ => eprintln!("âš ï¸ Warning: Failed to determine python platform"), } } // Store wheel in a unique location so we don't get name clashes with parallel runs let wheel_dir = TempDir::new().context("Failed to create temporary directory")?; let build_options = BuildOptions { platform_tag: vec![PlatformTag::Linux], interpreter: vec![python.clone()], find_interpreter: false, bindings, out: Some(wheel_dir.path().to_path_buf()), skip_auditwheel: false, #[cfg(feature = "zig")] zig: false, cargo: CargoOptions { target: target_triple, ..cargo_options }, }; let build_context = build_options.into_build_context(release, strip, true)?; let interpreter = PythonInterpreter::check_executable(&python, &target, build_context.bridge())?.ok_or_else( || anyhow!("Expected `python` to be a python interpreter inside a virtualenv ಠ_ಠ"), )?; // Install dependencies if !build_context.metadata21.requires_dist.is_empty() { let mut args = vec!["install".to_string()]; args.extend(build_context.metadata21.requires_dist.iter().map(|x| { let mut pkg = x.clone(); // Remove extra marker to make it installable with pip // Keep in sync with `Metadata21::merge_pyproject_toml()`! for extra in &extras { pkg.marker = pkg.marker.and_then(|marker| -> Option { match marker.clone() { MarkerTree::Expression(MarkerExpression { l_value: MarkerValue::Extra, operator: MarkerOperator::Equal, r_value: MarkerValue::QuotedString(extra_value), }) if &extra_value == extra => None, MarkerTree::And(and) => match &*and { [existing, MarkerTree::Expression(MarkerExpression { l_value: MarkerValue::Extra, operator: MarkerOperator::Equal, r_value: MarkerValue::QuotedString(extra_value), })] if extra_value == extra => Some(existing.clone()), _ => Some(marker), }, _ => Some(marker), } }); } pkg.to_string() })); let status = make_pip_command(&interpreter.executable, pip_path.as_deref()) .args(&args) .status() .context("Failed to run pip install")?; if !status.success() { bail!(r#"pip install finished with "{}""#, status) } } let wheels = build_context.build_wheels()?; if !skip_install { for (filename, _supported_version) in wheels.iter() { let mut pip_cmd = make_pip_command(&python, pip_path.as_deref()); let output = pip_cmd .args(["install", "--no-deps", "--force-reinstall"]) .arg(dunce::simplified(filename)) .output() .context(format!( "pip install failed (ran {:?} with {:?})", pip_cmd.get_program(), &pip_cmd.get_args().collect::>(), ))?; if !output.status.success() { bail!( "pip install in {} failed running {:?}: {}\n--- Stdout:\n{}\n--- Stderr:\n{}\n---\n", venv_dir.display(), &pip_cmd.get_args().collect::>(), output.status, String::from_utf8_lossy(&output.stdout).trim(), String::from_utf8_lossy(&output.stderr).trim(), ); } if !output.stderr.is_empty() { eprintln!( "âš ï¸ Warning: pip raised a warning running {:?}:\n{}", &pip_cmd.get_args().collect::>(), String::from_utf8_lossy(&output.stderr).trim(), ); } eprintln!( "🛠 Installed {}-{}", build_context.metadata21.name, build_context.metadata21.version ); } } Ok(()) } python-maturin_1.3.2.orig/src/lib.rs0000644000000000000000000000431314446366340014400 0ustar00//! Builds wheels from a crate that exposes python bindings through pyo3 //! //! The high-level api is [BuildOptions], which can be converted into the [BuildContext], which //! then uses [compile()] and builds the appropriate wheels. //! //! # Cargo features //! //! Default features: log, upload, rustls //! //! - log: Configures pretty-env-logger, even though maturin doesn't use logging itself. //! //! - upload: Uses ureq to add the upload command. //! //! - rustls: Makes ureq use the rustls stack so that we can build maturin in a CentOS 6 //! docker container and which maturin itself manylinux compliant. //! //! - native-tls: Makes ureq use the platform native tls stack //! //! - password-storage (off by default): Uses the keyring package to store the password. keyring //! pulls in a lot of shared libraries and outdated dependencies, so this is off by default, except //! for the build on the github releases page. //! (https://github.com/hwchen/secret-service-rs/issues/9) #![deny(missing_docs)] pub use crate::build_context::{BridgeModel, BuildContext, BuiltWheelMetadata}; pub use crate::build_options::{BuildOptions, CargoOptions}; pub use crate::cargo_toml::CargoToml; pub use crate::compile::{compile, BuildArtifact}; pub use crate::develop::{develop, DevelopOptions}; pub use crate::metadata::{Metadata21, WheelMetadata}; pub use crate::module_writer::{ write_dist_info, ModuleWriter, PathWriter, SDistWriter, WheelWriter, }; #[cfg(feature = "scaffolding")] pub use crate::new_project::{init_project, new_project, GenerateProjectOptions}; pub use crate::pyproject_toml::PyProjectToml; pub use crate::python_interpreter::PythonInterpreter; pub use crate::target::Target; #[cfg(feature = "upload")] pub use crate::upload::{upload, upload_ui, PublishOpt, Registry, UploadError}; pub use auditwheel::PlatformTag; mod auditwheel; mod build_context; mod build_options; mod cargo_toml; #[cfg(feature = "scaffolding")] /// Generate CI configuration pub mod ci; mod compile; mod cross_compile; mod develop; mod metadata; mod module_writer; #[cfg(feature = "scaffolding")] mod new_project; mod project_layout; pub mod pyproject_toml; mod python_interpreter; mod source_distribution; mod target; #[cfg(feature = "upload")] mod upload; python-maturin_1.3.2.orig/src/main.rs0000644000000000000000000004103014525221045014541 0ustar00//! Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries //! as python packages. This file contains the CLI and keyring integration. //! //! Run with --help for usage information use anyhow::{bail, Context, Result}; #[cfg(feature = "zig")] use cargo_zigbuild::Zig; #[cfg(feature = "cli-completion")] use clap::CommandFactory; use clap::{Parser, Subcommand}; #[cfg(feature = "scaffolding")] use maturin::{ci::GenerateCI, init_project, new_project, GenerateProjectOptions}; use maturin::{ develop, write_dist_info, BridgeModel, BuildOptions, CargoOptions, DevelopOptions, PathWriter, PlatformTag, PythonInterpreter, Target, }; #[cfg(feature = "upload")] use maturin::{upload_ui, PublishOpt}; use std::env; use std::path::PathBuf; use tracing::debug; #[derive(Debug, Parser)] #[command( version, name = env!("CARGO_PKG_NAME"), display_order = 1, after_help = "Visit https://maturin.rs to learn more about maturin." )] #[cfg_attr(feature = "cargo-clippy", allow(clippy::large_enum_variant))] /// Build and publish crates with pyo3, rust-cpython and cffi bindings as well /// as rust binaries as python packages enum Opt { #[command(name = "build", alias = "b")] /// Build the crate into python packages Build { /// Build artifacts in release mode, with optimizations #[arg(short = 'r', long)] release: bool, /// Strip the library for minimum file size #[arg(long)] strip: bool, /// Build a source distribution #[arg(long)] sdist: bool, #[command(flatten)] build: BuildOptions, }, #[cfg(feature = "upload")] #[command(name = "publish")] /// Build and publish the crate as python packages to pypi Publish { /// Do not pass --release to cargo #[arg(long)] debug: bool, /// Do not strip the library for minimum file size #[arg(long = "no-strip")] no_strip: bool, /// Don't build a source distribution #[arg(long = "no-sdist")] no_sdist: bool, #[command(flatten)] publish: PublishOpt, #[command(flatten)] build: BuildOptions, }, #[command(name = "list-python")] /// Search and list the available python installations ListPython { #[arg(long)] target: Option, }, #[command(name = "develop", alias = "dev")] /// Install the crate as module in the current virtualenv Develop(DevelopOptions), /// Build only a source distribution (sdist) without compiling. /// /// Building a source distribution requires a pyproject.toml with a `[build-system]` table. /// /// This command is a workaround for [pypa/pip#6041](https://github.com/pypa/pip/issues/6041) #[command(name = "sdist")] SDist { #[arg(short = 'm', long = "manifest-path")] /// The path to the Cargo.toml manifest_path: Option, /// The directory to store the built wheels in. Defaults to a new "wheels" /// directory in the project's target directory #[arg(short, long)] out: Option, }, /// Create a new cargo project in an existing directory #[cfg(feature = "scaffolding")] #[command(name = "init")] InitProject { /// Project path path: Option, #[command(flatten)] options: GenerateProjectOptions, }, /// Create a new cargo project #[cfg(feature = "scaffolding")] #[command(name = "new")] NewProject { /// Project path path: String, #[command(flatten)] options: GenerateProjectOptions, }, #[cfg(feature = "scaffolding")] #[command(name = "generate-ci")] GenerateCI(GenerateCI), /// Upload python packages to pypi /// /// It is mostly similar to `twine upload`, but can only upload python wheels /// and source distributions. #[cfg(feature = "upload")] #[command(name = "upload")] Upload { #[command(flatten)] publish: PublishOpt, /// The python packages to upload #[arg(value_name = "FILE")] files: Vec, }, /// Backend for the PEP 517 integration. Not for human consumption /// /// The commands are meant to be called from the python PEP 517 #[command(subcommand)] Pep517(Pep517Command), /// Generate shell completions #[cfg(feature = "cli-completion")] #[command(name = "completions", hide = true)] Completions { #[arg(value_name = "SHELL")] shell: clap_complete_command::Shell, }, /// Zig linker wrapper #[cfg(feature = "zig")] #[command(subcommand, hide = true)] Zig(Zig), } /// Backend for the PEP 517 integration. Not for human consumption /// /// The commands are meant to be called from the python PEP 517 #[derive(Debug, Subcommand)] #[command(name = "pep517", hide = true)] enum Pep517Command { /// The implementation of prepare_metadata_for_build_wheel #[command(name = "write-dist-info")] WriteDistInfo { #[command(flatten)] build_options: BuildOptions, /// The metadata_directory argument to prepare_metadata_for_build_wheel #[arg(long = "metadata-directory")] metadata_directory: PathBuf, /// Strip the library for minimum file size #[arg(long)] strip: bool, }, #[command(name = "build-wheel")] /// Implementation of build_wheel /// /// --release and --strip are currently unused by the PEP 517 implementation BuildWheel { #[command(flatten)] build_options: BuildOptions, /// Strip the library for minimum file size #[arg(long)] strip: bool, /// Build editable wheels #[arg(long)] editable: bool, }, /// The implementation of build_sdist #[command(name = "write-sdist")] WriteSDist { /// The sdist_directory argument to build_sdist #[arg(long = "sdist-directory")] sdist_directory: PathBuf, #[arg(short = 'm', long = "manifest-path", value_name = "PATH")] /// The path to the Cargo.toml manifest_path: Option, }, } fn detect_venv(target: &Target) -> Result { match (env::var_os("VIRTUAL_ENV"), env::var_os("CONDA_PREFIX")) { (Some(dir), None) => return Ok(PathBuf::from(dir)), (None, Some(dir)) => return Ok(PathBuf::from(dir)), (Some(_), Some(_)) => { bail!("Both VIRTUAL_ENV and CONDA_PREFIX are set. Please unset one of them") } (None, None) => { // No env var, try finding .venv } }; let current_dir = env::current_dir().context("Failed to detect current directory ಠ_ಠ")?; // .venv in the current or any parent directory for dir in current_dir.ancestors() { let dot_venv = dir.join(".venv"); if dot_venv.is_dir() { if !dot_venv.join("pyvenv.cfg").is_file() { bail!( "Expected {} to be a virtual environment, but pyvenv.cfg is missing", dot_venv.display() ); } let python = target.get_venv_python(&dot_venv); if !python.is_file() { bail!( "Your virtualenv at {} is broken. It contains a pyvenv.cfg but no python at {}", dot_venv.display(), python.display() ); } debug!("Found a virtualenv named .venv at {}", dot_venv.display()); return Ok(dot_venv); } } bail!( "Couldn't find a virtualenv or conda environment, but you need one to use this command. \ For maturin to find your virtualenv you need to either set VIRTUAL_ENV (through activate), \ set CONDA_PREFIX (through conda activate) or have a virtualenv called .venv in the current \ or any parent folder. \ See https://virtualenv.pypa.io/en/latest/index.html on how to use virtualenv or \ use `maturin build` and `pip install ` instead." ) } /// Dispatches into the native implementations of the PEP 517 functions /// /// The last line of stdout is used as return value from the python part of the implementation fn pep517(subcommand: Pep517Command) -> Result<()> { match subcommand { Pep517Command::WriteDistInfo { build_options, metadata_directory, strip, } => { assert_eq!(build_options.interpreter.len(), 1); let context = build_options.into_build_context(true, strip, false)?; // Since afaik all other PEP 517 backends also return linux tagged wheels, we do so too let tags = match context.bridge() { BridgeModel::Bindings(..) | BridgeModel::Bin(Some(..)) => { vec![context.interpreter[0].get_tag(&context, &[PlatformTag::Linux])?] } BridgeModel::BindingsAbi3(major, minor) => { let platform = context.get_platform_tag(&[PlatformTag::Linux])?; vec![format!("cp{major}{minor}-abi3-{platform}")] } BridgeModel::Bin(None) | BridgeModel::Cffi | BridgeModel::UniFfi => { context.get_universal_tags(&[PlatformTag::Linux])?.1 } }; let mut writer = PathWriter::from_path(metadata_directory); write_dist_info(&mut writer, &context.metadata21, &tags)?; println!("{}", context.metadata21.get_dist_info_dir().display()); } Pep517Command::BuildWheel { build_options, strip, editable, } => { let build_context = build_options.into_build_context(true, strip, editable)?; let wheels = build_context.build_wheels()?; assert_eq!(wheels.len(), 1); println!("{}", wheels[0].0.to_str().unwrap()); } Pep517Command::WriteSDist { sdist_directory, manifest_path, } => { let build_options = BuildOptions { out: Some(sdist_directory), cargo: CargoOptions { manifest_path, ..Default::default() }, ..Default::default() }; let build_context = build_options.into_build_context(false, false, false)?; let (path, _) = build_context .build_source_distribution()? .context("Failed to build source distribution, pyproject.toml not found")?; println!("{}", path.file_name().unwrap().to_str().unwrap()); } }; Ok(()) } fn run() -> Result<()> { #[cfg(feature = "log")] tracing_subscriber::fmt::init(); #[cfg(feature = "zig")] { // Allow symlink `maturin` to `ar` to invoke `zig ar` // See https://github.com/messense/cargo-zigbuild/issues/52 let mut args = env::args(); let program_path = PathBuf::from(args.next().expect("no program path")); let program_name = program_path.file_stem().expect("no program name"); if program_name.eq_ignore_ascii_case("ar") { let zig = Zig::Ar { args: args.collect(), }; zig.execute()?; return Ok(()); } } #[cfg(not(feature = "wild"))] let opt = Opt::parse(); #[cfg(feature = "wild")] let opt = Opt::parse_from(wild::args_os()); match opt { Opt::Build { build, release, strip, sdist, } => { let build_context = build.into_build_context(release, strip, false)?; if sdist { build_context .build_source_distribution()? .context("Failed to build source distribution, pyproject.toml not found")?; } let wheels = build_context.build_wheels()?; assert!(!wheels.is_empty()); } #[cfg(feature = "upload")] Opt::Publish { build, mut publish, debug, no_strip, no_sdist, } => { let build_context = build.into_build_context(!debug, !no_strip, false)?; if !build_context.release { eprintln!("âš ï¸ Warning: You're publishing debug wheels"); } let mut wheels = build_context.build_wheels()?; if !no_sdist { if let Some(sd) = build_context.build_source_distribution()? { wheels.push(sd); } } let items = wheels.into_iter().map(|wheel| wheel.0).collect::>(); publish.non_interactive_on_ci(); upload_ui(&items, &publish)? } Opt::ListPython { target } => { let found = if target.is_some() { let target = Target::from_target_triple(target)?; PythonInterpreter::find_by_target(&target, None) } else { let target = Target::from_target_triple(None)?; // We don't know the targeted bindings yet, so we use the most lenient PythonInterpreter::find_all(&target, &BridgeModel::Cffi, None)? }; eprintln!("ðŸ {} python interpreter found:", found.len()); for interpreter in found { eprintln!(" - {interpreter}"); } } Opt::Develop(develop_options) => { let target = Target::from_target_triple(develop_options.cargo_options.target.clone())?; let venv_dir = detect_venv(&target)?; develop(develop_options, &venv_dir)?; } Opt::SDist { manifest_path, out } => { let build_options = BuildOptions { out, cargo: CargoOptions { manifest_path, ..Default::default() }, ..Default::default() }; let build_context = build_options.into_build_context(false, false, false)?; build_context .build_source_distribution()? .context("Failed to build source distribution, pyproject.toml not found")?; } Opt::Pep517(subcommand) => pep517(subcommand)?, #[cfg(feature = "scaffolding")] Opt::InitProject { path, options } => init_project(path, options)?, #[cfg(feature = "scaffolding")] Opt::NewProject { path, options } => new_project(path, options)?, #[cfg(feature = "scaffolding")] Opt::GenerateCI(generate_ci) => generate_ci.execute()?, #[cfg(feature = "upload")] Opt::Upload { mut publish, files } => { if files.is_empty() { eprintln!("âš ï¸ Warning: No files given, exiting."); return Ok(()); } publish.non_interactive_on_ci(); upload_ui(&files, &publish)? } #[cfg(feature = "cli-completion")] Opt::Completions { shell } => { shell.generate(&mut Opt::command(), &mut std::io::stdout()); } #[cfg(feature = "zig")] Opt::Zig(subcommand) => { subcommand .execute() .context("Failed to run zig linker wrapper")?; } } Ok(()) } #[cfg(not(debug_assertions))] fn setup_panic_hook() { let default_hook = std::panic::take_hook(); std::panic::set_hook(Box::new(move |panic_info| { eprintln!("\n==================================================================="); eprintln!("maturin has panicked. This is a bug in maturin. Please report this"); eprintln!("at https://github.com/PyO3/maturin/issues/new/choose."); eprintln!("If you can reliably reproduce this panic, include the"); eprintln!("reproduction steps and re-run with the RUST_BACKTRACE=1 environment"); eprintln!("variable set and include the backtrace in your report."); eprintln!(); eprintln!("Platform: {} {}", env::consts::OS, env::consts::ARCH); eprintln!("Version: {}", env!("CARGO_PKG_VERSION")); eprintln!("Args: {}", env::args().collect::>().join(" ")); eprintln!(); default_hook(panic_info); // Rust set exit code to 101 when the process panicked, // so here we use the same exit code std::process::exit(101); })); } fn main() { #[cfg(not(debug_assertions))] setup_panic_hook(); if let Err(e) = run() { eprintln!("💥 maturin failed"); for cause in e.chain() { eprintln!(" Caused by: {cause}"); } std::process::exit(1); } } python-maturin_1.3.2.orig/src/metadata.rs0000644000000000000000000010317014525221045015401 0ustar00use crate::PyProjectToml; use anyhow::{bail, format_err, Context, Result}; use fs_err as fs; use indexmap::IndexMap; use pep440_rs::{Version, VersionSpecifiers}; use pep508_rs::{MarkerExpression, MarkerOperator, MarkerTree, MarkerValue, Requirement}; use pyproject_toml::License; use regex::Regex; use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::fmt::Write as _; use std::path::{Path, PathBuf}; use std::str; use std::str::FromStr; /// The metadata required to generate the .dist-info directory #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] pub struct WheelMetadata { /// Python Package Metadata 2.1 pub metadata21: Metadata21, /// The `[console_scripts]` for the entry_points.txt pub scripts: HashMap, /// The name of the module can be distinct from the package name, mostly /// because package names normally contain minuses while module names /// have underscores. The package name is part of metadata21 pub module_name: String, } /// Python Package Metadata 2.1 as specified in /// https://packaging.python.org/specifications/core-metadata/ #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] #[serde(rename_all = "kebab-case")] #[allow(missing_docs)] pub struct Metadata21 { // Mandatory fields pub metadata_version: String, pub name: String, pub version: Version, // Optional fields pub platform: Vec, pub supported_platform: Vec, pub summary: Option, pub description: Option, pub description_content_type: Option, pub keywords: Option, pub home_page: Option, pub download_url: Option, pub author: Option, pub author_email: Option, pub maintainer: Option, pub maintainer_email: Option, pub license: Option, // https://peps.python.org/pep-0639/#license-file-multiple-use pub license_files: Vec, pub classifiers: Vec, pub requires_dist: Vec, pub provides_dist: Vec, pub obsoletes_dist: Vec, pub requires_python: Option, pub requires_external: Vec, pub project_url: IndexMap, pub provides_extra: Vec, pub scripts: IndexMap, pub gui_scripts: IndexMap, pub entry_points: IndexMap>, } impl Metadata21 { /// Initializes with name, version and otherwise the defaults pub fn new(name: String, version: Version) -> Self { Self { metadata_version: "2.1".to_string(), name, version, platform: vec![], supported_platform: vec![], summary: None, description: None, description_content_type: None, keywords: None, home_page: None, download_url: None, author: None, author_email: None, maintainer: None, maintainer_email: None, license: None, license_files: vec![], classifiers: vec![], requires_dist: vec![], provides_dist: vec![], obsoletes_dist: vec![], requires_python: None, requires_external: vec![], project_url: Default::default(), provides_extra: vec![], scripts: Default::default(), gui_scripts: Default::default(), entry_points: Default::default(), } } } const PLAINTEXT_CONTENT_TYPE: &str = "text/plain; charset=UTF-8"; const GFM_CONTENT_TYPE: &str = "text/markdown; charset=UTF-8; variant=GFM"; /// Guess a Description-Content-Type based on the file extension, /// defaulting to plaintext if extension is unknown or empty. /// /// See https://packaging.python.org/specifications/core-metadata/#description-content-type fn path_to_content_type(path: &Path) -> String { path.extension() .map_or(String::from(PLAINTEXT_CONTENT_TYPE), |ext| { let ext = ext.to_string_lossy().to_lowercase(); let type_str = match ext.as_str() { "rst" => "text/x-rst; charset=UTF-8", "md" => GFM_CONTENT_TYPE, "markdown" => GFM_CONTENT_TYPE, _ => PLAINTEXT_CONTENT_TYPE, }; String::from(type_str) }) } impl Metadata21 { /// Merge metadata with pyproject.toml, where pyproject.toml takes precedence /// /// pyproject_dir must be the directory containing pyproject.toml pub fn merge_pyproject_toml( &mut self, pyproject_dir: impl AsRef, pyproject_toml: &PyProjectToml, ) -> Result<()> { let pyproject_dir = pyproject_dir.as_ref(); if let Some(project) = &pyproject_toml.project { self.name = project.name.clone(); if let Some(version) = &project.version { self.version = version.clone(); } if let Some(description) = &project.description { self.summary = Some(description.clone()); } match &project.readme { Some(pyproject_toml::ReadMe::RelativePath(readme_path)) => { let readme_path = pyproject_dir.join(readme_path); let description = Some(fs::read_to_string(&readme_path).context(format!( "Failed to read readme specified in pyproject.toml, which should be at {}", readme_path.display() ))?); self.description = description; self.description_content_type = Some(path_to_content_type(&readme_path)); } Some(pyproject_toml::ReadMe::Table { file, text, content_type, }) => { if file.is_some() && text.is_some() { bail!("file and text fields of 'project.readme' are mutually-exclusive, only one of them should be specified"); } if let Some(readme_path) = file { let readme_path = pyproject_dir.join(readme_path); let description = Some(fs::read_to_string(&readme_path).context(format!( "Failed to read readme specified in pyproject.toml, which should be at {}", readme_path.display() ))?); self.description = description; } if let Some(description) = text { self.description = Some(description.clone()); } self.description_content_type = content_type.clone(); } None => {} } if let Some(requires_python) = &project.requires_python { self.requires_python = Some(requires_python.clone()); } if let Some(license) = &project.license { match license { // TODO: switch to License-Expression core metadata, see https://peps.python.org/pep-0639/#add-license-expression-field License::String(license_expr) => self.license = Some(license_expr.clone()), License::Table { file, text } => match (file, text) { (Some(_), Some(_)) => { bail!("file and text fields of 'project.license' are mutually-exclusive, only one of them should be specified"); } (Some(license_path), None) => { let license_path = pyproject_dir.join(license_path); self.license_files.push(license_path); } (None, Some(license_text)) => self.license = Some(license_text.clone()), (None, None) => {} }, } } // Until PEP 639 is approved with metadata 2.3, we can assume a // dynamic license-files (also awaiting full 2.2 metadata support) // We're already emitting the License-Files metadata without issue. // license-files.globs = ["LICEN[CS]E*", "COPYING*", "NOTICE*", "AUTHORS*"] let license_include_targets = ["LICEN[CS]E*", "COPYING*", "NOTICE*", "AUTHORS*"]; let escaped_manifest_string = glob::Pattern::escape(pyproject_dir.to_str().unwrap()); let escaped_manifest_path = Path::new(&escaped_manifest_string); for pattern in license_include_targets.iter() { for license_path in glob::glob(&escaped_manifest_path.join(pattern).to_string_lossy())? .filter_map(Result::ok) { // if the pyproject.toml specified the license file, // then we won't list it as automatically included if !self.license_files.contains(&license_path) { eprintln!("📦 Including license file \"{}\"", license_path.display()); self.license_files.push(license_path); } } } if let Some(authors) = &project.authors { let mut names = Vec::with_capacity(authors.len()); let mut emails = Vec::with_capacity(authors.len()); for author in authors { match (&author.name, &author.email) { (Some(name), Some(email)) => { emails.push(escape_email_with_display_name(name, email)); } (Some(name), None) => { names.push(name.as_str()); } (None, Some(email)) => { emails.push(email.clone()); } (None, None) => {} } } if !names.is_empty() { self.author = Some(names.join(", ")); } if !emails.is_empty() { self.author_email = Some(emails.join(", ")); } } if let Some(maintainers) = &project.maintainers { let mut names = Vec::with_capacity(maintainers.len()); let mut emails = Vec::with_capacity(maintainers.len()); for maintainer in maintainers { match (&maintainer.name, &maintainer.email) { (Some(name), Some(email)) => { emails.push(escape_email_with_display_name(name, email)); } (Some(name), None) => { names.push(name.as_str()); } (None, Some(email)) => { emails.push(email.clone()); } (None, None) => {} } } if !names.is_empty() { self.maintainer = Some(names.join(", ")); } if !emails.is_empty() { self.maintainer_email = Some(emails.join(", ")); } } if let Some(keywords) = &project.keywords { self.keywords = Some(keywords.join(",")); } if let Some(classifiers) = &project.classifiers { self.classifiers = classifiers.clone(); } if let Some(urls) = &project.urls { self.project_url = urls.clone(); } if let Some(dependencies) = &project.dependencies { self.requires_dist = dependencies.clone(); } if let Some(dependencies) = &project.optional_dependencies { // Transform the extra -> deps map into the PEP 508 style `dep ; extras = ...` style for (extra, deps) in dependencies { self.provides_extra.push(extra.clone()); for dep in deps { let mut dep = dep.clone(); // Keep in sync with `develop()`! let new_extra = MarkerTree::Expression(MarkerExpression { l_value: MarkerValue::Extra, operator: MarkerOperator::Equal, r_value: MarkerValue::QuotedString(extra.to_string()), }); if let Some(existing) = dep.marker.take() { dep.marker = Some(MarkerTree::And(vec![existing, new_extra])); } else { dep.marker = Some(new_extra); } self.requires_dist.push(dep); } } } if let Some(scripts) = &project.scripts { self.scripts = scripts.clone(); } if let Some(gui_scripts) = &project.gui_scripts { self.gui_scripts = gui_scripts.clone(); } if let Some(entry_points) = &project.entry_points { // Raise error on ambiguous entry points: https://www.python.org/dev/peps/pep-0621/#entry-points if entry_points.contains_key("console_scripts") { bail!("console_scripts is not allowed in project.entry-points table"); } if entry_points.contains_key("gui_scripts") { bail!("gui_scripts is not allowed in project.entry-points table"); } self.entry_points = entry_points.clone(); } } Ok(()) } /// Uses a Cargo.toml to create the metadata for python packages /// /// manifest_path must be the directory, not the file pub fn from_cargo_toml( manifest_path: impl AsRef, cargo_metadata: &cargo_metadata::Metadata, ) -> Result { let package = cargo_metadata .root_package() .context("Expected cargo to return metadata with root_package")?; let authors = package.authors.join(", "); let author_email = if authors.contains('@') { Some(authors.clone()) } else { None }; let mut description: Option = None; let mut description_content_type: Option = None; // See https://packaging.python.org/specifications/core-metadata/#description // and https://doc.rust-lang.org/cargo/reference/manifest.html#the-readme-field if package.readme == Some("false".into()) { // > You can suppress this behavior by setting this field to false } else if let Some(ref readme) = package.readme { let readme_path = manifest_path.as_ref().join(readme); description = Some(fs::read_to_string(&readme_path).context(format!( "Failed to read Readme specified in Cargo.toml, which should be at {}", readme_path.display() ))?); description_content_type = Some(path_to_content_type(&readme_path)); } else { // > If no value is specified for this field, and a file named // > README.md, README.txt or README exists in the package root // Even though it's not what cargo does, we also search for README.rst // since it's still popular in the python world for readme_guess in ["README.md", "README.txt", "README.rst", "README"] { let guessed_readme = manifest_path.as_ref().join(readme_guess); if guessed_readme.exists() { let context = format!( "Readme at {} exists, but can't be read", guessed_readme.display() ); description = Some(fs::read_to_string(&guessed_readme).context(context)?); description_content_type = Some(path_to_content_type(&guessed_readme)); break; } } }; let name = package.name.clone(); let mut project_url = IndexMap::new(); if let Some(repository) = package.repository.as_ref() { project_url.insert("Source Code".to_string(), repository.clone()); } let license_files = if let Some(license_file) = package.license_file.as_ref() { vec![manifest_path.as_ref().join(license_file)] } else { Vec::new() }; let version = Version::from_str(&package.version.to_string()).map_err(|err| { format_err!( "Rust version used in Cargo.toml is not a valid python version: {}. \ Note that rust uses [SemVer](https://semver.org/) while python uses \ [PEP 440](https://peps.python.org/pep-0440/), which have e.g. some differences \ when declaring prereleases.", err ) })?; let metadata = Metadata21 { // name, version and metadata_version are added through Metadata21::new() // Mapped from cargo metadata summary: package.description.clone(), description, description_content_type, keywords: if package.keywords.is_empty() { None } else { Some(package.keywords.join(",")) }, home_page: package.homepage.clone(), download_url: None, // Cargo.toml has no distinction between author and author email author: if package.authors.is_empty() { None } else { Some(authors) }, author_email, license: package.license.clone(), license_files, project_url, ..Metadata21::new(name, version) }; Ok(metadata) } /// Formats the metadata into a list where keys with multiple values /// become multiple single-valued key-value pairs. This format is needed for the pypi /// uploader and for the METADATA file inside wheels pub fn to_vec(&self) -> Vec<(String, String)> { let mut fields = vec![ ("Metadata-Version", self.metadata_version.clone()), ("Name", self.name.clone()), ("Version", self.version.to_string()), ]; let mut add_vec = |name, values: &[String]| { for i in values { fields.push((name, i.clone())); } }; add_vec("Platform", &self.platform); add_vec("Supported-Platform", &self.supported_platform); add_vec("Classifier", &self.classifiers); add_vec( "Requires-Dist", &self .requires_dist .iter() .map(ToString::to_string) .collect::>(), ); add_vec("Provides-Dist", &self.provides_dist); add_vec("Obsoletes-Dist", &self.obsoletes_dist); add_vec("Requires-External", &self.requires_external); add_vec("Provides-Extra", &self.provides_extra); let license_files: Vec = self .license_files .iter() .map(|path| path.file_name().unwrap().to_str().unwrap().to_string()) .collect(); add_vec("License-File", &license_files); let mut add_option = |name, value: &Option| { if let Some(some) = value.clone() { fields.push((name, some)); } }; add_option("Summary", &self.summary); add_option("Keywords", &self.keywords); add_option("Home-Page", &self.home_page); add_option("Download-URL", &self.download_url); add_option("Author", &self.author); add_option("Author-email", &self.author_email); add_option("Maintainer", &self.maintainer); add_option("Maintainer-email", &self.maintainer_email); add_option("License", &self.license.as_deref().map(fold_header)); add_option( "Requires-Python", &self .requires_python .as_ref() .map(|requires_python| requires_python.to_string()), ); add_option("Description-Content-Type", &self.description_content_type); // Project-URL is special // "A string containing a browsable URL for the project and a label for it, separated by a comma." // `Project-URL: Bug Tracker, http://bitbucket.org/tarek/distribute/issues/` for (key, value) in self.project_url.iter() { fields.push(("Project-URL", format!("{key}, {value}"))) } // Description shall be last, so we can ignore RFC822 and just put the description // in the body // The borrow checker doesn't like us using add_option here if let Some(description) = &self.description { fields.push(("Description", description.clone())); } fields .into_iter() .map(|(k, v)| (k.to_string(), v)) .collect() } /// Writes the format for the metadata file inside wheels pub fn to_file_contents(&self) -> Result { let mut fields = self.to_vec(); let mut out = "".to_string(); let body = match fields.last() { Some((key, description)) if key == "Description" => { let desc = description.clone(); fields.pop().unwrap(); Some(desc) } Some((_, _)) => None, None => None, }; for (key, value) in fields { writeln!(out, "{key}: {value}")?; } if let Some(body) = body { writeln!(out, "\n{body}")?; } Ok(out) } /// Returns the distribution name according to PEP 427, Section "Escaping /// and Unicode" pub fn get_distribution_escaped(&self) -> String { let re = Regex::new(r"[^\w\d.]+").unwrap(); re.replace_all(&self.name, "_").to_string() } /// Returns the version encoded according to PEP 427, Section "Escaping /// and Unicode" pub fn get_version_escaped(&self) -> String { self.version.to_string().replace('-', "_") } /// Returns the name of the .dist-info directory as defined in the wheel specification pub fn get_dist_info_dir(&self) -> PathBuf { PathBuf::from(format!( "{}-{}.dist-info", &self.get_distribution_escaped(), &self.get_version_escaped() )) } } /// Escape email addresses with display name if necessary /// according to RFC 822 Section 3.3. "specials". fn escape_email_with_display_name(display_name: &str, email: &str) -> String { if display_name.chars().any(|c| { matches!( c, '(' | ')' | '<' | '>' | '@' | ',' | ';' | ':' | '\\' | '"' | '.' | '[' | ']' ) }) { return format!( "\"{}\" <{email}>", display_name.replace('\\', "\\\\").replace('\"', "\\\"") ); } format!("{display_name} <{email}>") } /// Fold long header field according to RFC 5322 section 2.2.3 /// https://datatracker.ietf.org/doc/html/rfc5322#section-2.2.3 fn fold_header(text: &str) -> String { let mut result = String::with_capacity(text.len()); let options = textwrap::Options::new(78) .initial_indent("") .subsequent_indent("\t"); for (i, line) in textwrap::wrap(text, options).iter().enumerate() { if i > 0 { result.push_str("\r\n"); } let line = line.trim_end(); if line.is_empty() { result.push('\t'); } else { result.push_str(line); } } result } #[cfg(test)] mod test { use super::*; use cargo_metadata::MetadataCommand; use expect_test::{expect, Expect}; use indoc::indoc; use pretty_assertions::assert_eq; fn assert_metadata_from_cargo_toml( readme: &str, cargo_toml: &str, expected: Expect, ) -> Metadata21 { let crate_dir = tempfile::tempdir().unwrap(); let crate_path = crate_dir.path(); let manifest_path = crate_path.join("Cargo.toml"); fs::create_dir(crate_path.join("src")).unwrap(); fs::write(crate_path.join("src/lib.rs"), "").unwrap(); let readme_path = crate_path.join("README.md"); fs::write(&readme_path, readme.as_bytes()).unwrap(); let readme_path = if cfg!(windows) { readme_path.to_str().unwrap().replace('\\', "/") } else { readme_path.to_str().unwrap().to_string() }; let toml_with_path = cargo_toml.replace("REPLACE_README_PATH", &readme_path); fs::write(&manifest_path, toml_with_path).unwrap(); let cargo_metadata = MetadataCommand::new() .manifest_path(manifest_path) .exec() .unwrap(); let metadata = Metadata21::from_cargo_toml(crate_path, &cargo_metadata).unwrap(); let actual = metadata.to_file_contents().unwrap(); expected.assert_eq(&actual); // get_dist_info_dir test checks against hard-coded values - check that they are as expected in the source first assert!( cargo_toml.contains("name = \"info-project\"") && cargo_toml.contains("version = \"0.1.0\""), "cargo_toml name and version string do not match hardcoded values, test will fail", ); metadata } #[test] fn test_metadata_from_cargo_toml() { let readme = indoc!( r#" # Some test package This is the readme for a test package "# ); let cargo_toml = indoc!( r#" [package] authors = ["konstin "] name = "info-project" version = "0.1.0" description = "A test project" homepage = "https://example.org" readme = "REPLACE_README_PATH" keywords = ["ffi", "test"] [lib] crate-type = ["cdylib"] name = "pyo3_pure" "# ); let expected = expect![[r#" Metadata-Version: 2.1 Name: info-project Version: 0.1.0 Summary: A test project Keywords: ffi,test Home-Page: https://example.org Author: konstin Author-email: konstin Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM # Some test package This is the readme for a test package "#]]; assert_metadata_from_cargo_toml(readme, cargo_toml, expected); } #[test] fn test_path_to_content_type() { for (filename, expected) in &[ ("r.md", GFM_CONTENT_TYPE), ("r.markdown", GFM_CONTENT_TYPE), ("r.mArKdOwN", GFM_CONTENT_TYPE), ("r.rst", "text/x-rst; charset=UTF-8"), ("r.somethingelse", PLAINTEXT_CONTENT_TYPE), ("r", PLAINTEXT_CONTENT_TYPE), ] { let result = path_to_content_type(&PathBuf::from(filename)); assert_eq!( &result.as_str(), expected, "Wrong content type for file '{}'. Expected '{}', got '{}'", filename, expected, result ); } } #[test] fn test_merge_metadata_from_pyproject_toml() { let manifest_dir = PathBuf::from("test-crates").join("pyo3-pure"); let cargo_metadata = MetadataCommand::new() .manifest_path(manifest_dir.join("Cargo.toml")) .exec() .unwrap(); let mut metadata = Metadata21::from_cargo_toml(&manifest_dir, &cargo_metadata).unwrap(); let pyproject_toml = PyProjectToml::new(manifest_dir.join("pyproject.toml")).unwrap(); metadata .merge_pyproject_toml(&manifest_dir, &pyproject_toml) .unwrap(); assert_eq!( metadata.summary, Some("Implements a dummy function in Rust".to_string()) ); assert_eq!( metadata.description, Some(fs_err::read_to_string("test-crates/pyo3-pure/README.md").unwrap()) ); assert_eq!(metadata.classifiers, &["Programming Language :: Rust"]); assert_eq!( metadata.maintainer_email, Some("messense ".to_string()) ); assert_eq!(metadata.scripts["get_42"], "pyo3_pure:DummyClass.get_42"); assert_eq!( metadata.gui_scripts["get_42_gui"], "pyo3_pure:DummyClass.get_42" ); assert_eq!(metadata.provides_extra, &["test"]); assert_eq!( metadata.requires_dist, &[ Requirement::from_str("attrs; extra == 'test'",).unwrap(), Requirement::from_str("boltons; (sys_platform == 'win32') and extra == 'test'") .unwrap(), ] ); assert_eq!(metadata.license.as_ref().unwrap(), "MIT"); let license_file = &metadata.license_files[0]; assert_eq!(license_file.file_name().unwrap(), "LICENSE"); let content = metadata.to_file_contents().unwrap(); let pkginfo: Result = content.parse(); assert!(pkginfo.is_ok()); } #[test] fn test_merge_metadata_from_pyproject_toml_with_customized_python_source_dir() { let manifest_dir = PathBuf::from("test-crates").join("pyo3-mixed-py-subdir"); let cargo_metadata = MetadataCommand::new() .manifest_path(manifest_dir.join("Cargo.toml")) .exec() .unwrap(); let mut metadata = Metadata21::from_cargo_toml(&manifest_dir, &cargo_metadata).unwrap(); let pyproject_toml = PyProjectToml::new(manifest_dir.join("pyproject.toml")).unwrap(); metadata .merge_pyproject_toml(&manifest_dir, &pyproject_toml) .unwrap(); // defined in Cargo.toml assert_eq!( metadata.summary, Some("Implements a dummy function combining rust and python".to_string()) ); // defined in pyproject.toml assert_eq!(metadata.scripts["get_42"], "pyo3_mixed_py_subdir:get_42"); } #[test] fn test_implicit_readme() { let manifest_dir = PathBuf::from("test-crates").join("pyo3-mixed"); let cargo_metadata = MetadataCommand::new() .manifest_path(manifest_dir.join("Cargo.toml")) .exec() .unwrap(); let metadata = Metadata21::from_cargo_toml(&manifest_dir, &cargo_metadata).unwrap(); assert!(metadata.description.unwrap().starts_with("# pyo3-mixed")); assert_eq!( metadata.description_content_type.unwrap(), "text/markdown; charset=UTF-8; variant=GFM" ); } #[test] fn test_merge_metadata_from_pyproject_dynamic_license_test() { let manifest_dir = PathBuf::from("test-crates").join("license-test"); let cargo_metadata = MetadataCommand::new() .manifest_path(manifest_dir.join("Cargo.toml")) .exec() .unwrap(); let mut metadata = Metadata21::from_cargo_toml(&manifest_dir, &cargo_metadata).unwrap(); let pyproject_toml = PyProjectToml::new(manifest_dir.join("pyproject.toml")).unwrap(); metadata .merge_pyproject_toml(&manifest_dir, &pyproject_toml) .unwrap(); // verify Cargo.toml value came through assert_eq!(metadata.license.as_ref().unwrap(), "MIT"); // verify we have the total number of expected licenses assert_eq!(4, metadata.license_files.len()); // Verify pyproject.toml license = {file = ...} worked assert_eq!(metadata.license_files[0], manifest_dir.join("LICENCE.txt")); // Verify the default licenses were included assert_eq!(metadata.license_files[1], manifest_dir.join("LICENSE")); assert_eq!(metadata.license_files[2], manifest_dir.join("NOTICE.md")); assert_eq!(metadata.license_files[3], manifest_dir.join("AUTHORS.txt")); } #[test] fn test_escape_email_with_display_name_without_special_characters() { let display_name = "Foo Bar !#$%&'*+-/=?^_`{|}~ 123"; let email = "foobar-123@example.com"; let result = escape_email_with_display_name(display_name, email); assert_eq!( result, "Foo Bar !#$%&'*+-/=?^_`{|}~ 123 " ); } #[test] fn test_escape_email_with_display_name_with_special_characters() { let tests = [ ("Foo ( Bar", "\"Foo ( Bar\""), ("Foo ) Bar", "\"Foo ) Bar\""), ("Foo < Bar", "\"Foo < Bar\""), ("Foo > Bar", "\"Foo > Bar\""), ("Foo @ Bar", "\"Foo @ Bar\""), ("Foo , Bar", "\"Foo , Bar\""), ("Foo ; Bar", "\"Foo ; Bar\""), ("Foo : Bar", "\"Foo : Bar\""), ("Foo \\ Bar", "\"Foo \\\\ Bar\""), ("Foo \" Bar", "\"Foo \\\" Bar\""), ("Foo . Bar", "\"Foo . Bar\""), ("Foo [ Bar", "\"Foo [ Bar\""), ("Foo ] Bar", "\"Foo ] Bar\""), ("Foo ) Bar", "\"Foo ) Bar\""), ("Foo ) Bar", "\"Foo ) Bar\""), ("Foo, Bar", "\"Foo, Bar\""), ]; for (display_name, expected_name) in tests { let email = "foobar-123@example.com"; let result = escape_email_with_display_name(display_name, email); let expected = format!("{expected_name} <{email}>"); assert_eq!(result, expected); } } } python-maturin_1.3.2.orig/src/module_writer.rs0000644000000000000000000013307014525221045016504 0ustar00//! The wheel format is (mostly) specified in PEP 427 use crate::project_layout::ProjectLayout; use crate::target::Os; use crate::{ pyproject_toml::Format, BridgeModel, Metadata21, PyProjectToml, PythonInterpreter, Target, }; use anyhow::{anyhow, bail, Context, Result}; use base64::engine::general_purpose::URL_SAFE_NO_PAD; use base64::Engine; use flate2::write::GzEncoder; use flate2::Compression; use fs_err as fs; use fs_err::File; use ignore::overrides::Override; use ignore::WalkBuilder; use indexmap::IndexMap; use normpath::PathExt as _; use sha2::{Digest, Sha256}; use std::collections::{HashMap, HashSet}; use std::env; use std::ffi::OsStr; use std::fmt::Write as _; #[cfg(unix)] use std::fs::OpenOptions; use std::io; use std::io::{Read, Write}; #[cfg(unix)] use std::os::unix::fs::{OpenOptionsExt, PermissionsExt}; use std::path::{Path, PathBuf}; use std::process::{Command, Output}; use std::str; use tempfile::{tempdir, TempDir}; use tracing::debug; use zip::{self, DateTime, ZipWriter}; /// Allows writing the module to a wheel or add it directly to the virtualenv pub trait ModuleWriter { /// Adds a directory relative to the module base path fn add_directory(&mut self, path: impl AsRef) -> Result<()>; /// Adds a file with bytes as content in target relative to the module base path fn add_bytes(&mut self, target: impl AsRef, bytes: &[u8]) -> Result<()> { debug!("Adding {}", target.as_ref().display()); // 0o644 is the default from the zip crate self.add_bytes_with_permissions(target, bytes, 0o644) } /// Adds a file with bytes as content in target relative to the module base path while setting /// the given unix permissions fn add_bytes_with_permissions( &mut self, target: impl AsRef, bytes: &[u8], permissions: u32, ) -> Result<()>; /// Copies the source file to the target path relative to the module base path fn add_file(&mut self, target: impl AsRef, source: impl AsRef) -> Result<()> { self.add_file_with_permissions(target, source, 0o644) } /// Copies the source file the the target path relative to the module base path while setting /// the given unix permissions fn add_file_with_permissions( &mut self, target: impl AsRef, source: impl AsRef, permissions: u32, ) -> Result<()> { let target = target.as_ref(); let source = source.as_ref(); debug!("Adding {} from {}", target.display(), source.display()); let read_failed_context = format!("Failed to read {}", source.display()); let mut file = File::open(source).context(read_failed_context.clone())?; let mut buffer = Vec::new(); file.read_to_end(&mut buffer).context(read_failed_context)?; self.add_bytes_with_permissions(target, &buffer, permissions) .context(format!("Failed to write to {}", target.display()))?; Ok(()) } } /// A [ModuleWriter] that adds the module somewhere in the filesystem, e.g. in a virtualenv pub struct PathWriter { base_path: PathBuf, record: Vec<(String, String, usize)>, } impl PathWriter { /// Creates a [ModuleWriter] that adds the module to the current virtualenv pub fn venv(target: &Target, venv_dir: &Path, bridge: &BridgeModel) -> Result { let interpreter = PythonInterpreter::check_executable(target.get_venv_python(venv_dir), target, bridge)? .ok_or_else(|| { anyhow!("Expected `python` to be a python interpreter inside a virtualenv ಠ_ಠ") })?; let base_path = interpreter.get_venv_site_package(venv_dir, target); Ok(PathWriter { base_path, record: Vec::new(), }) } /// Writes the module to the given path pub fn from_path(path: impl AsRef) -> Self { Self { base_path: path.as_ref().to_path_buf(), record: Vec::new(), } } /// Removes a directory relative to the base path if it exists. /// /// This is to clean up the contents of an older develop call pub fn delete_dir(&self, relative: impl AsRef) -> Result<()> { let absolute = self.base_path.join(relative); if absolute.exists() { fs::remove_dir_all(&absolute) .context(format!("Failed to remove {}", absolute.display()))?; } Ok(()) } /// Writes the RECORD file after everything else has been written pub fn write_record(self, metadata21: &Metadata21) -> Result<()> { let record_file = self .base_path .join(metadata21.get_dist_info_dir()) .join("RECORD"); let mut buffer = File::create(&record_file).context(format!( "Failed to create a file at {}", record_file.display() ))?; for (filename, hash, len) in self.record { buffer .write_all(format!("{filename},sha256={hash},{len}\n").as_bytes()) .context(format!( "Failed to write to file at {}", record_file.display() ))?; } // Write the record for the RECORD file itself buffer .write_all(format!("{},,\n", record_file.display()).as_bytes()) .context(format!( "Failed to write to file at {}", record_file.display() ))?; Ok(()) } } impl ModuleWriter for PathWriter { fn add_directory(&mut self, path: impl AsRef) -> Result<()> { let target = self.base_path.join(path); debug!("Adding directory {}", target.display()); fs::create_dir_all(target)?; Ok(()) } fn add_bytes_with_permissions( &mut self, target: impl AsRef, bytes: &[u8], _permissions: u32, ) -> Result<()> { let path = self.base_path.join(&target); // We only need to set the executable bit on unix let mut file = { #[cfg(target_family = "unix")] { OpenOptions::new() .create(true) .write(true) .truncate(true) .mode(_permissions) .open(&path) } #[cfg(target_os = "windows")] { File::create(&path) } } .context(format!("Failed to create a file at {}", path.display()))?; file.write_all(bytes) .context(format!("Failed to write to file at {}", path.display()))?; let hash = URL_SAFE_NO_PAD.encode(Sha256::digest(bytes)); self.record.push(( target.as_ref().to_str().unwrap().to_owned(), hash, bytes.len(), )); Ok(()) } } /// A glorified zip builder, mostly useful for writing the record file of a wheel pub struct WheelWriter { zip: ZipWriter, record: Vec<(String, String, usize)>, record_file: PathBuf, wheel_path: PathBuf, excludes: Override, } impl ModuleWriter for WheelWriter { fn add_directory(&mut self, _path: impl AsRef) -> Result<()> { Ok(()) // We don't need to create directories in zip archives } fn add_bytes_with_permissions( &mut self, target: impl AsRef, bytes: &[u8], permissions: u32, ) -> Result<()> { let target = target.as_ref(); if self.exclude(target) { return Ok(()); } // The zip standard mandates using unix style paths let target = target.to_str().unwrap().replace('\\', "/"); // Unlike users which can use the develop subcommand, the tests have to go through // packing a zip which pip than has to unpack. This makes this 2-3 times faster let compression_method = if cfg!(feature = "faster-tests") { zip::CompressionMethod::Stored } else { zip::CompressionMethod::Deflated }; let mut options = zip::write::FileOptions::default() .unix_permissions(permissions) .compression_method(compression_method); let mtime = self.mtime().ok(); if let Some(mtime) = mtime { options = options.last_modified_time(mtime); } self.zip.start_file(target.clone(), options)?; self.zip.write_all(bytes)?; let hash = URL_SAFE_NO_PAD.encode(Sha256::digest(bytes)); self.record.push((target, hash, bytes.len())); Ok(()) } } impl WheelWriter { /// Create a new wheel file which can be subsequently expanded /// /// Adds the .dist-info directory and the METADATA file in it pub fn new( tag: &str, wheel_dir: &Path, metadata21: &Metadata21, tags: &[String], excludes: Override, ) -> Result { let wheel_path = wheel_dir.join(format!( "{}-{}-{}.whl", metadata21.get_distribution_escaped(), metadata21.get_version_escaped(), tag )); let file = File::create(&wheel_path)?; let mut builder = WheelWriter { zip: ZipWriter::new(file), record: Vec::new(), record_file: metadata21.get_dist_info_dir().join("RECORD"), wheel_path, excludes, }; write_dist_info(&mut builder, metadata21, tags)?; Ok(builder) } /// Add a pth file to wheel root for editable installs pub fn add_pth( &mut self, project_layout: &ProjectLayout, metadata21: &Metadata21, ) -> Result<()> { if project_layout.python_module.is_some() || !project_layout.python_packages.is_empty() { let absolute_path = project_layout .python_dir .normalize() .with_context(|| { format!( "failed to normalize path `{}`", project_layout.python_dir.display() ) })? .into_path_buf(); if let Some(python_path) = absolute_path.to_str() { let name = metadata21.get_distribution_escaped(); let target = format!("{name}.pth"); debug!("Adding {} from {}", target, python_path); self.add_bytes(target, python_path.as_bytes())?; } else { eprintln!("âš ï¸ source code path contains non-Unicode sequences, editable installs may not work."); } } Ok(()) } /// Returns `true` if the given path should be excluded fn exclude(&self, path: impl AsRef) -> bool { self.excludes.matched(path.as_ref(), false).is_whitelist() } /// Returns a DateTime representing the value SOURCE_DATE_EPOCH environment variable /// Note that the earliest timestamp a zip file can represent is 1980-01-01 fn mtime(&self) -> Result { let epoch: i64 = env::var("SOURCE_DATE_EPOCH")?.parse()?; let dt = time::OffsetDateTime::from_unix_timestamp(epoch)?; let min_dt = time::Date::from_calendar_date(1980, time::Month::January, 1) .unwrap() .midnight() .assume_offset(time::UtcOffset::UTC); let dt = dt.max(min_dt); let dt = DateTime::try_from(dt).map_err(|_| anyhow!("Failed to build zip DateTime"))?; Ok(dt) } /// Creates the record file and finishes the zip pub fn finish(mut self) -> Result { let compression_method = if cfg!(feature = "faster-tests") { zip::CompressionMethod::Stored } else { zip::CompressionMethod::Deflated }; let mut options = zip::write::FileOptions::default().compression_method(compression_method); let mtime = self.mtime().ok(); if let Some(mtime) = mtime { options = options.last_modified_time(mtime); } let record_filename = self.record_file.to_str().unwrap().replace('\\', "/"); debug!("Adding {}", record_filename); self.zip.start_file(&record_filename, options)?; for (filename, hash, len) in self.record { self.zip .write_all(format!("{filename},sha256={hash},{len}\n").as_bytes())?; } // Write the record for the RECORD file itself self.zip .write_all(format!("{record_filename},,\n").as_bytes())?; self.zip.finish()?; Ok(self.wheel_path) } } /// Creates a .tar.gz archive containing the source distribution pub struct SDistWriter { tar: tar::Builder>>, path: PathBuf, files: HashSet, excludes: Override, } impl ModuleWriter for SDistWriter { fn add_directory(&mut self, _path: impl AsRef) -> Result<()> { Ok(()) } fn add_bytes_with_permissions( &mut self, target: impl AsRef, bytes: &[u8], permissions: u32, ) -> Result<()> { let target = target.as_ref(); if self.exclude(target) { return Ok(()); } if self.files.contains(target) { // Ignore duplicate files return Ok(()); } let mut header = tar::Header::new_gnu(); header.set_size(bytes.len() as u64); header.set_mode(permissions); header.set_cksum(); self.tar .append_data(&mut header, target, bytes) .context(format!( "Failed to add {} bytes to sdist as {}", bytes.len(), target.display() ))?; self.files.insert(target.to_path_buf()); Ok(()) } fn add_file(&mut self, target: impl AsRef, source: impl AsRef) -> Result<()> { let source = source.as_ref(); if self.exclude(source) { return Ok(()); } let target = target.as_ref(); if self.files.contains(target) { // Ignore duplicate files return Ok(()); } debug!("Adding {} from {}", target.display(), source.display()); self.tar .append_path_with_name(source, target) .context(format!( "Failed to add file from {} to sdist as {}", source.display(), target.display(), ))?; self.files.insert(target.to_path_buf()); Ok(()) } } impl SDistWriter { /// Create a source distribution .tar.gz which can be subsequently expanded pub fn new( wheel_dir: impl AsRef, metadata21: &Metadata21, excludes: Override, ) -> Result { let path = wheel_dir .as_ref() .normalize()? .join(format!( "{}-{}.tar.gz", &metadata21.get_distribution_escaped(), &metadata21.get_version_escaped() )) .into_path_buf(); let enc = GzEncoder::new(Vec::new(), Compression::default()); let tar = tar::Builder::new(enc); Ok(Self { tar, path, files: HashSet::new(), excludes, }) } /// Returns `true` if the given path should be excluded fn exclude(&self, path: impl AsRef) -> bool { self.excludes.matched(path.as_ref(), false).is_whitelist() } /// Finished the .tar.gz archive pub fn finish(self) -> Result { let archive = self.tar.into_inner()?; fs::write(&self.path, archive.finish()?)?; Ok(self.path) } } fn wheel_file(tags: &[String]) -> Result { let mut wheel_file = format!( "Wheel-Version: 1.0 Generator: {name} ({version}) Root-Is-Purelib: false ", name = env!("CARGO_PKG_NAME"), version = env!("CARGO_PKG_VERSION"), ); for tag in tags { writeln!(wheel_file, "Tag: {tag}")?; } Ok(wheel_file) } /// https://packaging.python.org/specifications/entry-points/ fn entry_points_txt( entry_type: &str, entrypoints: &IndexMap, ) -> String { entrypoints .iter() .fold(format!("[{entry_type}]\n"), |text, (k, v)| { text + k + "=" + v + "\n" }) } /// Glue code that exposes `lib`. fn cffi_init_file() -> &'static str { r#"__all__ = ["lib", "ffi"] import os from .ffi import ffi lib = ffi.dlopen(os.path.join(os.path.dirname(__file__), 'native.so')) del os "# } /// Wraps some boilerplate around error handling when calling python fn call_python(python: &Path, args: I) -> Result where I: IntoIterator, S: AsRef, { Command::new(python) .args(args) .output() .context(format!("Failed to run python at {:?}", &python)) } /// Checks if user has provided their own header at `target/header.h`, otherwise /// we run cbindgen to generate one. fn cffi_header(crate_dir: &Path, target_dir: &Path, tempdir: &TempDir) -> Result { let maybe_header = target_dir.join("header.h"); if maybe_header.is_file() { eprintln!("💼 Using the existing header at {}", maybe_header.display()); Ok(maybe_header) } else { if crate_dir.join("cbindgen.toml").is_file() { eprintln!( "💼 Using the existing cbindgen.toml configuration. \n\ 💼 Enforcing the following settings: \n \ - language = \"C\" \n \ - no_includes = true \n \ - no include_guard \t (directives are not yet supported) \n \ - no defines \t (directives are not yet supported)" ); } let mut config = cbindgen::Config::from_root_or_default(crate_dir); config.defines = HashMap::new(); config.include_guard = None; let bindings = cbindgen::Builder::new() .with_config(config) .with_crate(crate_dir) .with_language(cbindgen::Language::C) .with_no_includes() .generate() .context("Failed to run cbindgen")?; let header = tempdir.as_ref().join("header.h"); bindings.write_to_file(&header); debug!("Generated header.h at {}", header.display()); Ok(header) } } /// Returns the content of what will become ffi.py by invoking cbindgen and cffi /// /// Checks if user has provided their own header at `target/header.h`, otherwise /// we run cbindgen to generate one. Installs cffi if it's missing and we're inside a virtualenv /// /// We're using the cffi recompiler, which reads the header, translates them into instructions /// how to load the shared library without the header and then writes those instructions to a /// file called `ffi.py`. This `ffi.py` will expose an object called `ffi`. This object is used /// in `__init__.py` to load the shared library into a module called `lib`. pub fn generate_cffi_declarations( crate_dir: &Path, target_dir: &Path, python: &Path, ) -> Result { let tempdir = tempdir()?; let header = cffi_header(crate_dir, target_dir, &tempdir)?; let ffi_py = tempdir.as_ref().join("ffi.py"); // Using raw strings is important because on windows there are path like // `C:\Users\JohnDoe\AppData\Local\TEmpl\pip-wheel-asdf1234` where the \U // would otherwise be a broken unicode escape sequence let cffi_invocation = format!( r#" import cffi from cffi import recompiler ffi = cffi.FFI() with open(r"{header}") as header: ffi.cdef(header.read()) recompiler.make_py_source(ffi, "ffi", r"{ffi_py}") "#, ffi_py = ffi_py.display(), header = header.display(), ); let output = call_python(python, ["-c", &cffi_invocation])?; let install_cffi = if !output.status.success() { // First, check whether the error was cffi not being installed let last_line = str::from_utf8(&output.stderr)?.lines().last().unwrap_or(""); if last_line == "ModuleNotFoundError: No module named 'cffi'" { // Then check whether we're running in a virtualenv. // We don't want to modify any global environment // https://stackoverflow.com/a/42580137/3549270 let output = call_python( python, ["-c", "import sys\nprint(sys.base_prefix != sys.prefix)"], )?; match str::from_utf8(&output.stdout)?.trim() { "True" => true, "False" => false, _ => { eprintln!( "âš ï¸ Failed to determine whether python at {:?} is running inside a virtualenv", &python ); false } } } else { false } } else { false }; // If there was success or an error that was not missing cffi, return here if !install_cffi { return handle_cffi_call_result(python, tempdir, &ffi_py, &output); } eprintln!("âš ï¸ cffi not found. Trying to install it"); // Call pip through python to don't do the wrong thing when python and pip // are coming from different environments let output = call_python( python, [ "-m", "pip", "install", "--disable-pip-version-check", "cffi", ], )?; if !output.status.success() { bail!( "Installing cffi with `{:?} -m pip install cffi` failed: {}\n--- Stdout:\n{}\n--- Stderr:\n{}\n---\nPlease install cffi yourself.", &python, output.status, str::from_utf8(&output.stdout)?, str::from_utf8(&output.stderr)? ); } eprintln!("🎠Installed cffi"); // Try again let output = call_python(python, ["-c", &cffi_invocation])?; handle_cffi_call_result(python, tempdir, &ffi_py, &output) } /// Extracted into a function because this is needed twice fn handle_cffi_call_result( python: &Path, tempdir: TempDir, ffi_py: &Path, output: &Output, ) -> Result { if !output.status.success() { bail!( "Failed to generate cffi declarations using {}: {}\n--- Stdout:\n{}\n--- Stderr:\n{}", python.display(), output.status, str::from_utf8(&output.stdout)?, str::from_utf8(&output.stderr)?, ); } else { // Don't swallow warnings io::stderr().write_all(&output.stderr)?; let ffi_py_content = fs::read_to_string(ffi_py)?; tempdir.close()?; Ok(ffi_py_content) } } /// Copies the shared library into the module, which is the only extra file needed with bindings #[allow(clippy::too_many_arguments)] pub fn write_bindings_module( writer: &mut impl ModuleWriter, project_layout: &ProjectLayout, artifact: &Path, python_interpreter: Option<&PythonInterpreter>, is_abi3: bool, target: &Target, editable: bool, pyproject_toml: Option<&PyProjectToml>, ) -> Result<()> { let ext_name = &project_layout.extension_name; let so_filename = if is_abi3 { if target.is_unix() { format!("{ext_name}.abi3.so") } else { match python_interpreter { Some(python_interpreter) if python_interpreter.is_windows_debug() => { format!("{ext_name}_d.pyd") } // Apparently there is no tag for abi3 on windows _ => format!("{ext_name}.pyd"), } } } else { let python_interpreter = python_interpreter.expect("A python interpreter is required for non-abi3 build"); python_interpreter.get_library_name(ext_name) }; if !editable { write_python_part(writer, project_layout, pyproject_toml) .context("Failed to add the python module to the package")?; } if let Some(python_module) = &project_layout.python_module { if editable { let target = project_layout.rust_module.join(&so_filename); // Remove existing so file to avoid triggering SIGSEV in running process // See https://github.com/PyO3/maturin/issues/758 debug!("Removing {}", target.display()); let _ = fs::remove_file(&target); debug!("Copying {} to {}", artifact.display(), target.display()); fs::copy(artifact, &target).context(format!( "Failed to copy {} to {}", artifact.display(), target.display() ))?; } else { let relative = project_layout .rust_module .strip_prefix(python_module.parent().unwrap()) .unwrap(); writer.add_file_with_permissions(relative.join(&so_filename), artifact, 0o755)?; } } else { let module = PathBuf::from(ext_name); writer.add_directory(&module)?; // Reexport the shared library as if it were the top level module writer.add_bytes( &module.join("__init__.py"), format!( r#"from .{ext_name} import * __doc__ = {ext_name}.__doc__ if hasattr({ext_name}, "__all__"): __all__ = {ext_name}.__all__"# ) .as_bytes(), )?; let type_stub = project_layout.rust_module.join(format!("{ext_name}.pyi")); if type_stub.exists() { eprintln!("📖 Found type stub file at {ext_name}.pyi"); writer.add_file(&module.join("__init__.pyi"), type_stub)?; writer.add_bytes(&module.join("py.typed"), b"")?; } writer.add_file_with_permissions(&module.join(so_filename), artifact, 0o755)?; } Ok(()) } /// Creates the cffi module with the shared library, the cffi declarations and the cffi loader #[allow(clippy::too_many_arguments)] pub fn write_cffi_module( writer: &mut impl ModuleWriter, project_layout: &ProjectLayout, crate_dir: &Path, target_dir: &Path, module_name: &str, artifact: &Path, python: &Path, editable: bool, pyproject_toml: Option<&PyProjectToml>, ) -> Result<()> { let cffi_declarations = generate_cffi_declarations(crate_dir, target_dir, python)?; if !editable { write_python_part(writer, project_layout, pyproject_toml) .context("Failed to add the python module to the package")?; } let module; if let Some(python_module) = &project_layout.python_module { if editable { let base_path = python_module.join(&project_layout.extension_name); fs::create_dir_all(&base_path)?; let target = base_path.join("native.so"); fs::copy(artifact, &target).context(format!( "Failed to copy {} to {}", artifact.display(), target.display() ))?; File::create(base_path.join("__init__.py"))?.write_all(cffi_init_file().as_bytes())?; File::create(base_path.join("ffi.py"))?.write_all(cffi_declarations.as_bytes())?; } let relative = project_layout .rust_module .strip_prefix(python_module.parent().unwrap()) .unwrap(); module = relative.join(&project_layout.extension_name); if !editable { writer.add_directory(&module)?; } } else { module = PathBuf::from(module_name); writer.add_directory(&module)?; let type_stub = project_layout .rust_module .join(format!("{module_name}.pyi")); if type_stub.exists() { eprintln!("📖 Found type stub file at {module_name}.pyi"); writer.add_file(&module.join("__init__.pyi"), type_stub)?; writer.add_bytes(&module.join("py.typed"), b"")?; } }; if !editable || project_layout.python_module.is_none() { writer.add_bytes(&module.join("__init__.py"), cffi_init_file().as_bytes())?; writer.add_bytes(&module.join("ffi.py"), cffi_declarations.as_bytes())?; writer.add_file_with_permissions(&module.join("native.so"), artifact, 0o755)?; } Ok(()) } /// uniffi.toml #[derive(Debug, serde::Deserialize)] struct UniFfiToml { #[serde(default)] bindings: HashMap, } /// `bindings` section of uniffi.toml #[derive(Debug, serde::Deserialize)] struct UniFfiBindingsConfig { cdylib_name: Option, } #[derive(Debug, Clone)] struct UniFfiBindings { name: String, cdylib: String, path: PathBuf, } fn uniffi_bindgen_command(crate_dir: &Path) -> Result { let manifest_path = crate_dir.join("Cargo.toml"); let cargo_metadata = cargo_metadata::MetadataCommand::new() .manifest_path(&manifest_path) // We don't need to resolve the dependency graph .no_deps() .verbose(true) .exec()?; let root_pkg = cargo_metadata.root_package(); let has_uniffi_bindgen_target = root_pkg .map(|pkg| { pkg.targets .iter() .any(|target| target.name == "uniffi-bindgen" && target.is_bin()) }) .unwrap_or(false); let command = if has_uniffi_bindgen_target { let mut command = Command::new("cargo"); command.args(["run", "--bin", "uniffi-bindgen", "--manifest-path"]); command.arg(manifest_path); command } else { Command::new("uniffi-bindgen") }; Ok(command) } fn generate_uniffi_bindings( crate_dir: &Path, target_dir: &Path, target_os: Os, artifact: &Path, ) -> Result { // `binding_dir` must use absolute path because we chdir to `crate_dir` // when running uniffi-bindgen let binding_dir = target_dir .normalize()? .join("maturin") .join("uniffi") .into_path_buf(); fs::create_dir_all(&binding_dir)?; let pattern = crate_dir.join("src").join("*.udl"); let udls = glob::glob(pattern.to_str().unwrap())? .map(|p| p.unwrap()) .collect::>(); let is_library = if udls.is_empty() { true } else if udls.len() > 1 { bail!( "Multiple UDL files found in {}", crate_dir.join("src").display() ); } else { false }; let mut cmd = uniffi_bindgen_command(crate_dir)?; cmd.current_dir(crate_dir); cmd.args([ "generate", "--no-format", "--language", "python", "--out-dir", ]); cmd.arg(&binding_dir); let config_file = crate_dir.join("uniffi.toml"); let mut cdylib_name = None; if config_file.is_file() { let uniffi_toml: UniFfiToml = toml::from_str(&fs::read_to_string(&config_file)?)?; cdylib_name = uniffi_toml .bindings .get("python") .and_then(|py| py.cdylib_name.clone()); if !is_library { cmd.arg("--config"); cmd.arg(config_file); } } let py_binding_name = if is_library { cmd.arg("--library"); cmd.arg(artifact); let file_stem = artifact.file_stem().unwrap().to_str().unwrap(); file_stem .strip_prefix("lib") .unwrap_or(file_stem) .to_string() } else { let udl = &udls[0]; cmd.arg(udl); udl.file_stem().unwrap().to_str().unwrap().to_string() }; debug!("Running {:?}", cmd); let mut child = cmd.spawn().context( "Failed to run uniffi-bindgen, did you install it? Try `pip install uniffi-bindgen`", )?; let exit_status = child.wait().context("Failed to run uniffi-bindgen")?; if !exit_status.success() { bail!("Command {:?} failed", cmd); } let py_binding = binding_dir.join(&py_binding_name).with_extension("py"); // uniffi bindings hardcoded the extension filenames let cdylib_name = match cdylib_name { Some(name) => name, None => format!("uniffi_{py_binding_name}"), }; let cdylib = match target_os { Os::Macos => format!("lib{cdylib_name}.dylib"), Os::Windows => format!("{cdylib_name}.dll"), _ => format!("lib{cdylib_name}.so"), }; Ok(UniFfiBindings { name: py_binding_name, cdylib, path: py_binding, }) } /// Creates the uniffi module with the shared library #[allow(clippy::too_many_arguments)] pub fn write_uniffi_module( writer: &mut impl ModuleWriter, project_layout: &ProjectLayout, crate_dir: &Path, target_dir: &Path, module_name: &str, artifact: &Path, target_os: Os, editable: bool, pyproject_toml: Option<&PyProjectToml>, ) -> Result<()> { let UniFfiBindings { name: binding_name, cdylib, path: uniffi_binding, } = generate_uniffi_bindings(crate_dir, target_dir, target_os, artifact)?; let py_init = format!("from .{binding_name} import * # NOQA\n"); if !editable { write_python_part(writer, project_layout, pyproject_toml) .context("Failed to add the python module to the package")?; } let module; if let Some(python_module) = &project_layout.python_module { if editable { let base_path = python_module.join(&project_layout.extension_name); fs::create_dir_all(&base_path)?; let target = base_path.join(&cdylib); fs::copy(artifact, &target).context(format!( "Failed to copy {} to {}", artifact.display(), target.display() ))?; File::create(base_path.join("__init__.py"))?.write_all(py_init.as_bytes())?; let target = base_path.join(&binding_name).with_extension("py"); fs::copy(&uniffi_binding, &target).context(format!( "Failed to copy {} to {}", uniffi_binding.display(), target.display() ))?; } let relative = project_layout .rust_module .strip_prefix(python_module.parent().unwrap()) .unwrap(); module = relative.join(&project_layout.extension_name); if !editable { writer.add_directory(&module)?; } } else { module = PathBuf::from(module_name); writer.add_directory(&module)?; let type_stub = project_layout .rust_module .join(format!("{module_name}.pyi")); if type_stub.exists() { eprintln!("📖 Found type stub file at {module_name}.pyi"); writer.add_file(&module.join("__init__.pyi"), type_stub)?; writer.add_bytes(&module.join("py.typed"), b"")?; } }; if !editable || project_layout.python_module.is_none() { writer.add_bytes(&module.join("__init__.py"), py_init.as_bytes())?; writer.add_file( module.join(binding_name).with_extension("py"), uniffi_binding, )?; writer.add_file_with_permissions(&module.join(cdylib), artifact, 0o755)?; } Ok(()) } /// Adds a data directory with a scripts directory with the binary inside it pub fn write_bin( writer: &mut impl ModuleWriter, artifact: &Path, metadata: &Metadata21, bin_name: &str, ) -> Result<()> { let data_dir = PathBuf::from(format!( "{}-{}.data", &metadata.get_distribution_escaped(), &metadata.version )) .join("scripts"); writer.add_directory(&data_dir)?; // We can't use add_file since we need to mark the file as executable writer.add_file_with_permissions(&data_dir.join(bin_name), artifact, 0o755)?; Ok(()) } /// Adds a wrapper script that start the wasm binary through wasmtime. /// /// Note that the wasm binary needs to be written separately by [write_bin] pub fn write_wasm_launcher( writer: &mut impl ModuleWriter, metadata: &Metadata21, bin_name: &str, ) -> Result<()> { let entrypoint_script = format!( r#"from pathlib import Path from wasmtime import Store, Module, Engine, WasiConfig, Linker import sysconfig def main(): # The actual executable program_location = Path(sysconfig.get_path("scripts")).joinpath("{bin_name}") # wasmtime-py boilerplate engine = Engine() store = Store(engine) # TODO: is there an option to just get the default of the wasmtime cli here? wasi = WasiConfig() wasi.inherit_argv() wasi.inherit_env() wasi.inherit_stdout() wasi.inherit_stderr() wasi.inherit_stdin() # TODO: Find a real solution here. Maybe there's an always allow callback? # Even fancier would be something configurable in pyproject.toml wasi.preopen_dir(".", ".") store.set_wasi(wasi) linker = Linker(engine) linker.define_wasi() module = Module.from_file(store.engine, str(program_location)) linking1 = linker.instantiate(store, module) # TODO: this is taken from https://docs.wasmtime.dev/api/wasmtime/struct.Linker.html#method.get_default # is this always correct? start = linking1.exports(store).get("") or linking1.exports(store)["_start"] start(store) if __name__ == '__main__': main() "# ); // We can't use add_file since we want to mark the file as executable let launcher_path = Path::new(&metadata.get_distribution_escaped()) .join(bin_name.replace('-', "_")) .with_extension("py"); writer.add_bytes_with_permissions(&launcher_path, entrypoint_script.as_bytes(), 0o755)?; Ok(()) } /// Adds the python part of a mixed project to the writer, pub fn write_python_part( writer: &mut impl ModuleWriter, project_layout: &ProjectLayout, pyproject_toml: Option<&PyProjectToml>, ) -> Result<()> { let python_dir = &project_layout.python_dir; let mut python_packages = Vec::new(); if let Some(python_module) = project_layout.python_module.as_ref() { python_packages.push(python_module.to_path_buf()); } for package in &project_layout.python_packages { let package_path = python_dir.join(package); if python_packages.iter().any(|p| *p == package_path) { continue; } python_packages.push(package_path); } for package in python_packages { for absolute in WalkBuilder::new(package).hidden(false).build() { let absolute = absolute?.into_path(); let relative = absolute.strip_prefix(python_dir).unwrap(); if absolute.is_dir() { writer.add_directory(relative)?; } else { // Ignore native libraries from develop, if any if let Some(extension) = relative.extension() { if extension.to_string_lossy() == "so" { debug!("Ignoring native library {}", relative.display()); continue; } } writer .add_file(relative, &absolute) .context(format!("File to add file from {}", absolute.display()))?; } } } // Include additional files if let Some(pyproject) = pyproject_toml { // FIXME: in src-layout pyproject.toml isn't located directly in python dir let pyproject_dir = python_dir; if let Some(glob_patterns) = pyproject.include() { for pattern in glob_patterns .iter() .filter_map(|glob_pattern| glob_pattern.targets(Format::Wheel)) { eprintln!("📦 Including files matching \"{pattern}\""); for source in glob::glob(&pyproject_dir.join(pattern).to_string_lossy()) .with_context(|| format!("Invalid glob pattern: {pattern}"))? .filter_map(Result::ok) { let target = source.strip_prefix(pyproject_dir)?.to_path_buf(); if source.is_dir() { writer.add_directory(target)?; } else { #[cfg(unix)] let mode = source.metadata()?.permissions().mode(); #[cfg(not(unix))] let mode = 0o644; writer.add_file_with_permissions(target, source, mode)?; } } } } } Ok(()) } /// Creates the .dist-info directory and fills it with all metadata files except RECORD pub fn write_dist_info( writer: &mut impl ModuleWriter, metadata21: &Metadata21, tags: &[String], ) -> Result<()> { let dist_info_dir = metadata21.get_dist_info_dir(); writer.add_directory(&dist_info_dir)?; writer.add_bytes( &dist_info_dir.join("METADATA"), metadata21.to_file_contents()?.as_bytes(), )?; writer.add_bytes(&dist_info_dir.join("WHEEL"), wheel_file(tags)?.as_bytes())?; let mut entry_points = String::new(); if !metadata21.scripts.is_empty() { entry_points.push_str(&entry_points_txt("console_scripts", &metadata21.scripts)); } if !metadata21.gui_scripts.is_empty() { entry_points.push_str(&entry_points_txt("gui_scripts", &metadata21.gui_scripts)); } for (entry_type, scripts) in &metadata21.entry_points { entry_points.push_str(&entry_points_txt(entry_type, scripts)); } if !entry_points.is_empty() { writer.add_bytes( &dist_info_dir.join("entry_points.txt"), entry_points.as_bytes(), )?; } if !metadata21.license_files.is_empty() { let license_files_dir = dist_info_dir.join("license_files"); writer.add_directory(&license_files_dir)?; for path in &metadata21.license_files { let filename = path.file_name().with_context(|| { format!("missing file name for license file {}", path.display()) })?; writer.add_file(license_files_dir.join(filename), path)?; } } Ok(()) } /// If any, copies the data files from the data directory, resolving symlinks to their source. /// We resolve symlinks since we require this rather rigid structure while people might need /// to save or generate the data in other places /// /// See https://peps.python.org/pep-0427/#file-contents pub fn add_data(writer: &mut impl ModuleWriter, data: Option<&Path>) -> Result<()> { let possible_data_dir_names = ["data", "scripts", "headers", "purelib", "platlib"]; if let Some(data) = data { for subdir in fs::read_dir(data).context("Failed to read data dir")? { let subdir = subdir?; let dir_name = subdir .file_name() .to_str() .context("Invalid data dir name")? .to_string(); if !subdir.path().is_dir() || !possible_data_dir_names.contains(&dir_name.as_str()) { bail!( "Invalid data dir entry {}. Possible are directories named {}", subdir.path().display(), possible_data_dir_names.join(", ") ); } debug!("Adding data from {}", subdir.path().display()); (|| { for file in WalkBuilder::new(subdir.path()) .standard_filters(false) .build() { let file = file?; #[cfg(unix)] let mode = file.metadata()?.permissions().mode(); #[cfg(not(unix))] let mode = 0o644; let relative = file.path().strip_prefix(data.parent().unwrap()).unwrap(); if file.path_is_symlink() { // Copy the actual file contents, not the link, so that you can create a // data directory by joining different data sources let source = fs::read_link(file.path())?; writer.add_file_with_permissions( relative, source.parent().unwrap(), mode, )?; } else if file.path().is_file() { writer.add_file_with_permissions(relative, file.path(), mode)?; } else if file.path().is_dir() { writer.add_directory(relative)?; } else { bail!("Can't handle data dir entry {}", file.path().display()); } } Ok(()) })() .with_context(|| format!("Failed to include data from {}", data.display()))? } } Ok(()) } #[cfg(test)] mod tests { use ignore::overrides::OverrideBuilder; use pep440_rs::Version; use super::*; #[test] // The mechanism is the same for wheel_writer fn sdist_writer_excludes() -> Result<(), Box> { let metadata = Metadata21::new("dummy".to_string(), Version::from_release(vec![1, 0])); let perm = 0o777; // No excludes let tmp_dir = TempDir::new()?; let mut writer = SDistWriter::new(&tmp_dir, &metadata, Override::empty())?; assert!(writer.files.is_empty()); writer.add_bytes_with_permissions("test", &[], perm)?; assert_eq!(writer.files.len(), 1); writer.finish()?; tmp_dir.close()?; // A test filter let tmp_dir = TempDir::new()?; let mut excludes = OverrideBuilder::new(&tmp_dir); excludes.add("test*")?; excludes.add("!test2")?; let mut writer = SDistWriter::new(&tmp_dir, &metadata, excludes.build()?)?; writer.add_bytes_with_permissions("test1", &[], perm)?; writer.add_bytes_with_permissions("test3", &[], perm)?; assert!(writer.files.is_empty()); writer.add_bytes_with_permissions("test2", &[], perm)?; assert!(!writer.files.is_empty()); writer.add_bytes_with_permissions("yes", &[], perm)?; assert_eq!(writer.files.len(), 2); writer.finish()?; tmp_dir.close()?; Ok(()) } } python-maturin_1.3.2.orig/src/new_project.rs0000644000000000000000000002047214525221045016143 0ustar00use crate::ci::GenerateCI; use crate::BridgeModel; use anyhow::{bail, Context, Result}; use console::style; use dialoguer::{theme::ColorfulTheme, Select}; use fs_err as fs; use minijinja::{context, Environment}; use std::path::Path; /// Mixed Rust/Python project layout #[derive(Debug, Clone, Copy)] enum ProjectLayout { Mixed { src: bool }, PureRust, } struct ProjectGenerator<'a> { env: Environment<'a>, project_name: String, crate_name: String, bindings: String, layout: ProjectLayout, ci_config: String, overwrite: bool, } impl<'a> ProjectGenerator<'a> { fn new( project_name: String, layout: ProjectLayout, bindings: String, overwrite: bool, ) -> Result { let crate_name = project_name.replace('-', "_"); let mut env = Environment::new(); env.set_keep_trailing_newline(true); env.add_template(".gitignore", include_str!("templates/.gitignore.j2"))?; env.add_template("Cargo.toml", include_str!("templates/Cargo.toml.j2"))?; env.add_template( "pyproject.toml", include_str!("templates/pyproject.toml.j2"), )?; env.add_template("lib.rs", include_str!("templates/lib.rs.j2"))?; env.add_template("main.rs", include_str!("templates/main.rs.j2"))?; env.add_template("build.rs", include_str!("templates/build.rs.j2"))?; env.add_template("__init__.py", include_str!("templates/__init__.py.j2"))?; env.add_template("test_all.py", include_str!("templates/test_all.py.j2"))?; env.add_template("example.udl", include_str!("templates/example.udl.j2"))?; let bridge_model = match bindings.as_str() { "bin" => BridgeModel::Bin(None), "cffi" => BridgeModel::Cffi, "uniffi" => BridgeModel::UniFfi, _ => BridgeModel::Bindings(bindings.clone(), 7), }; let ci_config = GenerateCI::default().generate_github(&project_name, &bridge_model, true)?; Ok(Self { env, project_name, crate_name, bindings, layout, ci_config, overwrite, }) } fn generate(&self, project_path: &Path) -> Result<()> { fs::create_dir_all(project_path)?; self.write_project_file(project_path, ".gitignore")?; self.write_project_file(project_path, "pyproject.toml")?; // CI configuration let gh_action_path = project_path.join(".github").join("workflows"); fs::create_dir_all(&gh_action_path)?; self.write_content(&gh_action_path, "CI.yml", self.ci_config.as_bytes())?; let rust_project = match self.layout { ProjectLayout::Mixed { src } => { let python_dir = if src { project_path.join("src") } else { project_path.join("python") }; let python_project = python_dir.join(&self.crate_name); fs::create_dir_all(&python_project)?; self.write_project_file(&python_project, "__init__.py")?; let test_dir = python_dir.join("tests"); fs::create_dir_all(&test_dir)?; self.write_project_file(&test_dir, "test_all.py")?; if src { project_path.join("rust") } else { project_path.to_path_buf() } } ProjectLayout::PureRust => project_path.to_path_buf(), }; let rust_src = rust_project.join("src"); fs::create_dir_all(&rust_src)?; self.write_project_file(&rust_project, "Cargo.toml")?; if self.bindings == "bin" { self.write_project_file(&rust_src, "main.rs")?; } else { self.write_project_file(&rust_src, "lib.rs")?; if self.bindings == "uniffi" { self.write_project_file(&rust_project, "build.rs")?; self.write_project_file(&rust_src, "example.udl")?; } } Ok(()) } fn render_template(&self, tmpl_name: &str) -> Result { let version_major: usize = env!("CARGO_PKG_VERSION_MAJOR").parse().unwrap(); let version_minor: usize = env!("CARGO_PKG_VERSION_MINOR").parse().unwrap(); let tmpl = self.env.get_template(tmpl_name)?; let out = tmpl.render(context!( name => self.project_name, crate_name => self.crate_name, bindings => self.bindings, mixed_non_src => matches!(self.layout, ProjectLayout::Mixed { src: false }), version_major => version_major, version_minor => version_minor ))?; Ok(out) } fn write_project_file(&self, directory: &Path, file: &str) -> Result<()> { let content = self.render_template(file)?; self.write_content(directory, file, content.as_bytes()) } fn write_content(&self, directory: &Path, file: &str, content: &[u8]) -> Result<()> { let path = directory.join(file); if self.overwrite || !path.exists() { fs::write(path, content)?; } Ok(()) } } /// Options common to `maturin new` and `maturin init`. #[derive(Debug, clap::Parser)] pub struct GenerateProjectOptions { /// Set the resulting package name, defaults to the directory name #[arg(long)] name: Option, /// Use mixed Rust/Python project layout #[arg(long)] mixed: bool, /// Use Python first src layout for mixed Rust/Python project #[arg(long)] src: bool, /// Which kind of bindings to use #[arg( short, long, value_parser = ["pyo3", "rust-cpython", "cffi", "uniffi", "bin"] )] bindings: Option, } /// Generate a new cargo project pub fn new_project(path: String, options: GenerateProjectOptions) -> Result<()> { let project_path = Path::new(&path); if project_path.exists() { bail!("destination `{}` already exists", project_path.display()); } generate_project(project_path, options, true)?; eprintln!( " ✨ {} {} {}", style("Done!").bold().green(), style("New project created").bold(), style(&project_path.display()).underlined() ); Ok(()) } /// Generate a new cargo project in an existing directory pub fn init_project(path: Option, options: GenerateProjectOptions) -> Result<()> { let project_path = path .map(Into::into) .map_or_else(std::env::current_dir, Ok)?; if project_path.join("pyproject.toml").exists() || project_path.join("Cargo.toml").exists() { bail!("`maturin init` cannot be run on existing projects"); } generate_project(&project_path, options, false)?; eprintln!( " ✨ {} {} {}", style("Done!").bold().green(), style("Initialized project").bold(), style(&project_path.display()).underlined() ); Ok(()) } fn generate_project( project_path: &Path, options: GenerateProjectOptions, overwrite: bool, ) -> Result<()> { let name = if let Some(name) = options.name { name } else { let file_name = project_path.file_name().with_context(|| { format!("Failed to get name from path '{}'", project_path.display()) })?; file_name .to_str() .context("Filename isn't valid Unicode")? .to_string() }; let bindings_items = if options.mixed { vec!["pyo3", "rust-cpython", "cffi", "uniffi"] } else { vec!["pyo3", "rust-cpython", "cffi", "uniffi", "bin"] }; let bindings = if let Some(bindings) = options.bindings { bindings } else { let selection = Select::with_theme(&ColorfulTheme::default()) .with_prompt(format!( "🤷 {}\n 📖 {}", style("Which kind of bindings to use?").bold(), style("Documentation: https://maturin.rs/bindings.html").dim() )) .items(&bindings_items) .default(0) .interact()?; bindings_items[selection].to_string() }; let layout = if options.mixed { ProjectLayout::Mixed { src: options.src } } else { ProjectLayout::PureRust }; let generator = ProjectGenerator::new(name, layout, bindings, overwrite)?; generator.generate(project_path) } python-maturin_1.3.2.orig/src/project_layout.rs0000644000000000000000000004017614525221045016672 0ustar00use crate::build_options::{extract_cargo_metadata_args, CargoOptions}; use crate::{CargoToml, Metadata21, PyProjectToml}; use anyhow::{bail, format_err, Context, Result}; use cargo_metadata::{Metadata, MetadataCommand}; use normpath::PathExt as _; use std::collections::HashSet; use std::env; use std::io; use std::path::{Path, PathBuf}; use tracing::debug; const PYPROJECT_TOML: &str = "pyproject.toml"; /// Whether this project is pure rust or rust mixed with python and whether it has wheel data #[derive(Clone, Debug, PartialEq, Eq)] pub struct ProjectLayout { /// Contains the absolute path to the python source directory pub python_dir: PathBuf, /// Contains the canonicalized (i.e. absolute) path to the python part of the project /// If none, we have a rust crate compiled into a shared library with only some glue python for cffi /// If some, we have a python package that is extended by a native rust module. pub python_module: Option, /// Python packages to include pub python_packages: Vec, /// Contains the canonicalized (i.e. absolute) path to the rust part of the project pub rust_module: PathBuf, /// Rust extension name pub extension_name: String, /// The location of the wheel data, if any pub data: Option, } /// Project resolver #[derive(Clone, Debug)] pub struct ProjectResolver { /// Project layout pub project_layout: ProjectLayout, /// Cargo.toml path pub cargo_toml_path: PathBuf, /// Parsed Cargo.toml pub cargo_toml: CargoToml, /// pyproject.toml path pub pyproject_toml_path: PathBuf, /// Parsed pyproject.toml pub pyproject_toml: Option, /// Rust module name pub module_name: String, /// Python Package Metadata 2.1 pub metadata21: Metadata21, /// Cargo options pub cargo_options: CargoOptions, /// Cargo.toml as resolved by [cargo_metadata] pub cargo_metadata: Metadata, /// maturin options specified in pyproject.toml pub pyproject_toml_maturin_options: Vec<&'static str>, } impl ProjectResolver { /// Resolve project layout pub fn resolve( cargo_manifest_path: Option, mut cargo_options: CargoOptions, ) -> Result { let (manifest_file, pyproject_file) = Self::resolve_manifest_paths(cargo_manifest_path, &cargo_options)?; if !manifest_file.is_file() { bail!( "{} is not the path to a Cargo.toml", manifest_file.display() ); } // Sanity checks in debug build debug_assert!( manifest_file.is_absolute(), "manifest_file {} is not absolute", manifest_file.display() ); debug_assert!( pyproject_file.is_absolute(), "pyproject_file {} is not absolute", pyproject_file.display() ); // Set Cargo manifest path cargo_options.manifest_path = Some(manifest_file.clone()); let cargo_toml = CargoToml::from_path(&manifest_file)?; cargo_toml.check_removed_python_metadata()?; let manifest_dir = manifest_file.parent().unwrap(); let pyproject_toml: Option = if pyproject_file.is_file() { let pyproject = PyProjectToml::new(&pyproject_file)?; pyproject.warn_bad_maturin_version(); pyproject.warn_missing_build_backend(); Some(pyproject) } else { None }; let pyproject = pyproject_toml.as_ref(); let tool_maturin = pyproject.and_then(|p| p.maturin()); let pyproject_toml_maturin_options = if let Some(tool_maturin) = tool_maturin { cargo_options.merge_with_pyproject_toml(tool_maturin.clone()) } else { Vec::new() }; let cargo_metadata = Self::resolve_cargo_metadata(&manifest_file, &cargo_options)?; let mut metadata21 = Metadata21::from_cargo_toml(manifest_dir, &cargo_metadata) .context("Failed to parse Cargo.toml into python metadata")?; if let Some(pyproject) = pyproject { let pyproject_dir = pyproject_file.parent().unwrap(); metadata21.merge_pyproject_toml(pyproject_dir, pyproject)?; } let crate_name = &cargo_toml.package.name; // If the package name contains minuses, you must declare a module with // underscores as lib name // Precedence: // * Explicitly declared pyproject.toml `tool.maturin.module-name` // * Cargo.toml `lib.name` // * pyproject.toml `project.name` // * Cargo.toml `package.name` let module_name = pyproject .and_then(|x| x.module_name()) .or(cargo_toml.lib.as_ref().and_then(|lib| lib.name.as_deref())) .or(pyproject .and_then(|pyproject| pyproject.project.as_ref()) .map(|project| project.name.as_str())) .unwrap_or(crate_name) .to_owned(); let project_root = if pyproject_file.is_file() { pyproject_file.parent().unwrap_or(manifest_dir) } else { manifest_dir }; let python_packages = pyproject .and_then(|x| x.python_packages()) .unwrap_or_default() .to_vec(); let py_root = match pyproject.and_then(|x| x.python_source()) { Some(py_src) => project_root.join(py_src), None => match pyproject.and_then(|x| x.project_name()) { Some(project_name) => { // Detect src layout let rust_cargo_toml_found = project_root.join("rust").join("Cargo.toml").is_file(); let import_name = project_name.replace('-', "_"); let mut package_init = HashSet::new(); package_init.insert( project_root .join("src") .join(import_name) .join("__init__.py"), ); for package in &python_packages { package_init .insert(project_root.join("src").join(package).join("__init__.py")); } let python_src_found = package_init.iter().any(|x| x.is_file()); if rust_cargo_toml_found && python_src_found { project_root.join("src") } else { project_root.to_path_buf() } } None => project_root.to_path_buf(), }, }; let data = pyproject.and_then(|x| x.data()).map(|data| { if data.is_absolute() { data.to_path_buf() } else { project_root.join(data) } }); let custom_python_source = pyproject.and_then(|x| x.python_source()).is_some(); let project_layout = ProjectLayout::determine( project_root, &module_name, py_root, python_packages, data, custom_python_source, )?; Ok(Self { project_layout, cargo_toml_path: manifest_file, cargo_toml, pyproject_toml_path: pyproject_file, pyproject_toml, module_name, metadata21, cargo_options, cargo_metadata, pyproject_toml_maturin_options, }) } /// Get cargo manifest file path and pyproject.toml path fn resolve_manifest_paths( cargo_manifest_path: Option, cargo_options: &CargoOptions, ) -> Result<(PathBuf, PathBuf)> { // use command line argument if specified if let Some(path) = cargo_manifest_path { let path = path .normalize() .with_context(|| format!("failed to normalize path `{}`", path.display()))? .into_path_buf(); debug!( "Using cargo manifest path from command line argument: {:?}", path ); let workspace_root = Self::resolve_cargo_metadata(&path, cargo_options)?.workspace_root; let workspace_parent = workspace_root.parent().unwrap_or(&workspace_root); for parent in path.ancestors().skip(1) { // Allow looking outside to the parent directory of Cargo workspace root if !dunce::simplified(parent).starts_with(workspace_parent) { break; } let pyproject_file = parent.join(PYPROJECT_TOML); if pyproject_file.is_file() { debug!("Found pyproject.toml at {:?}", pyproject_file); return Ok((path, pyproject_file)); } } let pyproject_file = path.parent().unwrap().join(PYPROJECT_TOML); debug!("Trying pyproject.toml at {:?}", pyproject_file); return Ok((path, pyproject_file)); } // check `manifest-path` option in pyproject.toml let current_dir = env::current_dir() .context("Failed to detect current directory ಠ_ಠ")? .normalize()? .into_path_buf(); let pyproject_file = current_dir.join(PYPROJECT_TOML); if pyproject_file.is_file() { debug!( "Found pyproject.toml in working directory at {:?}", pyproject_file ); let pyproject = PyProjectToml::new(&pyproject_file)?; if let Some(path) = pyproject.manifest_path() { debug!("Using cargo manifest path from pyproject.toml {:?}", path); return Ok(( path.normalize() .with_context(|| format!("failed to normalize path `{}`", path.display()))? .into_path_buf(), pyproject_file, )); } else { // Detect src layout: // // my-project // ├── README.md // ├── pyproject.toml // ├── src // │ └── my_project // │ ├── __init__.py // │ └── bar.py // └── rust // ├── Cargo.toml // └── src // └── lib.rs let path = current_dir.join("rust").join("Cargo.toml"); if path.is_file() { debug!("Python first src-layout detected"); if pyproject.python_source().is_some() { // python source directory is specified in pyproject.toml return Ok((path, pyproject_file)); } else if let Some(project_name) = pyproject.project_name() { // Check if python source directory in `src/` let import_name = project_name.replace('-', "_"); let mut package_init = HashSet::new(); package_init.insert( current_dir .join("src") .join(import_name) .join("__init__.py"), ); for package in pyproject.python_packages().unwrap_or_default() { package_init .insert(current_dir.join("src").join(package).join("__init__.py")); } if package_init.iter().any(|x| x.is_file()) { return Ok((path, pyproject_file)); } } } } } // check Cargo.toml in current directory let path = current_dir.join("Cargo.toml"); if path.exists() { debug!( "Using cargo manifest path from working directory: {:?}", path ); Ok((path, current_dir.join(PYPROJECT_TOML))) } else { Err(format_err!( "Can't find {} (in {})", path.display(), current_dir.display() )) } } fn resolve_cargo_metadata( manifest_path: &Path, cargo_options: &CargoOptions, ) -> Result { debug!("Resolving cargo metadata from {:?}", manifest_path); let cargo_metadata_extra_args = extract_cargo_metadata_args(cargo_options)?; let result = MetadataCommand::new() .manifest_path(manifest_path) .verbose(true) .other_options(cargo_metadata_extra_args) .exec(); let cargo_metadata = match result { Ok(cargo_metadata) => cargo_metadata, Err(cargo_metadata::Error::Io(inner)) if inner.kind() == io::ErrorKind::NotFound => { // NotFound is the specific error when cargo is not in PATH return Err(inner) .context("Cargo metadata failed. Do you have cargo in your PATH?"); } Err(err) => { return Err(err) .context("Cargo metadata failed. Does your crate compile with `cargo build`?"); } }; Ok(cargo_metadata) } } impl ProjectLayout { /// Checks whether a python module exists besides Cargo.toml with the right name fn determine( project_root: &Path, module_name: &str, python_root: PathBuf, python_packages: Vec, data: Option, custom_python_source: bool, ) -> Result { // A dot in the module name means the extension module goes into the module folder specified by the path let parts: Vec<&str> = module_name.split('.').collect(); let (python_module, rust_module, extension_name) = if parts.len() > 1 { let mut rust_module = python_root.clone(); rust_module.extend(&parts[0..parts.len() - 1]); ( python_root.join(parts[0]), rust_module, parts[parts.len() - 1].to_string(), ) } else { ( python_root.join(module_name), python_root.join(module_name), module_name.to_string(), ) }; debug!( project_root = %project_root.display(), python_dir = %python_root.display(), rust_module = %rust_module.display(), python_module = %python_module.display(), extension_name = %extension_name, module_name = %module_name, "Project layout resolved" ); let data = if let Some(data) = data { if !data.is_dir() { bail!("No such data directory {}", data.display()); } Some(data) } else if project_root.join(format!("{module_name}.data")).is_dir() { Some(project_root.join(format!("{module_name}.data"))) } else { None }; if python_module.is_dir() { eprintln!("🹠Building a mixed python/rust project"); Ok(ProjectLayout { python_dir: python_root, python_packages, python_module: Some(python_module), rust_module, extension_name, data, }) } else { if custom_python_source { eprintln!( "âš ï¸ Warning: You specified the python source as {}, but the python module at \ {} is missing. No python module will be included.", python_root.display(), python_module.display() ); } Ok(ProjectLayout { python_dir: python_root, python_packages, python_module: None, rust_module: project_root.to_path_buf(), extension_name, data, }) } } } python-maturin_1.3.2.orig/src/pyproject_toml.rs0000644000000000000000000004766514525221045016713 0ustar00//! A pyproject.toml as specified in PEP 517 use crate::PlatformTag; use anyhow::{Context, Result}; use fs_err as fs; use pep440_rs::Version; use pep508_rs::VersionOrUrl; use pyproject_toml::{BuildSystem, Project}; use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::path::{Path, PathBuf}; use std::str::FromStr; /// The `[tool]` section of a pyproject.toml #[derive(Serialize, Deserialize, Debug, Clone, Default)] #[serde(rename_all = "kebab-case")] pub struct Tool { /// maturin options pub maturin: Option, } #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] #[serde(rename_all = "lowercase")] /// The target format for the include or exclude [GlobPattern]. /// /// See [Formats]. pub enum Format { /// Source distribution Sdist, /// Wheel Wheel, } #[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] #[serde(untagged)] /// A single [Format] or multiple [Format] values for a [GlobPattern]. pub enum Formats { /// A single [Format] value Single(Format), /// Multiple [Format] values Multiple(Vec), } impl Formats { /// Returns `true` if the inner [Format] value(s) target the given [Format] pub fn targets(&self, format: Format) -> bool { match self { Self::Single(val) if val == &format => true, Self::Multiple(formats) if formats.contains(&format) => true, _ => false, } } } #[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] #[serde(untagged)] /// A glob pattern for the include and exclude configuration. /// /// See [PyProjectToml::include] and [PyProject::exclude]. /// /// Based on . pub enum GlobPattern { /// A glob Path(String), /// A glob `path` with a `format` key to specify one or more [Format] values WithFormat { /// A glob path: String, /// One or more [Format] values format: Formats, }, } impl GlobPattern { /// Returns the glob pattern for this pattern if it targets the given [Format], else this returns `None`. pub fn targets(&self, format: Format) -> Option<&str> { match self { // Not specified defaults to both Self::Path(ref glob) => Some(glob), Self::WithFormat { path, format: formats, } if formats.targets(format) => Some(path), _ => None, } } } /// Cargo compile target #[derive(Serialize, Deserialize, Debug, Clone, Default)] #[serde(rename_all = "kebab-case")] pub struct CargoTarget { /// Name as given in the `Cargo.toml` or generated from the file name pub name: String, /// Kind of target ("bin", "lib") pub kind: Option, // TODO: Add bindings option // Bridge model, which kind of bindings to use // pub bindings: Option, } /// Target configuration #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] pub struct TargetConfig { /// macOS deployment target version #[serde(alias = "macosx-deployment-target")] pub macos_deployment_target: Option, } /// Source distribution generator #[derive(Serialize, Deserialize, Debug, Clone, Copy, Default)] #[serde(rename_all = "kebab-case")] pub enum SdistGenerator { /// Use `cargo package --list` #[default] Cargo, /// Use `git ls-files` Git, } /// The `[tool.maturin]` section of a pyproject.toml #[derive(Serialize, Deserialize, Debug, Clone, Default)] #[serde(rename_all = "kebab-case")] pub struct ToolMaturin { // maturin specific options /// Module name, accepts setuptools style import name like `foo.bar` pub module_name: Option, /// Include files matching the given glob pattern(s) pub include: Option>, /// Exclude files matching the given glob pattern(s) pub exclude: Option>, /// Bindings type pub bindings: Option, /// Platform compatibility #[serde(alias = "manylinux")] pub compatibility: Option, /// Skip audit wheel #[serde(default)] pub skip_auditwheel: bool, /// Strip the final binary #[serde(default)] pub strip: bool, /// Source distribution generator #[serde(default)] pub sdist_generator: SdistGenerator, /// The directory with python module, contains `/__init__.py` pub python_source: Option, /// Python packages to include pub python_packages: Option>, /// Path to the wheel directory, defaults to `.data` pub data: Option, /// Cargo compile targets pub targets: Option>, /// Target configuration #[serde(default, rename = "target")] pub target_config: HashMap, // Some customizable cargo options /// Build artifacts with the specified Cargo profile pub profile: Option, /// Space or comma separated list of features to activate pub features: Option>, /// Activate all available features pub all_features: Option, /// Do not activate the `default` feature pub no_default_features: Option, /// Path to Cargo.toml pub manifest_path: Option, /// Require Cargo.lock and cache are up to date pub frozen: Option, /// Require Cargo.lock is up to date pub locked: Option, /// Override a configuration value (unstable) pub config: Option>, /// Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details pub unstable_flags: Option>, /// Additional rustc arguments pub rustc_args: Option>, } /// A pyproject.toml as specified in PEP 517 #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] pub struct PyProjectToml { /// Build-related data pub build_system: BuildSystem, /// Project metadata pub project: Option, /// PEP 518: The `[tool]` table is where any tool related to your Python project, not just build /// tools, can have users specify configuration data as long as they use a sub-table within /// `[tool]`, e.g. the flit tool would store its configuration in `[tool.flit]`. /// /// We use it for `[tool.maturin]` pub tool: Option, } impl PyProjectToml { /// Returns the contents of a pyproject.toml with a `[build-system]` entry or an error /// /// Does no specific error handling because it's only used to check whether or not to build /// source distributions pub fn new(pyproject_file: impl AsRef) -> Result { let path = pyproject_file.as_ref(); let contents = fs::read_to_string(path)?; let pyproject = toml::from_str(&contents).with_context(|| { format!( "pyproject.toml at {} is invalid", pyproject_file.as_ref().display() ) })?; Ok(pyproject) } /// Returns the value of `[project.name]` in pyproject.toml pub fn project_name(&self) -> Option<&str> { self.project.as_ref().map(|project| project.name.as_str()) } /// Returns the values of `[tool.maturin]` in pyproject.toml #[inline] pub fn maturin(&self) -> Option<&ToolMaturin> { self.tool.as_ref()?.maturin.as_ref() } /// Returns the value of `[tool.maturin.module-name]` in pyproject.toml pub fn module_name(&self) -> Option<&str> { self.maturin()?.module_name.as_deref() } /// Returns the value of `[tool.maturin.include]` in pyproject.toml pub fn include(&self) -> Option<&[GlobPattern]> { self.maturin()?.include.as_ref().map(AsRef::as_ref) } /// Returns the value of `[tool.maturin.exclude]` in pyproject.toml pub fn exclude(&self) -> Option<&[GlobPattern]> { self.maturin()?.exclude.as_ref().map(AsRef::as_ref) } /// Returns the value of `[tool.maturin.bindings]` in pyproject.toml pub fn bindings(&self) -> Option<&str> { self.maturin()?.bindings.as_deref() } /// Returns the value of `[tool.maturin.compatibility]` in pyproject.toml pub fn compatibility(&self) -> Option { self.maturin()?.compatibility } /// Returns the value of `[tool.maturin.skip-auditwheel]` in pyproject.toml pub fn skip_auditwheel(&self) -> bool { self.maturin() .map(|maturin| maturin.skip_auditwheel) .unwrap_or_default() } /// Returns the value of `[tool.maturin.strip]` in pyproject.toml pub fn strip(&self) -> bool { self.maturin() .map(|maturin| maturin.strip) .unwrap_or_default() } /// Returns the value of `[tool.maturin.sdist-generator]` in pyproject.toml pub fn sdist_generator(&self) -> SdistGenerator { self.maturin() .map(|maturin| maturin.sdist_generator) .unwrap_or_default() } /// Returns the value of `[tool.maturin.python-source]` in pyproject.toml pub fn python_source(&self) -> Option<&Path> { self.maturin() .and_then(|maturin| maturin.python_source.as_deref()) } /// Returns the value of `[tool.maturin.python-packages]` in pyproject.toml pub fn python_packages(&self) -> Option<&[String]> { self.maturin() .and_then(|maturin| maturin.python_packages.as_deref()) } /// Returns the value of `[tool.maturin.data]` in pyproject.toml pub fn data(&self) -> Option<&Path> { self.maturin().and_then(|maturin| maturin.data.as_deref()) } /// Returns the value of `[tool.maturin.targets]` in pyproject.toml pub fn targets(&self) -> Option> { self.maturin().and_then(|maturin| maturin.targets.clone()) } /// Returns the value of `[tool.maturin.target.]` in pyproject.toml pub fn target_config(&self, target: &str) -> Option<&TargetConfig> { self.maturin() .and_then(|maturin| maturin.target_config.get(target)) } /// Returns the value of `[tool.maturin.manifest-path]` in pyproject.toml pub fn manifest_path(&self) -> Option<&Path> { self.maturin()?.manifest_path.as_deref() } /// Warn about `build-system.requires` mismatching expectations. /// /// Having a pyproject.toml without a version constraint is a bad idea /// because at some point we'll have to do breaking changes and then source /// distributions would break. /// /// The second problem we check for is the current maturin version not matching the constraint. /// /// Returns false if a warning was emitted. pub fn warn_bad_maturin_version(&self) -> bool { let maturin = env!("CARGO_PKG_NAME"); let current_major = env!("CARGO_PKG_VERSION_MAJOR").parse::().unwrap(); let self_version = Version::from_str(env!("CARGO_PKG_VERSION")).unwrap(); let requires_maturin = self .build_system .requires .iter() .find(|x| x.name == maturin); if let Some(requires_maturin) = requires_maturin { match requires_maturin.version_or_url.as_ref() { Some(VersionOrUrl::VersionSpecifier(version_specifier)) => { if !version_specifier.contains(&self_version) { eprintln!( "âš ï¸ Warning: You specified {requires_maturin} in pyproject.toml under \ `build-system.requires`, but the current {maturin} version is {version}", requires_maturin = requires_maturin, maturin = maturin, version = self_version, ); return false; } } Some(VersionOrUrl::Url(_)) => { // We can't check this } None => { eprintln!( "âš ï¸ Warning: Please use {maturin} in pyproject.toml with a version constraint, \ e.g. `requires = [\"{maturin}>={current}.0,<{next}.0\"]`. \ This will become an error.", maturin = maturin, current = current_major, next = current_major + 1, ); return false; } } } true } /// Having a pyproject.toml without `build-backend` set to `maturin` /// may result in build errors when build from source distribution /// /// Returns true if the pyproject.toml has `build-backend` set to `maturin` pub fn warn_missing_build_backend(&self) -> bool { let maturin = env!("CARGO_PKG_NAME"); if self.build_system.build_backend.as_deref() != Some(maturin) { eprintln!( "âš ï¸ Warning: `build-backend` in pyproject.toml is not set to `{maturin}`, \ packaging tools such as pip will not use maturin to build this project." ); return false; } true } } #[cfg(test)] mod tests { use crate::{ pyproject_toml::{Format, Formats, GlobPattern, ToolMaturin}, PyProjectToml, }; use expect_test::expect; use fs_err as fs; use indoc::indoc; use pretty_assertions::assert_eq; use std::path::Path; use tempfile::TempDir; #[test] fn test_parse_tool_maturin() { let tmp_dir = TempDir::new().unwrap(); let pyproject_file = tmp_dir.path().join("pyproject.toml"); fs::write( &pyproject_file, r#"[build-system] requires = ["maturin"] build-backend = "maturin" [tool.maturin] manylinux = "2010" python-packages = ["foo", "bar"] manifest-path = "Cargo.toml" profile = "dev" features = ["foo", "bar"] no-default-features = true locked = true rustc-args = ["-Z", "unstable-options"] [[tool.maturin.targets]] name = "pyo3_pure" kind = "lib" bindings = "pyo3" [tool.maturin.target."x86_64-apple-darwin"] macos-deployment-target = "10.12" "#, ) .unwrap(); let pyproject = PyProjectToml::new(pyproject_file).unwrap(); assert_eq!(pyproject.manifest_path(), Some(Path::new("Cargo.toml"))); let maturin = pyproject.maturin().unwrap(); assert_eq!(maturin.profile.as_deref(), Some("dev")); assert_eq!( maturin.features, Some(vec!["foo".to_string(), "bar".to_string()]) ); assert!(maturin.all_features.is_none()); assert_eq!(maturin.no_default_features, Some(true)); assert_eq!(maturin.locked, Some(true)); assert!(maturin.frozen.is_none()); assert_eq!( maturin.rustc_args, Some(vec!["-Z".to_string(), "unstable-options".to_string()]) ); assert_eq!( maturin.python_packages, Some(vec!["foo".to_string(), "bar".to_string()]) ); let targets = maturin.targets.as_ref().unwrap(); assert_eq!("pyo3_pure", targets[0].name); let target_config = pyproject.target_config("x86_64-apple-darwin").unwrap(); assert_eq!( target_config.macos_deployment_target.as_deref(), Some("10.12") ); } #[test] fn test_warn_missing_maturin_version() { let with_constraint = PyProjectToml::new("test-crates/pyo3-pure/pyproject.toml").unwrap(); assert!(with_constraint.warn_bad_maturin_version()); let without_constraint_dir = TempDir::new().unwrap(); let pyproject_file = without_constraint_dir.path().join("pyproject.toml"); fs::write( &pyproject_file, r#"[build-system] requires = ["maturin"] build-backend = "maturin" [tool.maturin] manylinux = "2010" "#, ) .unwrap(); let without_constraint = PyProjectToml::new(pyproject_file).unwrap(); assert!(!without_constraint.warn_bad_maturin_version()); } #[test] fn test_warn_incorrect_maturin_version() { let without_constraint_dir = TempDir::new().unwrap(); let pyproject_file = without_constraint_dir.path().join("pyproject.toml"); fs::write( &pyproject_file, r#"[build-system] requires = ["maturin==0.0.1"] build-backend = "maturin" [tool.maturin] manylinux = "2010" "#, ) .unwrap(); let without_constraint = PyProjectToml::new(pyproject_file).unwrap(); assert!(!without_constraint.warn_bad_maturin_version()); } #[test] fn deserialize_include_exclude() { let single = r#"include = ["single"]"#; assert_eq!( toml::from_str::(single).unwrap().include, Some(vec![GlobPattern::Path("single".to_string())]) ); let multiple = r#"include = ["one", "two"]"#; assert_eq!( toml::from_str::(multiple).unwrap().include, Some(vec![ GlobPattern::Path("one".to_string()), GlobPattern::Path("two".to_string()) ]) ); let single_format = r#"include = [{path = "path", format="sdist"}]"#; assert_eq!( toml::from_str::(single_format) .unwrap() .include, Some(vec![GlobPattern::WithFormat { path: "path".to_string(), format: Formats::Single(Format::Sdist) },]) ); let multiple_formats = r#"include = [{path = "path", format=["sdist", "wheel"]}]"#; assert_eq!( toml::from_str::(multiple_formats) .unwrap() .include, Some(vec![GlobPattern::WithFormat { path: "path".to_string(), format: Formats::Multiple(vec![Format::Sdist, Format::Wheel]) },]) ); let mixed = r#"include = ["one", {path = "two", format="sdist"}, {path = "three", format=["sdist", "wheel"]}]"#; assert_eq!( toml::from_str::(mixed).unwrap().include, Some(vec![ GlobPattern::Path("one".to_string()), GlobPattern::WithFormat { path: "two".to_string(), format: Formats::Single(Format::Sdist), }, GlobPattern::WithFormat { path: "three".to_string(), format: Formats::Multiple(vec![Format::Sdist, Format::Wheel]) } ]) ); } #[test] fn test_gh_1615() { let source = indoc!( r#"[build-system] requires = [ "maturin>=0.14", "numpy", "wheel", "patchelf",] build-backend = "maturin" [project] name = "..." license-files = [ "license.txt",] requires-python = ">=3.8" requires-dist = [ "maturin>=0.14", "...",] dependencies = [ "packaging", "...",] zip-safe = false version = "..." readme = "..." description = "..." classifiers = [ "...",] "# ); let temp_dir = TempDir::new().unwrap(); let pyproject_toml = temp_dir.path().join("pyproject.toml"); fs::write(&pyproject_toml, source).unwrap(); let outer_error = PyProjectToml::new(&pyproject_toml).unwrap_err(); let inner_error = outer_error.source().unwrap(); let expected = expect![[r#" TOML parse error at line 7, column 17 | 7 | license-files = [ "license.txt",] | ^^^^^^^^^^^^^^^^^ wanted string or table "#]]; expected.assert_eq(&inner_error.to_string()); } } python-maturin_1.3.2.orig/src/python_interpreter/0000755000000000000000000000000014234502117017214 5ustar00python-maturin_1.3.2.orig/src/source_distribution.rs0000644000000000000000000006372614525221045017734 0ustar00use crate::module_writer::{add_data, ModuleWriter}; use crate::pyproject_toml::SdistGenerator; use crate::{pyproject_toml::Format, BuildContext, PyProjectToml, SDistWriter}; use anyhow::{bail, Context, Result}; use cargo_metadata::{Metadata, MetadataCommand}; use fs_err as fs; use ignore::overrides::Override; use normpath::PathExt as _; use path_slash::PathExt as _; use std::collections::HashMap; use std::path::{Path, PathBuf}; use std::process::Command; use std::str; use tracing::debug; /// Path dependency information. /// It may be in a different workspace than the root crate. /// /// ```toml /// [dependencies] /// foo = { path = "path/to/foo" } /// ``` #[derive(Debug, Clone)] struct PathDependency { /// `Cargo.toml` path of the path dependency manifest_path: PathBuf, /// workspace root of the path dependency workspace_root: PathBuf, /// readme path of the path dependency readme: Option, } fn parse_toml_file(path: &Path, kind: &str) -> Result { let text = fs::read_to_string(path)?; let document = text.parse::().context(format!( "Failed to parse {} at {}", kind, path.display() ))?; Ok(document) } /// Rewrite Cargo.toml to only retain path dependencies that are actually used /// /// We only want to add path dependencies that are actually used /// to reduce the size of the source distribution. fn rewrite_cargo_toml( manifest_path: impl AsRef, known_path_deps: &HashMap, ) -> Result { let manifest_path = manifest_path.as_ref(); debug!("Rewriting Cargo.toml at {}", manifest_path.display()); let mut document = parse_toml_file(manifest_path, "Cargo.toml")?; // Update workspace members if let Some(workspace) = document.get_mut("workspace").and_then(|x| x.as_table_mut()) { if let Some(members) = workspace.get_mut("members").and_then(|x| x.as_array()) { if known_path_deps.is_empty() { // Remove workspace members when there isn't any path dep workspace.remove("members"); if workspace.is_empty() { // Remove workspace all together if it's empty document.remove("workspace"); } } else { let mut new_members = toml_edit::Array::new(); for member in members { if let toml_edit::Value::String(ref s) = member { let member_path = s.value(); // See https://github.com/rust-lang/cargo/blob/0de91c89e6479016d0ed8719fdc2947044335b36/src/cargo/util/restricted_names.rs#L119-L122 let is_glob_pattern = member_path.contains(['*', '?', '[', ']']); if is_glob_pattern { let pattern = glob::Pattern::new(member_path).with_context(|| { format!( "Invalid `workspace.members` glob pattern: {} in {}", member_path, manifest_path.display() ) })?; if known_path_deps.values().any(|path_dep| { let relative_path = path_dep .manifest_path .strip_prefix(&path_dep.workspace_root) .unwrap(); let relative_path_str = relative_path.to_str().unwrap(); pattern.matches(relative_path_str) }) { new_members.push(member_path); } } else if known_path_deps.contains_key(member_path) { new_members.push(member_path); } } } if !new_members.is_empty() { workspace["members"] = toml_edit::value(new_members); } else { workspace.remove("members"); } } } } Ok(document.to_string()) } /// When `pyproject.toml` is inside the Cargo workspace root, /// we need to update `tool.maturin.manifest-path` in `pyproject.toml`. fn rewrite_pyproject_toml( pyproject_toml_path: &Path, relative_manifest_path: &Path, ) -> Result { let mut data = parse_toml_file(pyproject_toml_path, "pyproject.toml")?; let tool = data .entry("tool") .or_insert_with(|| toml_edit::Item::Table(toml_edit::Table::new())) .as_table_like_mut() .with_context(|| { format!( "`[tool]` must be a table in {}", pyproject_toml_path.display() ) })?; let maturin = tool .entry("maturin") .or_insert_with(|| toml_edit::Item::Table(toml_edit::Table::new())) .as_table_like_mut() .with_context(|| { format!( "`[tool.maturin]` must be a table in {}", pyproject_toml_path.display() ) })?; maturin.remove("manifest-path"); maturin.insert( "manifest-path", toml_edit::value(relative_manifest_path.to_str().unwrap()), ); Ok(data.to_string()) } /// Copies the files of a crate to a source distribution, recursively adding path dependencies /// and rewriting path entries in Cargo.toml /// /// Runs `cargo package --list --allow-dirty` to obtain a list of files to package. fn add_crate_to_source_distribution( writer: &mut SDistWriter, manifest_path: impl AsRef, prefix: impl AsRef, known_path_deps: &HashMap, root_crate: bool, skip_cargo_toml: bool, ) -> Result<()> { let manifest_path = manifest_path.as_ref(); let output = Command::new("cargo") .args(["package", "--list", "--allow-dirty", "--manifest-path"]) .arg(manifest_path) .output() .with_context(|| { format!( "Failed to run `cargo package --list --allow-dirty --manifest-path {}`", manifest_path.display() ) })?; if !output.status.success() { bail!( "Failed to query file list from cargo: {}\n--- Manifest path: {}\n--- Stdout:\n{}\n--- Stderr:\n{}", output.status, manifest_path.display(), String::from_utf8_lossy(&output.stdout), String::from_utf8_lossy(&output.stderr), ); } let file_list: Vec<&Path> = str::from_utf8(&output.stdout) .context("Cargo printed invalid utf-8 ಠ_ಠ")? .lines() .map(Path::new) .collect(); // manifest_dir should be a relative path let manifest_dir = manifest_path.parent().unwrap(); let target_source: Vec<(PathBuf, PathBuf)> = file_list .iter() .map(|relative_to_manifests| { let relative_to_cwd = manifest_dir.join(relative_to_manifests); (relative_to_manifests.to_path_buf(), relative_to_cwd) }) // We rewrite Cargo.toml and add it separately .filter(|(target, source)| { #[allow(clippy::if_same_then_else)] // Skip generated files. See https://github.com/rust-lang/cargo/issues/7938#issuecomment-593280660 // and https://github.com/PyO3/maturin/issues/449 if target == Path::new("Cargo.toml.orig") || target == Path::new("Cargo.toml") { false } else if root_crate && target == Path::new("pyproject.toml") { // pyproject.toml is handled separately because it has be to put in the root dir // of source distribution false } else if matches!(target.extension(), Some(ext) if ext == "pyc" || ext == "pyd" || ext == "so") { // Technically, `cargo package --list` should handle this, // but somehow it doesn't on Alpine Linux running in GitHub Actions, // so we do it manually here. // See https://github.com/PyO3/maturin/pull/1255#issuecomment-1308838786 debug!("Ignoring {}", target.display()); false } else { source.exists() } }) .collect(); let prefix = prefix.as_ref(); writer.add_directory(prefix)?; let cargo_toml_path = prefix.join(manifest_path.file_name().unwrap()); if root_crate { let rewritten_cargo_toml = rewrite_cargo_toml(manifest_path, known_path_deps)?; writer.add_bytes(cargo_toml_path, rewritten_cargo_toml.as_bytes())?; } else if !skip_cargo_toml { writer.add_file(cargo_toml_path, manifest_path)?; } for (target, source) in target_source { writer.add_file(prefix.join(target), source)?; } Ok(()) } /// Finds all path dependencies of the crate fn find_path_deps(cargo_metadata: &Metadata) -> Result> { let root = cargo_metadata .root_package() .context("Expected the dependency graph to have a root package")?; let pkg_readmes = cargo_metadata .packages .iter() .filter_map(|package| { package .readme .as_ref() .map(|readme| (package.name.clone(), readme.clone().into_std_path_buf())) }) .collect::>(); // scan the dependency graph for path dependencies let mut path_deps = HashMap::new(); let mut stack: Vec<&cargo_metadata::Package> = vec![root]; while let Some(top) = stack.pop() { for dependency in &top.dependencies { if let Some(path) = &dependency.path { let dep_name = dependency.rename.as_ref().unwrap_or(&dependency.name); if path_deps.contains_key(dep_name) { continue; } // we search for the respective package by `manifest_path`, there seems // to be no way to query the dependency graph given `dependency` let dep_manifest_path = path.join("Cargo.toml"); // Path dependencies may not be in the same workspace as the root crate, // thus we need to find out its workspace root from `cargo metadata` let path_dep_metadata = MetadataCommand::new() .manifest_path(&dep_manifest_path) .verbose(true) // We don't need to resolve the dependency graph .no_deps() .exec() .with_context(|| { format!( "Failed to resolve workspace root for {} at '{}'", dep_name, dep_manifest_path ) })?; path_deps.insert( dep_name.clone(), PathDependency { manifest_path: PathBuf::from(dep_manifest_path.clone()), workspace_root: path_dep_metadata .workspace_root .clone() .into_std_path_buf(), readme: pkg_readmes.get(dep_name.as_str()).cloned(), }, ); if let Some(dep_package) = cargo_metadata .packages .iter() .find(|package| package.manifest_path == dep_manifest_path) { // scan the dependencies of the path dependency stack.push(dep_package) } } } } Ok(path_deps) } /// Copies the files of git to a source distribution /// /// Runs `git ls-files -z` to obtain a list of files to package. fn add_git_tracked_files_to_sdist( pyproject_toml_path: &Path, writer: &mut SDistWriter, prefix: impl AsRef, ) -> Result<()> { let pyproject_dir = pyproject_toml_path.parent().unwrap(); let output = Command::new("git") .args(["ls-files", "-z"]) .current_dir(pyproject_dir) .output() .context("Failed to run `git ls-files -z`")?; if !output.status.success() { bail!( "Failed to query file list from git: {}\n--- Project Path: {}\n--- Stdout:\n{}\n--- Stderr:\n{}", output.status, pyproject_dir.display(), String::from_utf8_lossy(&output.stdout), String::from_utf8_lossy(&output.stderr), ); } let prefix = prefix.as_ref(); writer.add_directory(prefix)?; let file_paths = str::from_utf8(&output.stdout) .context("git printed invalid utf-8 ಠ_ಠ")? .split('\0') .filter(|s| !s.is_empty()) .map(Path::new); for source in file_paths { writer.add_file(prefix.join(source), pyproject_dir.join(source))?; } Ok(()) } /// Copies the files of a crate to a source distribution, recursively adding path dependencies /// and rewriting path entries in Cargo.toml fn add_cargo_package_files_to_sdist( build_context: &BuildContext, pyproject_toml_path: &Path, writer: &mut SDistWriter, root_dir: &Path, ) -> Result<()> { let manifest_path = &build_context.manifest_path; let workspace_root = &build_context.cargo_metadata.workspace_root; let workspace_manifest_path = workspace_root.join("Cargo.toml"); let known_path_deps = find_path_deps(&build_context.cargo_metadata)?; debug!( "Found path dependencies: {:?}", known_path_deps.keys().collect::>() ); let mut sdist_root = common_path_prefix(workspace_root.as_std_path(), pyproject_toml_path).unwrap(); for path_dep in known_path_deps.values() { if let Some(prefix) = common_path_prefix(&sdist_root, path_dep.manifest_path.parent().unwrap()) { sdist_root = prefix; } else { bail!("Failed to determine common path prefix of path dependencies"); } } debug!("Found sdist root: {}", sdist_root.display()); // Add local path dependencies for (name, path_dep) in known_path_deps.iter() { debug!( "Adding path dependency: {} at {}", name, path_dep.manifest_path.display() ); let path_dep_manifest_dir = path_dep.manifest_path.parent().unwrap(); let relative_path_dep_manifest_dir = path_dep_manifest_dir.strip_prefix(&sdist_root).unwrap(); // we may need to rewrite workspace Cargo.toml later so don't add it to sdist yet let skip_cargo_toml = workspace_manifest_path == path_dep.manifest_path; add_crate_to_source_distribution( writer, &path_dep.manifest_path, &root_dir.join(relative_path_dep_manifest_dir), &known_path_deps, false, skip_cargo_toml, ) .with_context(|| { format!( "Failed to add local dependency {} at {} to the source distribution", name, path_dep.manifest_path.display() ) })?; // Handle possible relative readme field in Cargo.toml if let Some(readme) = path_dep.readme.as_ref() { let abs_readme = path_dep_manifest_dir .join(readme) .normalize() .with_context(|| format!("failed to normalize path `{}`", readme.display()))? .into_path_buf(); let relative_readme = abs_readme.strip_prefix(&sdist_root).unwrap(); writer.add_file(root_dir.join(relative_readme), &abs_readme)?; } // Handle different workspace manifest if &path_dep.workspace_root != workspace_root { let path_dep_workspace_manifest = path_dep.workspace_root.join("Cargo.toml"); let relative_path_dep_workspace_manifest = path_dep_workspace_manifest .strip_prefix(&sdist_root) .unwrap(); writer.add_file( root_dir.join(relative_path_dep_workspace_manifest), &path_dep_workspace_manifest, )?; } } // Add the main crate let abs_manifest_path = manifest_path .normalize() .with_context(|| format!("failed to normalize path `{}`", manifest_path.display()))? .into_path_buf(); let abs_manifest_dir = abs_manifest_path.parent().unwrap(); let main_crate = build_context.cargo_metadata.root_package().unwrap(); let relative_main_crate_manifest_dir = manifest_path .parent() .unwrap() .strip_prefix(&sdist_root) .unwrap(); add_crate_to_source_distribution( writer, manifest_path, root_dir.join(relative_main_crate_manifest_dir), &known_path_deps, true, false, )?; // Handle possible relative readme field in Cargo.toml if let Some(readme) = main_crate.readme.as_ref() { let abs_readme = abs_manifest_dir .join(readme) .normalize() .with_context(|| format!("failed to normalize path `{}`", readme))? .into_path_buf(); let relative_readme = abs_readme.strip_prefix(&sdist_root).unwrap(); writer.add_file(root_dir.join(relative_readme), &abs_readme)?; } // Add Cargo.lock file and workspace Cargo.toml let manifest_cargo_lock_path = abs_manifest_dir.join("Cargo.lock"); let workspace_cargo_lock = workspace_root.join("Cargo.lock").into_std_path_buf(); let (cargo_lock_path, use_workspace_cargo_lock) = if manifest_cargo_lock_path.exists() { (Some(manifest_cargo_lock_path.clone()), false) } else if workspace_cargo_lock.exists() { (Some(workspace_cargo_lock), true) } else { (None, false) }; let cargo_lock_required = build_context.cargo_options.locked || build_context.cargo_options.frozen; if let Some(cargo_lock_path) = cargo_lock_path { let pyproject_root = pyproject_toml_path.parent().unwrap(); let project_root = if pyproject_root == sdist_root || pyproject_root.starts_with(&sdist_root) { &sdist_root } else { assert!(sdist_root.starts_with(pyproject_root)); pyproject_root }; let relative_cargo_lock = cargo_lock_path.strip_prefix(project_root).unwrap(); writer.add_file(root_dir.join(relative_cargo_lock), &cargo_lock_path)?; if use_workspace_cargo_lock { let relative_workspace_cargo_toml = relative_cargo_lock.with_file_name("Cargo.toml"); let mut deps_to_keep = known_path_deps.clone(); // Also need to the main Python binding crate let main_member_name = abs_manifest_dir .strip_prefix(workspace_root) .unwrap() .to_slash() .unwrap() .to_string(); deps_to_keep.insert( main_member_name, PathDependency { manifest_path: manifest_path.clone(), workspace_root: workspace_root.clone().into_std_path_buf(), readme: None, }, ); let workspace_cargo_toml = rewrite_cargo_toml(workspace_manifest_path, &deps_to_keep)?; writer.add_bytes( root_dir.join(relative_workspace_cargo_toml), workspace_cargo_toml.as_bytes(), )?; } } else if cargo_lock_required { bail!("Cargo.lock is required by `--locked`/`--frozen` but it's not found."); } else { eprintln!( "âš ï¸ Warning: Cargo.lock is not found, it is recommended \ to include it in the source distribution" ); } // Add pyproject.toml let pyproject_dir = pyproject_toml_path.parent().unwrap(); if pyproject_dir != sdist_root { // rewrite `tool.maturin.manifest-path` in pyproject.toml let rewritten_pyproject_toml = rewrite_pyproject_toml( pyproject_toml_path, &relative_main_crate_manifest_dir.join("Cargo.toml"), )?; writer.add_bytes( root_dir.join("pyproject.toml"), rewritten_pyproject_toml.as_bytes(), )?; } else { writer.add_file(root_dir.join("pyproject.toml"), pyproject_toml_path)?; } // Add python source files let mut python_packages = Vec::new(); if let Some(python_module) = build_context.project_layout.python_module.as_ref() { python_packages.push(python_module.to_path_buf()); } for package in &build_context.project_layout.python_packages { let package_path = build_context.project_layout.python_dir.join(package); if python_packages.iter().any(|p| *p == package_path) { continue; } python_packages.push(package_path); } for package in python_packages { for entry in ignore::Walk::new(package) { let source = entry?.into_path(); // Technically, `ignore` crate should handle this, // but somehow it doesn't on Alpine Linux running in GitHub Actions, // so we do it manually here. // See https://github.com/PyO3/maturin/pull/1187#issuecomment-1273987013 if source .extension() .map(|ext| ext == "pyc" || ext == "pyd" || ext == "so") .unwrap_or_default() { debug!("Ignoring {}", source.display()); continue; } let target = root_dir.join(source.strip_prefix(pyproject_dir).unwrap()); if source.is_dir() { writer.add_directory(target)?; } else { writer.add_file(target, &source)?; } } } Ok(()) } /// Creates a source distribution, packing the root crate and all local dependencies /// /// The source distribution format is specified in /// [PEP 517 under "build_sdist"](https://www.python.org/dev/peps/pep-0517/#build-sdist) /// and in /// https://packaging.python.org/specifications/source-distribution-format/#source-distribution-file-format pub fn source_distribution( build_context: &BuildContext, pyproject: &PyProjectToml, excludes: Override, ) -> Result { let pyproject_toml_path = build_context .pyproject_toml_path .normalize() .with_context(|| { format!( "failed to normalize path `{}`", build_context.pyproject_toml_path.display() ) })? .into_path_buf(); let metadata21 = &build_context.metadata21; let mut writer = SDistWriter::new(&build_context.out, metadata21, excludes)?; let root_dir = PathBuf::from(format!( "{}-{}", &metadata21.get_distribution_escaped(), &metadata21.get_version_escaped() )); match pyproject.sdist_generator() { SdistGenerator::Cargo => add_cargo_package_files_to_sdist( build_context, &pyproject_toml_path, &mut writer, &root_dir, )?, SdistGenerator::Git => { add_git_tracked_files_to_sdist(&pyproject_toml_path, &mut writer, &root_dir)? } } let pyproject_toml_path = build_context .pyproject_toml_path .normalize() .with_context(|| { format!( "failed to normalize path `{}`", build_context.pyproject_toml_path.display() ) })? .into_path_buf(); let pyproject_dir = pyproject_toml_path.parent().unwrap(); // Add readme, license if let Some(project) = pyproject.project.as_ref() { if let Some(pyproject_toml::ReadMe::RelativePath(readme)) = project.readme.as_ref() { writer.add_file(root_dir.join(readme), pyproject_dir.join(readme))?; } if let Some(pyproject_toml::License::Table { file: Some(license), text: None, }) = project.license.as_ref() { writer.add_file(root_dir.join(license), pyproject_dir.join(license))?; } } let mut include = |pattern| -> Result<()> { eprintln!("📦 Including files matching \"{pattern}\""); for source in glob::glob(&pyproject_dir.join(pattern).to_string_lossy()) .with_context(|| format!("Invalid glob pattern: {pattern}"))? .filter_map(Result::ok) { let target = root_dir.join(source.strip_prefix(pyproject_dir).unwrap()); if source.is_dir() { writer.add_directory(target)?; } else { writer.add_file(target, source)?; } } Ok(()) }; if let Some(glob_patterns) = pyproject.include() { for pattern in glob_patterns .iter() .filter_map(|glob_pattern| glob_pattern.targets(Format::Sdist)) { include(pattern)?; } } writer.add_bytes( root_dir.join("PKG-INFO"), metadata21.to_file_contents()?.as_bytes(), )?; add_data(&mut writer, build_context.project_layout.data.as_deref())?; let source_distribution_path = writer.finish()?; eprintln!( "📦 Built source distribution to {}", source_distribution_path.display() ); Ok(source_distribution_path) } /// Find the common prefix, if any, between two paths /// /// Taken from https://docs.rs/common-path/1.0.0/src/common_path/lib.rs.html#84-109 /// License: MIT/Apache 2.0 fn common_path_prefix(one: P, two: Q) -> Option where P: AsRef, Q: AsRef, { let one = one.as_ref(); let two = two.as_ref(); let one = one.components(); let two = two.components(); let mut final_path = PathBuf::new(); let mut found = false; let paths = one.zip(two); for (l, r) in paths { if l == r { final_path.push(l.as_os_str()); found = true; } else { break; } } if found { Some(final_path) } else { None } } python-maturin_1.3.2.orig/src/target.rs0000644000000000000000000004655714525221045015126 0ustar00use crate::cross_compile::is_cross_compiling; use crate::PlatformTag; use anyhow::{anyhow, bail, format_err, Result}; use platform_info::*; use rustc_version::VersionMeta; use serde::Deserialize; use std::env; use std::fmt; use std::path::Path; use std::path::PathBuf; use std::str; use target_lexicon::{Architecture, Environment, Triple}; use tracing::error; pub(crate) const RUST_1_64_0: semver::Version = semver::Version::new(1, 64, 0); /// All supported operating system #[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Deserialize)] #[serde(rename_all = "lowercase")] pub enum Os { Linux, Windows, Macos, FreeBsd, NetBsd, OpenBsd, Dragonfly, Solaris, Illumos, Haiku, Emscripten, Wasi, } impl fmt::Display for Os { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { Os::Linux => write!(f, "Linux"), Os::Windows => write!(f, "Windows"), Os::Macos => write!(f, "macOS"), Os::FreeBsd => write!(f, "FreeBSD"), Os::NetBsd => write!(f, "NetBSD"), Os::OpenBsd => write!(f, "OpenBSD"), Os::Dragonfly => write!(f, "DragonFly"), Os::Solaris => write!(f, "Solaris"), Os::Illumos => write!(f, "Illumos"), Os::Haiku => write!(f, "Haiku"), Os::Emscripten => write!(f, "Emscripten"), Os::Wasi => write!(f, "Wasi"), } } } /// All supported CPU architectures #[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Deserialize)] #[serde(rename_all = "lowercase")] pub enum Arch { Aarch64, Armv6L, Armv7L, #[serde(alias = "ppc")] Powerpc, #[serde(alias = "ppc64le")] Powerpc64Le, #[serde(alias = "ppc64")] Powerpc64, #[serde(alias = "i686")] X86, X86_64, S390X, Wasm32, Riscv64, Mips64el, Mips64, Mipsel, Mips, Sparc64, LoongArch64, } impl fmt::Display for Arch { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { Arch::Aarch64 => write!(f, "aarch64"), Arch::Armv6L => write!(f, "armv6l"), Arch::Armv7L => write!(f, "armv7l"), Arch::Powerpc => write!(f, "ppc"), Arch::Powerpc64Le => write!(f, "ppc64le"), Arch::Powerpc64 => write!(f, "ppc64"), Arch::X86 => write!(f, "i686"), Arch::X86_64 => write!(f, "x86_64"), Arch::S390X => write!(f, "s390x"), Arch::Wasm32 => write!(f, "wasm32"), Arch::Riscv64 => write!(f, "riscv64"), Arch::Mips64el => write!(f, "mips64el"), Arch::Mips64 => write!(f, "mips64"), Arch::Mipsel => write!(f, "mipsel"), Arch::Mips => write!(f, "mips"), Arch::Sparc64 => write!(f, "sparc64"), Arch::LoongArch64 => write!(f, "loongarch64"), } } } impl Arch { /// Represents the hardware platform. /// /// This is the same as the native platform's `uname -m` output. pub fn machine(&self) -> &'static str { // See https://www.freebsd.org/cgi/man.cgi?query=arch&sektion=7&format=html // MACHINE_ARCH vs MACHINE_CPUARCH vs MACHINE section match self { Arch::Aarch64 => "arm64", Arch::Armv6L | Arch::Armv7L => "arm", Arch::Powerpc | Arch::Powerpc64Le | Arch::Powerpc64 => "powerpc", Arch::X86 => "i386", Arch::X86_64 => "amd64", Arch::Riscv64 => "riscv", Arch::Mips64el | Arch::Mips64 | Arch::Mipsel | Arch::Mips => "mips", // sparc64 is unsupported since FreeBSD 13.0 Arch::Sparc64 => "sparc64", Arch::Wasm32 => "wasm32", Arch::S390X => "s390x", Arch::LoongArch64 => "loongarch64", } } } // Returns the set of supported architectures for each operating system fn get_supported_architectures(os: &Os) -> Vec { match os { Os::Linux => vec![ Arch::Aarch64, Arch::Armv6L, Arch::Armv7L, Arch::Powerpc, Arch::Powerpc64, Arch::Powerpc64Le, Arch::S390X, Arch::X86, Arch::X86_64, Arch::Riscv64, Arch::Mips64el, Arch::Mips64, Arch::Mipsel, Arch::Mips, Arch::Sparc64, Arch::LoongArch64, ], Os::Windows => vec![Arch::X86, Arch::X86_64, Arch::Aarch64], Os::Macos => vec![Arch::Aarch64, Arch::X86_64], Os::FreeBsd | Os::NetBsd => vec![ Arch::Aarch64, Arch::Armv6L, Arch::Armv7L, Arch::Powerpc, Arch::Powerpc64, Arch::Powerpc64Le, Arch::X86, Arch::X86_64, Arch::Riscv64, Arch::Mips64el, Arch::Mipsel, Arch::Sparc64, ], Os::OpenBsd => vec![ Arch::X86, Arch::X86_64, Arch::Aarch64, Arch::Armv7L, Arch::Powerpc, Arch::Powerpc64, Arch::Powerpc64Le, Arch::Riscv64, Arch::Sparc64, ], Os::Dragonfly => vec![Arch::X86_64], Os::Illumos => vec![Arch::X86_64], Os::Haiku => vec![Arch::X86_64], Os::Solaris => vec![Arch::X86_64, Arch::Sparc64], Os::Emscripten | Os::Wasi => vec![Arch::Wasm32], } } /// The part of the current platform that is relevant when building wheels and is supported #[derive(Debug, Clone, Eq, PartialEq)] pub struct Target { os: Os, arch: Arch, env: Environment, triple: String, cross_compiling: bool, /// rustc version information pub(crate) rustc_version: VersionMeta, /// Is user specified `--target` pub(crate) user_specified: bool, } impl fmt::Display for Target { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", self.triple) } } impl Target { /// Uses the given target triple or tries the guess the current target by using the one used /// for compilation /// /// Fails if the target triple isn't supported pub fn from_target_triple(target_triple: Option) -> Result { use target_lexicon::{ ArmArchitecture, Mips32Architecture, Mips64Architecture, OperatingSystem, }; let rustc_version = rustc_version_meta()?; let host_triple = &rustc_version.host; let (platform, triple) = if let Some(ref target_triple) = target_triple { let platform: Triple = target_triple .parse() .map_err(|_| format_err!("Unknown target triple {}", target_triple))?; (platform, target_triple.to_string()) } else { let platform: Triple = host_triple .parse() .map_err(|_| format_err!("Unknown target triple {}", host_triple))?; (platform, host_triple.clone()) }; let os = match platform.operating_system { OperatingSystem::Linux => Os::Linux, OperatingSystem::Windows => Os::Windows, OperatingSystem::MacOSX { .. } | OperatingSystem::Darwin => Os::Macos, OperatingSystem::Netbsd => Os::NetBsd, OperatingSystem::Freebsd => Os::FreeBsd, OperatingSystem::Openbsd => Os::OpenBsd, OperatingSystem::Dragonfly => Os::Dragonfly, OperatingSystem::Solaris => Os::Solaris, OperatingSystem::Illumos => Os::Illumos, OperatingSystem::Haiku => Os::Haiku, OperatingSystem::Emscripten => Os::Emscripten, OperatingSystem::Wasi => Os::Wasi, unsupported => bail!("The operating system {:?} is not supported", unsupported), }; let arch = match platform.architecture { Architecture::X86_64 | Architecture::X86_64h => Arch::X86_64, Architecture::X86_32(_) => Arch::X86, Architecture::Arm(arm_arch) => match arm_arch { ArmArchitecture::Arm | ArmArchitecture::Armv6 => Arch::Armv6L, _ => Arch::Armv7L, }, Architecture::Aarch64(_) => Arch::Aarch64, Architecture::Powerpc => Arch::Powerpc, Architecture::Powerpc64 => Arch::Powerpc64, Architecture::Powerpc64le => Arch::Powerpc64Le, Architecture::S390x => Arch::S390X, Architecture::Wasm32 => Arch::Wasm32, Architecture::Riscv64(_) => Arch::Riscv64, Architecture::Mips64(mips64_arch) => match mips64_arch { Mips64Architecture::Mips64el => Arch::Mips64el, Mips64Architecture::Mips64 => Arch::Mips64, _ => bail!("The architecture {} is not supported", mips64_arch), }, Architecture::Mips32(mips32_arch) => match mips32_arch { Mips32Architecture::Mipsel => Arch::Mipsel, Mips32Architecture::Mips => Arch::Mips, _ => bail!("The architecture {} is not supported", mips32_arch), }, Architecture::Sparc64 => Arch::Sparc64, Architecture::LoongArch64 => Arch::LoongArch64, unsupported => bail!("The architecture {} is not supported", unsupported), }; if !get_supported_architectures(&os).contains(&arch) { bail!("{} is not supported on {}", arch, os); } let mut target = Target { os, arch, env: platform.environment, triple, rustc_version, user_specified: target_triple.is_some(), cross_compiling: false, }; target.cross_compiling = is_cross_compiling(&target)?; Ok(target) } /// Returns the platform architecture pub fn get_platform_arch(&self) -> Result { if self.cross_compiling { return Ok(self.arch.to_string()); } let machine = PlatformInfo::new().map(|info| info.machine().to_string_lossy().into_owned()); let arch = match machine { Ok(machine) => { let linux32 = (machine == "x86_64" && self.arch != Arch::X86_64) || (machine == "aarch64" && self.arch != Arch::Aarch64); if linux32 { // When running in Docker sometimes uname returns 64-bit architecture while the container is actually 32-bit, // In this case we trust the architecture of rustc target self.arch.to_string() } else { machine } } Err(err) => { error!("Failed to get machine architecture: {}", err); self.arch.to_string() } }; Ok(arch) } /// Returns the platform release pub fn get_platform_release(&self) -> Result { let os = self.os.to_string(); let os_version = env::var(format!("MATURIN_{}_VERSION", os.to_ascii_uppercase())); let release = match os_version { Ok(os_ver) => os_ver, Err(_) => { let info = PlatformInfo::new() .map_err(|e| anyhow!("Failed to fetch platform information: {e}"))?; info.release().to_string_lossy().into_owned() } }; let release = release.replace(['.', '-'], "_"); Ok(release) } /// Returns the name python uses in `sys.platform` for this architecture. pub fn get_python_arch(&self) -> &str { match self.arch { Arch::Aarch64 => "aarch64", Arch::Armv6L => "armv6l", Arch::Armv7L => "armv7l", Arch::Powerpc => "ppc", Arch::Powerpc64Le => "powerpc64le", Arch::Powerpc64 => "powerpc64", Arch::X86 => "i386", Arch::X86_64 => "x86_64", Arch::S390X => "s390x", Arch::Wasm32 => "wasm32", Arch::Riscv64 => "riscv64", // It's kinda surprising that Python doesn't include the `el` suffix Arch::Mips64el | Arch::Mips64 => "mips64", Arch::Mipsel | Arch::Mips => "mips", Arch::Sparc64 => "sparc64", Arch::LoongArch64 => "loongarch64", } } /// Returns the name python uses in `sys.platform` for this os pub fn get_python_os(&self) -> &str { match self.os { Os::Windows => "windows", Os::Linux => "linux", Os::Macos => "darwin", Os::FreeBsd => "freebsd", Os::NetBsd => "netbsd", Os::OpenBsd => "openbsd", Os::Dragonfly => "dragonfly", Os::Solaris => "sunos", Os::Illumos => "sunos", Os::Haiku => "haiku", Os::Emscripten => "emscripten", // This isn't real, there's no sys.platform here Os::Wasi => "wasi", } } /// Returns the oldest possible Manylinux tag for this architecture pub fn get_minimum_manylinux_tag(&self) -> PlatformTag { match self.arch { Arch::Aarch64 | Arch::Armv7L | Arch::Powerpc64 | Arch::Powerpc64Le | Arch::S390X => { PlatformTag::manylinux2014() } Arch::X86 | Arch::X86_64 => { // rustc 1.64.0 bumps glibc requirement to 2.17 // see https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html if self.rustc_version.semver >= RUST_1_64_0 { PlatformTag::manylinux2014() } else { PlatformTag::manylinux2010() } } Arch::Armv6L | Arch::Wasm32 | Arch::Riscv64 | Arch::Mips64el | Arch::Mips64 | Arch::Mipsel | Arch::Mips | Arch::Powerpc | Arch::Sparc64 | Arch::LoongArch64 => PlatformTag::Linux, } } /// Returns whether the platform is 64 bit or 32 bit pub fn pointer_width(&self) -> usize { match self.arch { Arch::Aarch64 | Arch::Powerpc64 | Arch::Powerpc64Le | Arch::X86_64 | Arch::S390X | Arch::Riscv64 | Arch::Mips64el | Arch::Mips64 | Arch::Sparc64 | Arch::LoongArch64 => 64, Arch::Armv6L | Arch::Armv7L | Arch::X86 | Arch::Wasm32 | Arch::Mipsel | Arch::Mips | Arch::Powerpc => 32, } } /// Returns target triple as string #[inline] pub fn target_triple(&self) -> &str { &self.triple } /// Returns host triple as string #[inline] pub fn host_triple(&self) -> &str { &self.rustc_version.host } /// Returns true if the current platform is not windows pub fn is_unix(&self) -> bool { match self.os { Os::Windows => false, Os::Linux | Os::Macos | Os::FreeBsd | Os::NetBsd | Os::OpenBsd | Os::Dragonfly | Os::Solaris | Os::Illumos | Os::Haiku | Os::Emscripten | Os::Wasi => true, } } /// Returns target operating system #[inline] pub fn target_os(&self) -> Os { self.os } /// Returns target architecture #[inline] pub fn target_arch(&self) -> Arch { self.arch } /// Returns target environment #[inline] pub fn target_env(&self) -> Environment { self.env } /// Returns true if the current platform is linux #[inline] pub fn is_linux(&self) -> bool { self.os == Os::Linux } /// Returns true if the current platform is freebsd #[inline] pub fn is_freebsd(&self) -> bool { self.os == Os::FreeBsd } /// Returns true if the current platform is mac os #[inline] pub fn is_macos(&self) -> bool { self.os == Os::Macos } /// Returns true if the current platform is windows #[inline] pub fn is_windows(&self) -> bool { self.os == Os::Windows } /// Returns true if the current environment is msvc #[inline] pub fn is_msvc(&self) -> bool { self.env == Environment::Msvc } /// Returns true if the current platform is illumos #[inline] pub fn is_illumos(&self) -> bool { self.os == Os::Illumos } /// Returns true if the current platform is haiku #[inline] pub fn is_haiku(&self) -> bool { self.os == Os::Haiku } /// Returns true if the current platform is Emscripten #[inline] pub fn is_emscripten(&self) -> bool { self.os == Os::Emscripten } /// Returns true if we're building a binary for wasm32-wasi #[inline] pub fn is_wasi(&self) -> bool { self.os == Os::Wasi } /// Returns true if the current platform's target env is Musl #[inline] pub fn is_musl_libc(&self) -> bool { matches!( self.env, Environment::Musl | Environment::Musleabi | Environment::Musleabihf | Environment::Muslabi64 ) } /// Is cross compiling for this target #[inline] pub fn cross_compiling(&self) -> bool { self.cross_compiling } /// Returns the path to the python executable inside a venv pub fn get_venv_python(&self, venv_base: impl AsRef) -> PathBuf { let python = if self.is_windows() { "python.exe" } else { "python" }; self.get_venv_bin_dir(venv_base).join(python) } /// Returns the directory where the binaries are stored inside a venv pub fn get_venv_bin_dir(&self, venv_base: impl AsRef) -> PathBuf { let venv = venv_base.as_ref(); if self.is_windows() { let bin_dir = venv.join("Scripts"); if bin_dir.join("python.exe").exists() { return bin_dir; } // Python installed via msys2 on Windows might produce a POSIX-like venv // See https://github.com/PyO3/maturin/issues/1108 let bin_dir = venv.join("bin"); if bin_dir.join("python.exe").exists() { return bin_dir; } // for conda environment venv.to_path_buf() } else { venv.join("bin") } } /// Returns the path to the python executable /// /// For windows it's always python.exe for unix it's first the venv's `python` /// and then `python3` pub fn get_python(&self) -> PathBuf { if self.is_windows() { PathBuf::from("python.exe") } else if env::var_os("VIRTUAL_ENV").is_some() { PathBuf::from("python") } else { PathBuf::from("python3") } } } fn rustc_version_meta() -> Result { let meta = rustc_version::version_meta().map_err(|err| match err { rustc_version::Error::CouldNotExecuteCommand(e) if e.kind() == std::io::ErrorKind::NotFound => { anyhow!( "rustc, the rust compiler, is not installed or not in PATH. \ This package requires Rust and Cargo to compile extensions. \ Install it through the system's package manager or via https://rustup.rs/.", ) } err => anyhow!(err).context("Failed to run rustc to get the host target"), })?; Ok(meta) } python-maturin_1.3.2.orig/src/templates/0000755000000000000000000000000014150033227015244 5ustar00python-maturin_1.3.2.orig/src/upload.rs0000644000000000000000000005626114525221045015115 0ustar00//! The uploading logic was mostly reverse engineered; I wrote it down as //! documentation at https://warehouse.readthedocs.io/api-reference/legacy/#upload-api use crate::build_context::hash_file; use anyhow::{bail, Context, Result}; use base64::engine::general_purpose::STANDARD; use base64::Engine; use bytesize::ByteSize; use configparser::ini::Ini; use fs_err as fs; use fs_err::File; use multipart::client::lazy::Multipart; use regex::Regex; use serde::Deserialize; use std::collections::HashMap; use std::env; #[cfg(any(feature = "native-tls", feature = "rustls"))] use std::ffi::OsString; use std::io; use std::path::{Path, PathBuf}; use std::time::Duration; use thiserror::Error; use tracing::debug; /// An account with a registry, possibly incomplete #[derive(Debug, clap::Parser)] pub struct PublishOpt { /// The repository (package index) to upload the package to. Should be a section in the config file. /// /// Can also be set via MATURIN_REPOSITORY environment variable. #[arg(short = 'r', long, env = "MATURIN_REPOSITORY", default_value = "pypi")] repository: String, /// The URL of the registry where the wheels are uploaded to. This overrides --repository. /// /// Can also be set via MATURIN_REPOSITORY_URL environment variable. #[arg(long, env = "MATURIN_REPOSITORY_URL", overrides_with = "repository")] repository_url: Option, /// Username for pypi or your custom registry. /// /// Can also be set via MATURIN_USERNAME environment variable. /// /// Set MATURIN_PYPI_TOKEN variable to use token-based authentication instead #[arg(short, long, env = "MATURIN_USERNAME")] username: Option, /// Password for pypi or your custom registry. /// /// Can also be set via MATURIN_PASSWORD environment variable. #[arg(short, long, env = "MATURIN_PASSWORD", hide_env_values = true)] password: Option, /// Continue uploading files if one already exists. /// (Only valid when uploading to PyPI. Other implementations may not support this.) #[arg(long)] skip_existing: bool, /// Do not interactively prompt for username/password if the required credentials are missing. /// /// Can also be set via MATURIN_NON_INTERACTIVE environment variable. #[arg(long, env = "MATURIN_NON_INTERACTIVE")] non_interactive: bool, } impl PublishOpt { const DEFAULT_REPOSITORY_URL: &'static str = "https://upload.pypi.org/legacy/"; const TEST_REPOSITORY_URL: &'static str = "https://test.pypi.org/legacy/"; /// Set to non interactive mode if we're running on CI pub fn non_interactive_on_ci(&mut self) { if !self.non_interactive && env::var("CI").map(|v| v == "true").unwrap_or_default() { eprintln!("ðŸŽ›ï¸ Running in non-interactive mode on CI"); self.non_interactive = true; } } } /// Error type for different types of errors that can happen when uploading a /// wheel. /// /// The most interesting type is AuthenticationError because it allows asking /// the user to reenter the password #[derive(Error, Debug)] #[error("Uploading to the registry failed")] pub enum UploadError { /// Any ureq error #[error("Http error")] UreqError(#[source] Box), /// The registry returned a "403 Forbidden" #[error("Username or password are incorrect")] AuthenticationError(String), /// Reading the wheel failed #[error("IO Error")] IoError(#[source] io::Error), /// The registry returned something else than 200 #[error("Failed to upload the wheel with status {0}: {1}")] StatusCodeError(String, String), /// File already exists #[error("File already exists: {0}")] FileExistsError(String), /// Read package metadata error #[error("Could not read the metadata from the package at {0}")] PkgInfoError(PathBuf, #[source] python_pkginfo::Error), /// TLS error #[cfg(feature = "native-tls")] #[error("TLS Error")] TlsError(#[source] native_tls::Error), } impl From for UploadError { fn from(error: io::Error) -> Self { UploadError::IoError(error) } } impl From for UploadError { fn from(error: ureq::Error) -> Self { UploadError::UreqError(Box::new(error)) } } #[cfg(feature = "native-tls")] impl From for UploadError { fn from(error: native_tls::Error) -> Self { UploadError::TlsError(error) } } /// A pip registry such as pypi or testpypi with associated credentials, used /// for uploading wheels #[derive(Debug, Clone, Eq, PartialEq)] pub struct Registry { /// The username pub username: String, /// The password pub password: String, /// The url endpoint for legacy uploading pub url: String, } impl Registry { /// Creates a new registry pub fn new(username: String, password: String, url: String) -> Registry { Registry { username, password, url, } } } /// Attempts to fetch the password from the keyring (if enabled) /// and falls back to the interactive password prompt. fn get_password(_username: &str) -> String { #[cfg(feature = "keyring")] { let service = env!("CARGO_PKG_NAME"); let keyring = keyring::Entry::new(service, _username); if let Ok(password) = keyring.and_then(|keyring| keyring.get_password()) { return password; }; } dialoguer::Password::new() .with_prompt("Please enter your password") .interact() .unwrap_or_else(|_| { // So we need this fallback for pycharm on windows let mut password = String::new(); io::stdin() .read_line(&mut password) .expect("Failed to read line"); password.trim().to_string() }) } fn get_username() -> String { eprintln!("Please enter your username:"); let mut line = String::new(); io::stdin().read_line(&mut line).unwrap(); line.trim().to_string() } fn load_pypirc() -> Ini { let mut config = Ini::new(); if let Some(mut config_path) = dirs::home_dir() { config_path.push(".pypirc"); if let Ok(pypirc) = fs::read_to_string(config_path.as_path()) { let _ = config.read(pypirc); } } config } fn load_pypi_cred_from_config(config: &Ini, registry_name: &str) -> Option<(String, String)> { if let (Some(username), Some(password)) = ( config.get(registry_name, "username"), config.get(registry_name, "password"), ) { return Some((username, password)); } None } /// Gets the PyPI credentials from (in precedence order): /// /// 1. `MATURIN_PYPI_TOKEN` environment variable /// 2. `.pypirc` config file /// 3. maturin command arguments /// 4. `MATURIN_USERNAME` and `MATURIN_PASSWORD` environment variables /// 5. the password keyring /// 6. interactive prompt fn resolve_pypi_cred( opt: &PublishOpt, config: &Ini, registry_name: Option<&str>, registry_url: &str, ) -> Result<(String, String)> { // API token from environment variable takes priority if let Ok(token) = env::var("MATURIN_PYPI_TOKEN") { return Ok(("__token__".to_string(), token)); } // Try to get a token via OIDC exchange match resolve_pypi_token_via_oidc(registry_url) { Ok(Some(token)) => { eprintln!("🔠Using trusted publisher for upload"); return Ok(("__token__".to_string(), token)); } Ok(None) => {} Err(e) => eprintln!("âš ï¸ Warning: Failed to resolve PyPI token via OIDC: {}", e), } if let Some((username, password)) = registry_name.and_then(|name| load_pypi_cred_from_config(config, name)) { eprintln!("🔠Using credential in pypirc for upload"); return Ok((username, password)); } // fallback to username and password if opt.non_interactive && (opt.username.is_none() || opt.password.is_none()) { bail!("Credentials not found and non-interactive mode is enabled"); } let username = opt.username.clone().unwrap_or_else(get_username); let password = opt .password .clone() .unwrap_or_else(|| get_password(&username)); Ok((username, password)) } #[derive(Debug, Deserialize)] struct OidcAudienceResponse { audience: String, } #[derive(Debug, Deserialize)] struct OidcTokenResponse { value: String, } #[derive(Debug, Deserialize)] struct MintTokenResponse { token: String, } /// Trusted Publisher support for GitHub Actions fn resolve_pypi_token_via_oidc(registry_url: &str) -> Result> { if env::var_os("GITHUB_ACTIONS").is_none() { return Ok(None); } if let (Ok(req_token), Ok(req_url)) = ( env::var("ACTIONS_ID_TOKEN_REQUEST_TOKEN"), env::var("ACTIONS_ID_TOKEN_REQUEST_URL"), ) { let registry_url = url::Url::parse(registry_url)?; let mut audience_url = registry_url.clone(); audience_url.set_path("_/oidc/audience"); debug!("Requesting OIDC audience from {}", audience_url); let agent = http_agent()?; let audience_res = agent .get(audience_url.as_str()) .timeout(Duration::from_secs(30)) .call()?; if audience_res.status() == 404 { // OIDC is not enabled/supported on this registry return Ok(None); } let audience = audience_res.into_json::()?.audience; debug!("Requesting OIDC token for {} from {}", audience, req_url); let request_token_res: OidcTokenResponse = agent .get(&req_url) .query("audience", &audience) .set("Authorization", &format!("bearer {req_token}")) .timeout(Duration::from_secs(30)) .call()? .into_json()?; let oidc_token = request_token_res.value; let mut mint_token_url = registry_url; mint_token_url.set_path("_/oidc/github/mint-token"); debug!("Requesting API token from {}", mint_token_url); let mut mint_token_req = HashMap::new(); mint_token_req.insert("token", oidc_token); let mint_token_res = agent .post(mint_token_url.as_str()) .timeout(Duration::from_secs(30)) .send_json(mint_token_req)? .into_json::()?; return Ok(Some(mint_token_res.token)); } Ok(None) } /// Asks for username and password for a registry account where missing. fn complete_registry(opt: &PublishOpt) -> Result { // load creds from pypirc if found let pypirc = load_pypirc(); let (registry_name, registry_url) = if let Some(repository_url) = opt.repository_url.as_deref() { let name = match repository_url { PublishOpt::DEFAULT_REPOSITORY_URL => Some("pypi"), PublishOpt::TEST_REPOSITORY_URL => Some("testpypi"), _ => None, }; (name, repository_url.to_string()) } else if let Some(url) = pypirc.get(&opt.repository, "repository") { (Some(opt.repository.as_str()), url) } else if opt.repository == "pypi" { (Some("pypi"), PublishOpt::DEFAULT_REPOSITORY_URL.to_string()) } else if opt.repository == "testpypi" { ( Some("testpypi"), PublishOpt::TEST_REPOSITORY_URL.to_string(), ) } else { bail!( "Failed to get registry {} in .pypirc. \ Note: Your index didn't start with http:// or https://, \ which is required for non-pypirc indices.", opt.repository ); }; let (username, password) = resolve_pypi_cred(opt, &pypirc, registry_name, ®istry_url)?; let registry = Registry::new(username, password, registry_url); Ok(registry) } /// Port of pip's `canonicalize_name` /// https://github.com/pypa/pip/blob/b33e791742570215f15663410c3ed987d2253d5b/src/pip/_vendor/packaging/utils.py#L18-L25 fn canonicalize_name(name: &str) -> String { Regex::new("[-_.]+") .unwrap() .replace_all(name, "-") .to_lowercase() } fn http_proxy() -> Result { env::var("HTTPS_PROXY") .or_else(|_| env::var("https_proxy")) .or_else(|_| env::var("HTTP_PROXY")) .or_else(|_| env::var("http_proxy")) .or_else(|_| env::var("ALL_PROXY")) .or_else(|_| env::var("all_proxy")) } #[cfg(any(feature = "native-tls", feature = "rustls"))] fn tls_ca_bundle() -> Option { env::var_os("MATURIN_CA_BUNDLE") .or_else(|| env::var_os("REQUESTS_CA_BUNDLE")) .or_else(|| env::var_os("CURL_CA_BUNDLE")) } // Prefer rustls if both native-tls and rustls features are enabled #[cfg(all(feature = "native-tls", not(feature = "rustls")))] #[allow(clippy::result_large_err)] fn http_agent() -> Result { use std::sync::Arc; let mut builder = ureq::builder(); if let Ok(proxy) = http_proxy() { let proxy = ureq::Proxy::new(proxy)?; builder = builder.proxy(proxy); }; let mut tls_builder = native_tls::TlsConnector::builder(); if let Some(ca_bundle) = tls_ca_bundle() { let mut reader = io::BufReader::new(File::open(ca_bundle)?); for cert in rustls_pemfile::certs(&mut reader)? { tls_builder.add_root_certificate(native_tls::Certificate::from_pem(&cert)?); } } builder = builder.tls_connector(Arc::new(tls_builder.build()?)); Ok(builder.build()) } #[cfg(feature = "rustls")] #[allow(clippy::result_large_err)] fn http_agent() -> Result { use std::sync::Arc; let mut builder = ureq::builder(); if let Ok(proxy) = http_proxy() { let proxy = ureq::Proxy::new(proxy)?; builder = builder.proxy(proxy); }; if let Some(ca_bundle) = tls_ca_bundle() { let mut reader = io::BufReader::new(File::open(ca_bundle)?); let certs = rustls_pemfile::certs(&mut reader)?; let mut root_certs = rustls::RootCertStore::empty(); root_certs.add_parsable_certificates(&certs); let client_config = rustls::ClientConfig::builder() .with_safe_defaults() .with_root_certificates(root_certs) .with_no_client_auth(); Ok(builder.tls_config(Arc::new(client_config)).build()) } else { Ok(builder.build()) } } #[cfg(not(any(feature = "native-tls", feature = "rustls")))] #[allow(clippy::result_large_err)] fn http_agent() -> Result { let mut builder = ureq::builder(); if let Ok(proxy) = http_proxy() { let proxy = ureq::Proxy::new(proxy)?; builder = builder.proxy(proxy); }; Ok(builder.build()) } /// Uploads a single wheel to the registry #[allow(clippy::result_large_err)] pub fn upload(registry: &Registry, wheel_path: &Path) -> Result<(), UploadError> { let hash_hex = hash_file(wheel_path)?; let dist = python_pkginfo::Distribution::new(wheel_path) .map_err(|err| UploadError::PkgInfoError(wheel_path.to_owned(), err))?; let metadata = dist.metadata(); let mut api_metadata = vec![ (":action", "file_upload".to_string()), ("sha256_digest", hash_hex), ("protocol_version", "1".to_string()), ("metadata_version", metadata.metadata_version.clone()), ("name", canonicalize_name(&metadata.name)), ("version", metadata.version.clone()), ("pyversion", dist.python_version().to_string()), ("filetype", dist.r#type().to_string()), ]; let mut add_option = |name, value: &Option| { if let Some(some) = value.clone() { api_metadata.push((name, some)); } }; // https://github.com/pypa/warehouse/blob/75061540e6ab5aae3f8758b569e926b6355abea8/warehouse/forklift/legacy.py#L424 add_option("summary", &metadata.summary); add_option("description", &metadata.description); add_option( "description_content_type", &metadata.description_content_type, ); add_option("author", &metadata.author); add_option("author_email", &metadata.author_email); add_option("maintainer", &metadata.maintainer); add_option("maintainer_email", &metadata.maintainer_email); add_option("license", &metadata.license); add_option("keywords", &metadata.keywords); add_option("home_page", &metadata.home_page); add_option("download_url", &metadata.download_url); add_option("requires_python", &metadata.requires_python); add_option("summary", &metadata.summary); if metadata.requires_python.is_none() { // GitLab PyPI repository API implementation requires this metadata field // and twine always includes it in the request, even when it's empty. api_metadata.push(("requires_python", "".to_string())); } let mut add_vec = |name, values: &[String]| { for i in values { api_metadata.push((name, i.clone())); } }; add_vec("classifiers", &metadata.classifiers); add_vec("platform", &metadata.platforms); add_vec("requires_dist", &metadata.requires_dist); add_vec("provides_dist", &metadata.provides_dist); add_vec("obsoletes_dist", &metadata.obsoletes_dist); add_vec("requires_external", &metadata.requires_external); add_vec("project_urls", &metadata.project_urls); let wheel = File::open(wheel_path)?; let wheel_name = wheel_path .file_name() .expect("Wheel path has a file name") .to_string_lossy(); let mut form = Multipart::new(); for (key, value) in api_metadata { form.add_text(key, value); } form.add_stream("content", &wheel, Some(wheel_name), None); let multipart_data = form.prepare().map_err(|e| e.error)?; let encoded = STANDARD.encode(format!("{}:{}", registry.username, registry.password)); let agent = http_agent()?; let response = agent .post(registry.url.as_str()) .set( "Content-Type", &format!( "multipart/form-data; boundary={}", multipart_data.boundary() ), ) .set( "User-Agent", &format!("{}/{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")), ) .set("Authorization", &format!("Basic {encoded}")) .send(multipart_data); match response { Ok(_) => Ok(()), Err(ureq::Error::Status(status, response)) => { let err_text = response.into_string().unwrap_or_else(|e| { format!( "The registry should return some text, \ even in case of an error, but didn't ({e})" ) }); debug!("Upload error response: {}", err_text); // Detect FileExistsError the way twine does // https://github.com/pypa/twine/blob/87846e5777b380d4704704a69e1f9a7a1231451c/twine/commands/upload.py#L30 if status == 403 { if err_text.contains("overwrite artifact") { // Artifactory (https://jfrog.com/artifactory/) Err(UploadError::FileExistsError(err_text)) } else { Err(UploadError::AuthenticationError(err_text)) } } else { let status_string = status.to_string(); if status == 409 // conflict, pypiserver (https://pypi.org/project/pypiserver) // PyPI / TestPyPI || (status == 400 && err_text.contains("already exists")) // Nexus Repository OSS (https://www.sonatype.com/nexus-repository-oss) || (status == 400 && err_text.contains("updating asset")) // # Gitlab Enterprise Edition (https://about.gitlab.com) || (status == 400 && err_text.contains("already been taken")) { Err(UploadError::FileExistsError(err_text)) } else { Err(UploadError::StatusCodeError(status_string, err_text)) } } } Err(err) => Err(UploadError::UreqError(err.into())), } } /// Handles authentication/keyring integration and retrying of the publish subcommand pub fn upload_ui(items: &[PathBuf], publish: &PublishOpt) -> Result<()> { let registry = complete_registry(publish)?; eprintln!("🚀 Uploading {} packages", items.len()); for i in items { let upload_result = upload(®istry, i); match upload_result { Ok(()) => (), Err(UploadError::AuthenticationError(msg)) => { let title_re = regex::Regex::new(r"(.+?)").unwrap(); let title = title_re .captures(&msg) .and_then(|c| c.get(1)) .map(|m| m.as_str()); match title { Some(title) => { eprintln!("â›” {title}"); } None => eprintln!("â›” Username and/or password are wrong"), } #[cfg(feature = "keyring")] { // Delete the wrong password from the keyring let old_username = registry.username; match keyring::Entry::new(env!("CARGO_PKG_NAME"), &old_username) .and_then(|keyring| keyring.delete_password()) { Ok(()) => { eprintln!("🔑 Removed wrong password from keyring") } Err(keyring::Error::NoEntry) | Err(keyring::Error::NoStorageAccess(_)) | Err(keyring::Error::PlatformFailure(_)) => {} Err(err) => { eprintln!("âš ï¸ Warning: Failed to remove password from keyring: {err}") } } } bail!("Username and/or password are possibly wrong"); } Err(err) => { let filename = i.file_name().unwrap_or(i.as_os_str()); if let UploadError::FileExistsError(_) = err { if publish.skip_existing { eprintln!( "âš ï¸ Note: Skipping {filename:?} because it appears to already exist" ); continue; } } let filesize = fs::metadata(i) .map(|x| ByteSize(x.len()).to_string()) .unwrap_or_else(|e| format!("Failed to get the filesize of {:?}: {}", &i, e)); return Err(err).context(format!("💥 Failed to upload {filename:?} ({filesize})")); } } } eprintln!("✨ Packages uploaded successfully"); #[cfg(feature = "keyring")] { // We know the password is correct, so we can save it in the keyring let username = registry.username.clone(); let password = registry.password; match keyring::Entry::new(env!("CARGO_PKG_NAME"), &username) .and_then(|keyring| keyring.set_password(&password)) { Ok(()) | Err(keyring::Error::NoStorageAccess(_)) | Err(keyring::Error::PlatformFailure(_)) => {} Err(err) => { eprintln!("âš ï¸ Warning: Failed to store the password in the keyring: {err:?}"); } } } Ok(()) } python-maturin_1.3.2.orig/src/auditwheel/audit.rs0000644000000000000000000004611714525221045017071 0ustar00use super::musllinux::{find_musl_libc, get_musl_version}; use super::policy::{Policy, MANYLINUX_POLICIES, MUSLLINUX_POLICIES}; use crate::auditwheel::{find_external_libs, PlatformTag}; use crate::compile::BuildArtifact; use crate::target::Target; use anyhow::{bail, Context, Result}; use fs_err::File; use goblin::elf::{sym::STT_FUNC, Elf}; use lddtree::Library; use once_cell::sync::Lazy; use regex::Regex; use std::collections::{HashMap, HashSet}; use std::io; use std::io::Read; use std::path::{Path, PathBuf}; use thiserror::Error; static IS_LIBPYTHON: Lazy = Lazy::new(|| Regex::new(r"^libpython3\.\d+m?u?\.so\.\d+\.\d+$").unwrap()); /// Error raised during auditing an elf file for manylinux/musllinux compatibility #[derive(Error, Debug)] #[error("Ensuring manylinux/musllinux compliance failed")] pub enum AuditWheelError { /// The wheel couldn't be read #[error("Failed to read the wheel")] IoError(#[source] io::Error), /// Reexports goblin parsing errors #[error("Goblin failed to parse the elf file")] GoblinError(#[source] goblin::error::Error), /// The elf file isn't manylinux/musllinux compatible. Contains the list of offending /// libraries. #[error( "Your library links libpython ({0}), which libraries must not do. Have you forgotten to activate the extension-module feature?", )] LinksLibPythonError(String), /// The elf file isn't manylinux/musllinux compatible. Contains the list of offending /// libraries. #[error( "Your library is not {0} compliant because it links the following forbidden libraries: {1:?}", )] LinksForbiddenLibrariesError(Policy, Vec), /// The elf file isn't manylinux/musllinux compatible. Contains the list of offending /// libraries. #[error( "Your library is not {0} compliant because of the presence of too-recent versioned symbols: {1:?}. Consider building in a manylinux docker container", )] VersionedSymbolTooNewError(Policy, Vec), /// The elf file isn't manylinux/musllinux compatible. Contains the list of offending /// libraries with blacked-list symbols. #[error("Your library is not {0} compliant because it depends on black-listed symbols: {1:?}")] BlackListedSymbolsError(Policy, Vec), /// The elf file isn't manylinux/musllinux compatible. Contains unsupported architecture #[error("Your library is not {0} compliant because it has unsupported architecture: {1}")] UnsupportedArchitecture(Policy, String), /// This platform tag isn't defined by auditwheel yet #[error("{0} compatibility policy is not defined by auditwheel yet, pass `--skip-auditwheel` to proceed anyway")] UndefinedPolicy(String), /// Failed to analyze external shared library dependencies of the wheel #[error("Failed to analyze external shared library dependencies of the wheel")] DependencyAnalysisError(#[source] lddtree::Error), } #[derive(Clone, Debug)] pub struct VersionedLibrary { /// library name pub name: String, /// versions needed versions: HashSet, } /// Find required dynamic linked libraries with version information pub fn find_versioned_libraries(elf: &Elf) -> Vec { let mut symbols = Vec::new(); if let Some(verneed) = &elf.verneed { for need_file in verneed.iter() { if let Some(name) = elf.dynstrtab.get_at(need_file.vn_file) { // Skip dynamic linker/loader if name.starts_with("ld-linux") || name == "ld64.so.2" || name == "ld64.so.1" { continue; } let mut versions = HashSet::new(); for need_ver in need_file.iter() { if let Some(aux_name) = elf.dynstrtab.get_at(need_ver.vna_name) { versions.insert(aux_name.to_string()); } } symbols.push(VersionedLibrary { name: name.to_string(), versions, }); } } } symbols } /// Find incompliant symbols from symbol versions #[allow(clippy::result_large_err)] fn find_incompliant_symbols( elf: &Elf, symbol_versions: &[String], ) -> Result, AuditWheelError> { let mut symbols = Vec::new(); let strtab = &elf.strtab; for sym in &elf.syms { if sym.st_type() == STT_FUNC { let name = strtab.get_at(sym.st_name).unwrap_or("BAD NAME"); for symbol_version in symbol_versions { if name.ends_with(&format!("@{symbol_version}")) { symbols.push(name.to_string()); } } } } Ok(symbols) } #[allow(clippy::result_large_err)] fn policy_is_satisfied( policy: &Policy, elf: &Elf, arch: &str, deps: &[String], versioned_libraries: &[VersionedLibrary], allow_linking_libpython: bool, ) -> Result<(), AuditWheelError> { let arch_versions = &policy.symbol_versions.get(arch).ok_or_else(|| { AuditWheelError::UnsupportedArchitecture(policy.clone(), arch.to_string()) })?; let mut offending_libs = HashSet::new(); let mut offending_versioned_syms = HashSet::new(); let mut offending_blacklist_syms = HashMap::new(); let undef_symbols: HashSet = elf .dynsyms .iter() .filter_map(|sym| { if sym.st_shndx == goblin::elf::section_header::SHN_UNDEF as usize { elf.dynstrtab.get_at(sym.st_name).map(ToString::to_string) } else { None } }) .collect(); for dep in deps { // Skip dynamic linker/loader if dep.starts_with("ld-linux") || dep == "ld64.so.2" || dep == "ld64.so.1" { continue; } if !policy.lib_whitelist.contains(dep) { if allow_linking_libpython && IS_LIBPYTHON.is_match(dep) { continue; } offending_libs.insert(dep.clone()); } if let Some(sym_list) = policy.blacklist.get(dep) { let mut intersection: Vec<_> = sym_list.intersection(&undef_symbols).cloned().collect(); if !intersection.is_empty() { intersection.sort(); offending_blacklist_syms.insert(dep, intersection); } } } for library in versioned_libraries { if !policy.lib_whitelist.contains(&library.name) { offending_libs.insert(library.name.clone()); continue; } let mut versions: HashMap> = HashMap::new(); for v in &library.versions { let (name, version) = v.split_once('_').unwrap(); versions .entry(name.to_string()) .or_default() .insert(version.to_string()); } for (name, versions_needed) in versions.iter() { let versions_allowed = &arch_versions[name]; if !versions_needed.is_subset(versions_allowed) { let offending_versions: Vec<&str> = versions_needed .difference(versions_allowed) .map(|v| v.as_ref()) .collect(); let offending_symbol_versions: Vec = offending_versions .iter() .map(|v| format!("{name}_{v}")) .collect(); let offending_symbols = find_incompliant_symbols(elf, &offending_symbol_versions)?; let offender = if offending_symbols.is_empty() { format!( "{} offending versions: {}", library.name, offending_symbol_versions.join(", ") ) } else { format!( "{} offending symbols: {}", library.name, offending_symbols.join(", ") ) }; offending_versioned_syms.insert(offender); } } } // Check for black-listed symbols if !offending_blacklist_syms.is_empty() { let offenders = offending_blacklist_syms .into_iter() .map(|(lib, syms)| format!("{}: {}", lib, syms.join(", "))) .collect(); return Err(AuditWheelError::BlackListedSymbolsError( policy.clone(), offenders, )); } // Check for too-recent versioned symbols if !offending_versioned_syms.is_empty() { return Err(AuditWheelError::VersionedSymbolTooNewError( policy.clone(), offending_versioned_syms.into_iter().collect(), )); } // Check for libpython and forbidden libraries let offenders: Vec = offending_libs.into_iter().collect(); match offenders.as_slice() { [] => Ok(()), [lib] if IS_LIBPYTHON.is_match(lib) => { Err(AuditWheelError::LinksLibPythonError(lib.clone())) } offenders => Err(AuditWheelError::LinksForbiddenLibrariesError( policy.clone(), offenders.to_vec(), )), } } fn get_default_platform_policies() -> Vec { if let Ok(Some(musl_libc)) = find_musl_libc() { if let Ok(Some((major, minor))) = get_musl_version(musl_libc) { return MUSLLINUX_POLICIES .iter() .filter(|policy| { policy.name == "linux" || policy.name == format!("musllinux_{major}_{minor}") }) .cloned() .collect(); } } MANYLINUX_POLICIES.clone() } /// An reimplementation of auditwheel, which checks elf files for /// manylinux/musllinux compliance. /// /// If `platform_tag`, is None, it returns the the highest matching manylinux/musllinux policy /// and whether we need to repair with patchelf,, or `linux` if nothing else matches. /// It will error for bogus cases, e.g. if libpython is linked. /// /// If a specific manylinux/musllinux version is given, compliance is checked and a warning printed if /// a higher version would be possible. /// /// Does nothing for `platform_tag` set to `Off`/`Linux` or non-linux platforms. #[allow(clippy::result_large_err)] pub fn auditwheel_rs( artifact: &BuildArtifact, target: &Target, platform_tag: Option, allow_linking_libpython: bool, ) -> Result<(Policy, bool), AuditWheelError> { if !target.is_linux() || platform_tag == Some(PlatformTag::Linux) { return Ok((Policy::default(), false)); } let path = &artifact.path; let arch = target.target_arch().to_string(); let mut file = File::open(path).map_err(AuditWheelError::IoError)?; let mut buffer = Vec::new(); file.read_to_end(&mut buffer) .map_err(AuditWheelError::IoError)?; let elf = Elf::parse(&buffer).map_err(AuditWheelError::GoblinError)?; // This returns essentially the same as ldd let deps: Vec = elf.libraries.iter().map(ToString::to_string).collect(); let versioned_libraries = find_versioned_libraries(&elf); // Find the highest possible policy, if any let platform_policies = match platform_tag { Some(PlatformTag::Manylinux { .. }) => MANYLINUX_POLICIES.clone(), Some(PlatformTag::Musllinux { x, y }) => MUSLLINUX_POLICIES .clone() .into_iter() .filter(|policy| policy.name == "linux" || policy.name == format!("musllinux_{x}_{y}")) .map(|mut policy| { policy.fixup_musl_libc_so_name(target.target_arch()); policy }) .collect(), None => { let mut policies = get_default_platform_policies(); for policy in &mut policies { policy.fixup_musl_libc_so_name(target.target_arch()); } policies } Some(PlatformTag::Linux) => unreachable!(), }; let mut highest_policy = None; let mut should_repair = false; for policy in platform_policies.iter() { let result = policy_is_satisfied( policy, &elf, &arch, &deps, &versioned_libraries, allow_linking_libpython, ); match result { Ok(_) => { highest_policy = Some(policy.clone()); should_repair = false; break; } Err(AuditWheelError::LinksForbiddenLibrariesError(..)) => { highest_policy = Some(policy.clone()); should_repair = true; break; } Err(AuditWheelError::VersionedSymbolTooNewError(..)) | Err(AuditWheelError::BlackListedSymbolsError(..)) // UnsupportedArchitecture happens when trying 2010 with aarch64 | Err(AuditWheelError::UnsupportedArchitecture(..)) => continue, // If there was an error parsing the symbols or libpython was linked, // we error no matter what the requested policy was Err(err) => return Err(err), } } let policy = if let Some(platform_tag) = platform_tag { let tag = platform_tag.to_string(); let mut policy = Policy::from_name(&tag).ok_or(AuditWheelError::UndefinedPolicy(tag))?; policy.fixup_musl_libc_so_name(target.target_arch()); if let Some(highest_policy) = highest_policy { // Don't recommend manylinux1 because rust doesn't support it anymore if policy.priority < highest_policy.priority && highest_policy.name != "manylinux_2_5" { eprintln!( "📦 Wheel is eligible for a higher priority tag. \ You requested {policy} but this wheel is eligible for {highest_policy}", ); } } match policy_is_satisfied( &policy, &elf, &arch, &deps, &versioned_libraries, allow_linking_libpython, ) { Ok(_) => { should_repair = false; Ok(policy) } Err(AuditWheelError::LinksForbiddenLibrariesError(..)) => { should_repair = true; Ok(policy) } Err(err) => Err(err), } } else if let Some(policy) = highest_policy { Ok(policy) } else { eprintln!( "âš ï¸ Warning: No compatible platform tag found, using the linux tag instead. \ You won't be able to upload those wheels to PyPI." ); // Fallback to linux Ok(Policy::default()) }?; Ok((policy, should_repair)) } /// Get sysroot path from target C compiler /// /// Currently only gcc is supported, clang doesn't have a `--print-sysroot` option pub fn get_sysroot_path(target: &Target) -> Result { use std::process::{Command, Stdio}; if let Some(sysroot) = std::env::var_os("TARGET_SYSROOT") { return Ok(PathBuf::from(sysroot)); } let host_triple = target.host_triple(); let target_triple = target.target_triple(); if host_triple != target_triple { let mut build = cc::Build::new(); build // Suppress cargo metadata for example env vars printing .cargo_metadata(false) // opt_level, host and target are required .opt_level(0) .host(host_triple) .target(target_triple); let compiler = build .try_get_compiler() .with_context(|| format!("Failed to get compiler for {target_triple}"))?; // Only GNU like compilers support `--print-sysroot` if !compiler.is_like_gnu() { return Ok(PathBuf::from("/")); } let path = compiler.path(); let out = Command::new(path) .arg("--print-sysroot") .stdout(Stdio::piped()) .stderr(Stdio::null()) .output() .with_context(|| format!("Failed to run `{} --print-sysroot`", path.display()))?; if out.status.success() { let sysroot = String::from_utf8(out.stdout) .context("Failed to read the sysroot path")? .trim() .to_owned(); if sysroot.is_empty() { return Ok(PathBuf::from("/")); } else { return Ok(PathBuf::from(sysroot)); } } else { bail!( "Failed to get the sysroot path: {}", String::from_utf8(out.stderr)? ); } } Ok(PathBuf::from("/")) } /// For the given compilation result, return the manylinux platform and the external libs /// we need to add to repair it pub fn get_policy_and_libs( artifact: &BuildArtifact, platform_tag: Option, target: &Target, allow_linking_libpython: bool, ) -> Result<(Policy, Vec)> { let (policy, should_repair) = auditwheel_rs(artifact, target, platform_tag, allow_linking_libpython).with_context( || { if let Some(platform_tag) = platform_tag { format!("Error ensuring {platform_tag} compliance") } else { "Error checking for manylinux/musllinux compliance".to_string() } }, )?; let external_libs = if should_repair { let sysroot = get_sysroot_path(target).unwrap_or_else(|_| PathBuf::from("/")); let ld_paths = artifact.linked_paths.iter().map(PathBuf::from).collect(); let external_libs = find_external_libs(&artifact.path, &policy, sysroot, ld_paths) .with_context(|| { if let Some(platform_tag) = platform_tag { format!("Error repairing wheel for {platform_tag} compliance") } else { "Error repairing wheel for manylinux/musllinux compliance".to_string() } })?; if allow_linking_libpython { external_libs .into_iter() .filter(|lib| !IS_LIBPYTHON.is_match(&lib.name)) .collect() } else { external_libs } } else { Vec::new() }; Ok((policy, external_libs)) } pub fn relpath(to: &Path, from: &Path) -> PathBuf { let mut suffix_pos = 0; for (f, t) in from.components().zip(to.components()) { if f == t { suffix_pos += 1; } else { break; } } let mut result = PathBuf::new(); from.components() .skip(suffix_pos) .map(|_| result.push("..")) .last(); to.components() .skip(suffix_pos) .map(|x| result.push(x.as_os_str())) .last(); result } #[cfg(test)] mod test { use crate::auditwheel::audit::relpath; use pretty_assertions::assert_eq; use std::path::Path; #[test] fn test_relpath() { let cases = [ ("", "", ""), ("/", "/usr", ".."), ("/", "/usr/lib", "../.."), ]; for (from, to, expected) in cases { let from = Path::new(from); let to = Path::new(to); let result = relpath(from, to); assert_eq!(result, Path::new(expected)); } } } python-maturin_1.3.2.orig/src/auditwheel/manylinux-policy.json0000644000000000000000000015001514357373401021631 0ustar00[ {"name": "linux", "aliases": [], "priority": 0, "symbol_versions": {}, "lib_whitelist": [], "blacklist": {} }, {"name": "manylinux_2_5", "aliases": ["manylinux1"], "priority": 100, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8"], "ZLIB": [] }, "x86_64": { "CXXABI": ["1.3", "1.3.1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8"], "ZLIB": [] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_12", "aliases": ["manylinux2010"], "priority": 90, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_17", "aliases": ["manylinux2014"], "priority": 80, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0"], "GLIBC": ["2.0", "2.17", "2.18"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "ppc64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0"], "GLIBC": ["2.0", "2.17"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_24", "aliases": [], "priority": 70, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", "2.22", "2.23", "2.24"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_27", "aliases": [], "priority": 65, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_28", "aliases": [], "priority": 64, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }}, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_31", "aliases": [], "priority": 61, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_34", "aliases": [], "priority": 58, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0", "7.0.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0", "7.0.0", "11.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "IEEE128_1.3.13", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "IEEE128_3.4.29", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.29", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.29", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "manylinux_2_35", "aliases": [], "priority": 57, "symbol_versions": { "i686": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "4.0.0", "4.2.0", "4.3.0", "4.4.0", "4.5.0", "4.7.0", "4.8.0", "7.0.0", "12.0.0"], "GLIBC": ["2.0", "2.1", "2.1.1", "2.1.2", "2.1.3", "2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34", "2.35"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "3.4.30"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "x86_64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "FLOAT128", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "4.8.0", "7.0.0", "12.0.0"], "GLIBC": ["2.2.5", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34", "2.35"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "3.4.30"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "aarch64": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.5.0", "4.7.0", "7.0.0", "11.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34", "2.35"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "3.4.30"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "ppc64le": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "IEEE128_1.3.13", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34", "2.35"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "3.4.30", "IEEE128_3.4.29", "IEEE128_3.4.30", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.29", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "s390x": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "LDBL_1.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.4", "3.4.2", "3.4.4", "4.0.0", "4.1.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.2", "2.2.1", "2.2.2", "2.2.3", "2.2.4", "2.2.6", "2.3", "2.3.2", "2.3.3", "2.3.4", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34", "2.35"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "3.4.30", "LDBL_3.4", "LDBL_3.4.10", "LDBL_3.4.21", "LDBL_3.4.29", "LDBL_3.4.7"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] }, "armv7l": { "CXXABI": ["1.3", "1.3.1", "1.3.2", "1.3.3", "1.3.4", "1.3.5", "1.3.6", "1.3.7", "1.3.8", "1.3.9", "1.3.10", "1.3.11", "1.3.12", "1.3.13", "ARM_1.3.3", "TM_1"], "GCC": ["3.0", "3.3", "3.3.1", "3.3.4", "3.4", "3.4.2", "3.5", "4.0.0", "4.2.0", "4.3.0", "4.7.0", "7.0.0"], "GLIBC": ["2.0", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", "2.28", "2.29", "2.30", "2.31", "2.32", "2.33", "2.34", "2.35"], "GLIBCXX": ["3.4", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9", "3.4.10", "3.4.11", "3.4.12", "3.4.13", "3.4.14", "3.4.15", "3.4.16", "3.4.17", "3.4.18", "3.4.19", "3.4.20", "3.4.21", "3.4.22", "3.4.23", "3.4.24", "3.4.25", "3.4.26", "3.4.27", "3.4.28", "3.4.29", "3.4.30"], "ZLIB": ["1.2.0", "1.2.0.2", "1.2.0.8", "1.2.2", "1.2.2.3", "1.2.2.4", "1.2.3.3", "1.2.3.4", "1.2.3.5", "1.2.5.1", "1.2.5.2", "1.2.7.1", "1.2.9"] } }, "lib_whitelist": [ "libgcc_s.so.1", "libstdc++.so.6", "libm.so.6", "libdl.so.2", "librt.so.1", "libc.so.6", "libnsl.so.1", "libutil.so.1", "libpthread.so.0", "libX11.so.6", "libXext.so.6", "libXrender.so.1", "libICE.so.6", "libSM.so.6", "libGL.so.1", "libgobject-2.0.so.0", "libgthread-2.0.so.0", "libglib-2.0.so.0", "libresolv.so.2", "libexpat.so.1", "libz.so.1" ], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "adler32_default", "bi_windup", "crc32_le_vgfm_16", "crc32_vpmsum", "crc32_z_default", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }} ] python-maturin_1.3.2.orig/src/auditwheel/mod.rs0000644000000000000000000000036214323740255016537 0ustar00mod audit; mod musllinux; pub mod patchelf; mod platform_tag; mod policy; mod repair; pub use audit::*; pub use platform_tag::PlatformTag; pub use policy::{Policy, MANYLINUX_POLICIES, MUSLLINUX_POLICIES}; pub use repair::find_external_libs; python-maturin_1.3.2.orig/src/auditwheel/musllinux-policy.json0000644000000000000000000000350614121272122021632 0ustar00[ {"name": "linux", "aliases": [], "priority": 0, "symbol_versions": {}, "lib_whitelist": [], "blacklist": {} }, {"name": "musllinux_1_1", "aliases": [], "priority": 100, "symbol_versions": { "i686": { }, "x86_64": { }, "aarch64": { }, "ppc64le": { }, "s390x": { }, "armv7l": { } }, "lib_whitelist": ["libc.so", "libz.so.1"], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "bi_windup", "crc32_vpmsum", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }}, {"name": "musllinux_1_2", "aliases": [], "priority": 90, "symbol_versions": { "i686": { }, "x86_64": { }, "aarch64": { }, "ppc64le": { }, "s390x": { }, "armv7l": { } }, "lib_whitelist": ["libc.so", "libz.so.1"], "blacklist": { "libz.so.1": ["_dist_code", "_length_code", "_tr_align", "_tr_flush_block", "_tr_init", "_tr_stored_block", "_tr_tally", "bi_windup", "crc32_vpmsum", "crc_fold_512to32", "crc_fold_copy", "crc_fold_init", "deflate_copyright", "deflate_medium", "fill_window", "flush_pending", "gzflags", "inflate_copyright", "inflate_fast", "inflate_table", "longest_match", "slide_hash_sse", "static_ltree", "uncompress2", "x86_check_features", "x86_cpu_has_pclmul", "x86_cpu_has_sse2", "x86_cpu_has_sse42", "z_errmsg", "zcalloc", "zcfree"] }} ] python-maturin_1.3.2.orig/src/auditwheel/musllinux.rs0000644000000000000000000000255514357373401020030 0ustar00use anyhow::{Context, Result}; use fs_err as fs; use goblin::elf::Elf; use regex::Regex; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; /// Find musl libc path from executable's ELF header pub fn find_musl_libc() -> Result> { let buffer = fs::read("/bin/ls")?; let elf = Elf::parse(&buffer)?; Ok(elf.interpreter.map(PathBuf::from)) } /// Read the musl version from libc library's output /// /// The libc library should output something like this to stderr:: /// /// musl libc (x86_64) /// Version 1.2.2 /// Dynamic Program Loader pub fn get_musl_version(ld_path: impl AsRef) -> Result> { let ld_path = ld_path.as_ref(); let output = Command::new(ld_path) .stdout(Stdio::null()) .stderr(Stdio::piped()) .output()?; let stderr = std::str::from_utf8(&output.stderr)?; let expr = Regex::new(r"Version (\d+)\.(\d+)")?; if let Some(capture) = expr.captures(stderr) { let context = "Expected a digit"; let major = capture .get(1) .unwrap() .as_str() .parse::() .context(context)?; let minor = capture .get(2) .unwrap() .as_str() .parse::() .context(context)?; return Ok(Some((major, minor))); } Ok(None) } python-maturin_1.3.2.orig/src/auditwheel/patchelf.rs0000644000000000000000000000730114446366340017553 0ustar00use anyhow::{bail, Context, Result}; use std::ffi::OsStr; use std::path::Path; use std::process::Command; static MISSING_PATCHELF_ERROR: &str = "Failed to execute 'patchelf', did you install it? Hint: Try `pip install maturin[patchelf]` (or just `pip install patchelf`)"; /// Verify patchelf version pub fn verify_patchelf() -> Result<()> { let output = Command::new("patchelf") .arg("--version") .output() .context(MISSING_PATCHELF_ERROR)?; let version = String::from_utf8(output.stdout) .context("Failed to parse patchelf version")? .trim() .to_string(); let version = version.strip_prefix("patchelf").unwrap_or(&version).trim(); let semver = version .parse::() .context("Failed to parse patchelf version")?; if semver < semver::Version::new(0, 14, 0) { bail!( "patchelf {} found. auditwheel repair requires patchelf >= 0.14.", version ); } Ok(()) } /// Replace a declared dependency on a dynamic library with another one (`DT_NEEDED`) pub fn replace_needed, N: AsRef>( file: impl AsRef, old_new_pairs: &[(O, N)], ) -> Result<()> { let mut cmd = Command::new("patchelf"); for (old, new) in old_new_pairs { cmd.arg("--replace-needed").arg(old).arg(new); } cmd.arg(file.as_ref()); let output = cmd.output().context(MISSING_PATCHELF_ERROR)?; if !output.status.success() { bail!( "patchelf --replace-needed failed: {}", String::from_utf8_lossy(&output.stderr) ); } Ok(()) } /// Change `SONAME` of a dynamic library pub fn set_soname>(file: impl AsRef, soname: &S) -> Result<()> { let mut cmd = Command::new("patchelf"); cmd.arg("--set-soname").arg(soname).arg(file.as_ref()); let output = cmd.output().context(MISSING_PATCHELF_ERROR)?; if !output.status.success() { bail!( "patchelf --set-soname failed: {}", String::from_utf8_lossy(&output.stderr) ); } Ok(()) } /// Remove a `RPATH` from executables and libraries pub fn remove_rpath(file: impl AsRef) -> Result<()> { let mut cmd = Command::new("patchelf"); cmd.arg("--remove-rpath").arg(file.as_ref()); let output = cmd.output().context(MISSING_PATCHELF_ERROR)?; if !output.status.success() { bail!( "patchelf --remove-rpath failed: {}", String::from_utf8_lossy(&output.stderr) ); } Ok(()) } /// Change the `RPATH` of executables and libraries pub fn set_rpath>(file: impl AsRef, rpath: &S) -> Result<()> { remove_rpath(&file)?; let mut cmd = Command::new("patchelf"); cmd.arg("--force-rpath") .arg("--set-rpath") .arg(rpath) .arg(file.as_ref()); let output = cmd.output().context(MISSING_PATCHELF_ERROR)?; if !output.status.success() { bail!( "patchelf --set-rpath failed: {}", String::from_utf8_lossy(&output.stderr) ); } Ok(()) } /// Get the `RPATH` of executables and libraries pub fn get_rpath(file: impl AsRef) -> Result> { let file = file.as_ref(); let contents = fs_err::read(file)?; match goblin::Object::parse(&contents) { Ok(goblin::Object::Elf(elf)) => { let rpaths = if !elf.runpaths.is_empty() { elf.runpaths } else { elf.rpaths }; Ok(rpaths.iter().map(|r| r.to_string()).collect()) } Ok(_) => bail!("'{}' is not an ELF file", file.display()), Err(e) => bail!("Failed to parse ELF file at '{}': {}", file.display(), e), } } python-maturin_1.3.2.orig/src/auditwheel/platform_tag.rs0000644000000000000000000001077214446366340020452 0ustar00use crate::auditwheel::Policy; use serde::{Deserialize, Deserializer, Serialize}; use std::fmt; use std::str::FromStr; /// Decides how to handle manylinux and musllinux compliance #[derive(Serialize, Debug, Clone, Eq, PartialEq, Copy, Ord, PartialOrd)] pub enum PlatformTag { /// Use the manylinux_x_y tag Manylinux { /// GLIBC version major x: u16, /// GLIBC version minor y: u16, }, /// Use the musllinux_x_y tag Musllinux { /// musl libc version major x: u16, /// musl libc version minor y: u16, }, /// Use the native linux tag Linux, } impl PlatformTag { /// `manylinux1` aka `manylinux_2_5` pub fn manylinux1() -> Self { Self::Manylinux { x: 2, y: 5 } } /// `manylinux2010` aka `manylinux_2_12` pub fn manylinux2010() -> Self { Self::Manylinux { x: 2, y: 12 } } /// `manylinux2014` aka `manylinux_2_17` pub fn manylinux2014() -> Self { Self::Manylinux { x: 2, y: 17 } } /// manylinux aliases pub fn aliases(&self) -> Vec { match self { PlatformTag::Manylinux { .. } => { if let Some(policy) = Policy::from_name(&self.to_string()) { policy.aliases } else { Vec::new() } } PlatformTag::Musllinux { .. } => Vec::new(), PlatformTag::Linux => Vec::new(), } } /// Is this a portable linux platform tag /// /// Only manylinux and musllinux are portable pub fn is_portable(&self) -> bool { !matches!(self, PlatformTag::Linux) } /// Is this a manylinux platform tag pub fn is_manylinux(&self) -> bool { matches!(self, PlatformTag::Manylinux { .. }) } /// Is this a musllinux platform tag pub fn is_musllinux(&self) -> bool { matches!(self, PlatformTag::Musllinux { .. }) } /// Is it supported by Rust compiler and manylinux project pub fn is_supported(&self) -> bool { match self { PlatformTag::Manylinux { x, y } => (*x, *y) >= (2, 17), PlatformTag::Musllinux { .. } => true, PlatformTag::Linux => true, } } } impl fmt::Display for PlatformTag { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { PlatformTag::Manylinux { x, y } => write!(f, "manylinux_{x}_{y}"), PlatformTag::Musllinux { x, y } => write!(f, "musllinux_{x}_{y}"), PlatformTag::Linux => write!(f, "linux"), } } } impl FromStr for PlatformTag { type Err = &'static str; fn from_str(value: &str) -> anyhow::Result { let value = value.to_ascii_lowercase(); match value.as_str() { "off" | "linux" => Ok(PlatformTag::Linux), "1" | "manylinux1" => Ok(PlatformTag::manylinux1()), "2010" | "manylinux2010" => Ok(PlatformTag::manylinux2010()), "2014" | "manylinux2014" => Ok(PlatformTag::manylinux2014()), _ => { if let Some(value) = value.strip_prefix("musllinux_") { let mut parts = value.split('_'); let x = parts .next() .and_then(|x| x.parse::().ok()) .ok_or("invalid musllinux option")?; let y = parts .next() .and_then(|y| y.parse::().ok()) .ok_or("invalid musllinux option")?; Ok(PlatformTag::Musllinux { x, y }) } else { let value = value.strip_prefix("manylinux_").unwrap_or(&value); let mut parts = value.split('_'); let x = parts .next() .and_then(|x| x.parse::().ok()) .ok_or("invalid manylinux option")?; let y = parts .next() .and_then(|y| y.parse::().ok()) .ok_or("invalid manylinux option")?; Ok(PlatformTag::Manylinux { x, y }) } } } } } impl<'de> Deserialize<'de> for PlatformTag { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { let s = String::deserialize(deserializer)?; FromStr::from_str(&s).map_err(serde::de::Error::custom) } } python-maturin_1.3.2.orig/src/auditwheel/policy.rs0000644000000000000000000001242114323740255017256 0ustar00use crate::auditwheel::PlatformTag; use crate::target::Arch; use once_cell::sync::Lazy; use serde::Deserialize; use std::cmp::{Ordering, PartialOrd}; use std::collections::{HashMap, HashSet}; use std::fmt; use std::fmt::{Display, Formatter}; /// The policies (allowed symbols) for the different manylinux tags, sorted from highest /// priority to lowest pub static MANYLINUX_POLICIES: Lazy> = Lazy::new(|| { // https://github.com/pypa/auditwheel/blob/master/auditwheel/policy/manylinux-policy.json let mut policies: Vec = serde_json::from_slice(include_bytes!("manylinux-policy.json")) .expect("invalid manylinux policy.json file"); policies.sort_by_key(|policy| -policy.priority); policies }); /// The policies (allowed symbols) for the different musllinux tags, sorted from highest /// priority to lowest pub static MUSLLINUX_POLICIES: Lazy> = Lazy::new(|| { // https://github.com/pypa/auditwheel/blob/master/auditwheel/policy/musllinux-policy.json let mut policies: Vec = serde_json::from_slice(include_bytes!("musllinux-policy.json")) .expect("invalid musllinux policy.json file"); policies.sort_by_key(|policy| -policy.priority); policies }); /// Manylinux policy #[derive(Debug, Clone, PartialEq, Eq, Deserialize)] pub struct Policy { /// platform tag name pub name: String, /// platform tag aliases pub aliases: Vec, /// policy priority. Tags supporting more platforms have higher priority pub priority: i64, /// platform architecture to symbol versions map #[serde(rename = "symbol_versions")] pub symbol_versions: HashMap>>, /// whitelisted libraries #[serde(rename = "lib_whitelist")] pub lib_whitelist: HashSet, /// blacklisted symbols of whitelisted libraries pub blacklist: HashMap>, } impl Default for Policy { fn default() -> Self { // defaults to linux Policy::from_name("linux").unwrap() } } impl Display for Policy { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { if self.aliases.is_empty() { f.write_str(&self.name) } else { f.write_fmt(format_args!( "{} (aka {})", &self.name, self.aliases.join(",") )) } } } impl PartialOrd for Policy { fn partial_cmp(&self, other: &Self) -> Option { self.priority.partial_cmp(&other.priority) } } impl Policy { /// Get platform tag from this policy pub fn platform_tag(&self) -> PlatformTag { self.name.parse().expect("unknown platform tag") } /// Get policy by it's platform tag name pub fn from_name(name: &str) -> Option { let policies = if name.starts_with("musllinux") { &MUSLLINUX_POLICIES } else { &MANYLINUX_POLICIES }; policies .iter() .find(|p| p.name == name || p.aliases.iter().any(|alias| alias == name)) .cloned() } pub(crate) fn fixup_musl_libc_so_name(&mut self, target_arch: Arch) { // Fixup musl libc lib_whitelist if self.name.starts_with("musllinux") && self.lib_whitelist.remove("libc.so") { let new_soname = match target_arch { Arch::Aarch64 => "libc.musl-aarch64.so.1", Arch::Armv6L => "libc.musl-armhf.so.1", Arch::Armv7L => "libc.musl-armv7.so.1", Arch::Powerpc64Le => "libc.musl-ppc64le.so.1", Arch::Powerpc64 => "", // musllinux doesn't support ppc64 Arch::X86 => "libc.musl-x86.so.1", Arch::X86_64 => "libc.musl-x86_64.so.1", Arch::S390X => "libc.musl-s390x.so.1", _ => "", }; if !new_soname.is_empty() { self.lib_whitelist.insert(new_soname.to_string()); } } } } #[cfg(test)] mod test { use super::{Arch, Policy, MANYLINUX_POLICIES, MUSLLINUX_POLICIES}; use pretty_assertions::assert_eq; #[test] fn test_load_policy() { let linux = Policy::from_name("linux").unwrap(); assert!(linux.symbol_versions.is_empty()); assert!(linux.lib_whitelist.is_empty()); let manylinux2010 = Policy::from_name("manylinux2010").unwrap(); assert!(manylinux2010.lib_whitelist.contains("libc.so.6")); let symbol_version = &manylinux2010.symbol_versions["x86_64"]; assert_eq!(symbol_version["CXXABI"].len(), 4); let cxxabi = &symbol_version["CXXABI"]; for version in &["1.3", "1.3.1", "1.3.2", "1.3.3"] { assert!(cxxabi.contains(*version)); } } #[test] fn test_policy_manylinux_tag() { for policy in MANYLINUX_POLICIES.iter() { let _tag = policy.platform_tag(); } } #[test] fn test_policy_musllinux_tag() { for policy in MUSLLINUX_POLICIES.iter() { let _tag = policy.platform_tag(); } } #[test] fn test_policy_musllinux_fixup_libc_so_name() { let mut policy = Policy::from_name("musllinux_1_1").unwrap(); policy.fixup_musl_libc_so_name(Arch::Aarch64); assert!(policy.lib_whitelist.contains("libc.musl-aarch64.so.1")); } } python-maturin_1.3.2.orig/src/auditwheel/repair.rs0000644000000000000000000000222114357373401017240 0ustar00use super::audit::AuditWheelError; use crate::auditwheel::Policy; use anyhow::Result; use lddtree::DependencyAnalyzer; use std::path::{Path, PathBuf}; /// Find external shared library dependencies #[allow(clippy::result_large_err)] pub fn find_external_libs( artifact: impl AsRef, policy: &Policy, sysroot: PathBuf, ld_paths: Vec, ) -> Result, AuditWheelError> { let dep_analyzer = DependencyAnalyzer::new(sysroot).library_paths(ld_paths); let deps = dep_analyzer .analyze(artifact) .map_err(AuditWheelError::DependencyAnalysisError)?; let mut ext_libs = Vec::new(); for (_, lib) in deps.libraries { let name = &lib.name; // Skip dynamic linker/loader and white-listed libs if name.starts_with("ld-linux") || name == "ld64.so.2" || name == "ld64.so.1" // musl libc, eg: libc.musl-aarch64.so.1 || name.starts_with("ld-musl") || name.starts_with("libc.") || policy.lib_whitelist.contains(name) { continue; } ext_libs.push(lib); } Ok(ext_libs) } python-maturin_1.3.2.orig/src/python_interpreter/config.rs0000644000000000000000000006637114525221045021045 0ustar00use super::{InterpreterKind, MAXIMUM_PYPY_MINOR, MAXIMUM_PYTHON_MINOR, MINIMUM_PYTHON_MINOR}; use crate::target::{Arch, Os}; use crate::Target; use anyhow::{format_err, Context, Result}; use fs_err as fs; use serde::Deserialize; use std::fmt::Write as _; use std::io::{BufRead, BufReader}; use std::path::Path; const PYPY_ABI_TAG: &str = "pp73"; const GRAALPY_ABI_TAG: &str = "graalpy230_310_native"; /// Some of the sysconfigdata of Python interpreter we care about #[derive(Debug, Clone, Deserialize, Eq, PartialEq)] pub struct InterpreterConfig { /// Python's major version pub major: usize, /// Python's minor version pub minor: usize, /// cpython, pypy, or graalpy #[serde(rename = "interpreter")] pub interpreter_kind: InterpreterKind, /// For linux and mac, this contains the value of the abiflags, e.g. "m" /// for python3.7m or "dm" for python3.6dm. Since python3.8, the value is /// empty. On windows, the value was always None. /// /// See PEP 261 and PEP 393 for details pub abiflags: String, /// Suffix to use for extension modules as given by sysconfig. pub ext_suffix: String, /// Pointer width pub pointer_width: Option, } impl InterpreterConfig { /// Lookup a wellknown sysconfig for a given Python interpreter pub fn lookup_one( target: &Target, python_impl: InterpreterKind, python_version: (usize, usize), ) -> Option { use InterpreterKind::*; let (major, minor) = python_version; if major < 3 { // Python 2 is not supported return None; } let python_arch = if matches!(target.target_arch(), Arch::Armv6L | Arch::Armv7L) { "arm" } else if matches!(target.target_arch(), Arch::Powerpc64Le) && python_impl == PyPy { "ppc_64" } else if matches!(target.target_arch(), Arch::X86) && python_impl == PyPy { "x86" } else { target.get_python_arch() }; // See https://github.com/pypa/auditwheel/issues/349 let target_env = match python_impl { CPython => { if python_version >= (3, 11) { target.target_env().to_string() } else { target.target_env().to_string().replace("musl", "gnu") } } PyPy | GraalPy => "gnu".to_string(), }; match (target.target_os(), python_impl) { (Os::Linux, CPython) => { let abiflags = if python_version < (3, 8) { "m".to_string() } else { "".to_string() }; let ldversion = format!("{}{}{}", major, minor, abiflags); let ext_suffix = format!( ".cpython-{}-{}-linux-{}.so", ldversion, python_arch, target_env ); Some(Self { major, minor, interpreter_kind: CPython, abiflags, ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::Linux, PyPy) => { let abi_tag = format!("pypy{}{}-{}", major, minor, PYPY_ABI_TAG); let ext_suffix = format!(".{}-{}-linux-{}.so", abi_tag, python_arch, target_env); Some(Self { major, minor, interpreter_kind: PyPy, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::Macos, CPython) => { let abiflags = if python_version < (3, 8) { "m".to_string() } else { "".to_string() }; let ldversion = format!("{}{}{}", major, minor, abiflags); let ext_suffix = format!(".cpython-{}-darwin.so", ldversion); Some(Self { major, minor, interpreter_kind: CPython, abiflags, ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::Macos, PyPy) => { let ext_suffix = format!(".pypy{}{}-{}-darwin.so", major, minor, PYPY_ABI_TAG); Some(Self { major, minor, interpreter_kind: PyPy, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::Windows, CPython) => { let ext_suffix = if python_version < (3, 8) { ".pyd".to_string() } else { let platform = match target.target_arch() { Arch::Aarch64 => "win_arm64", Arch::X86 => "win32", Arch::X86_64 => "win_amd64", _ => return None, }; format!(".cp{}{}-{}.pyd", major, minor, platform) }; Some(Self { major, minor, interpreter_kind: CPython, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::Windows, PyPy) => { if target.target_arch() != Arch::X86_64 { // PyPy on Windows only supports x86_64 return None; } let ext_suffix = format!(".pypy{}{}-{}-win_amd64.pyd", major, minor, PYPY_ABI_TAG); Some(Self { major, minor, interpreter_kind: PyPy, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::FreeBsd, CPython) => { let (abiflags, ext_suffix) = if python_version < (3, 8) { ("m".to_string(), ".so".to_string()) } else { ("".to_string(), format!(".cpython-{}{}.so", major, minor)) }; Some(Self { major, minor, interpreter_kind: CPython, abiflags, ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::NetBsd, CPython) => { let ext_suffix = ".so".to_string(); Some(Self { major, minor, interpreter_kind: CPython, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::OpenBsd, CPython) => { let ldversion = format!("{}{}", major, minor); let ext_suffix = format!(".cpython-{}.so", ldversion); Some(Self { major, minor, interpreter_kind: CPython, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (Os::Emscripten, CPython) => { let ldversion = format!("{}{}", major, minor); let ext_suffix = format!(".cpython-{}-{}-emscripten.so", ldversion, python_arch); Some(Self { major, minor, interpreter_kind: CPython, abiflags: String::new(), ext_suffix, pointer_width: Some(target.pointer_width()), }) } (_, _) => None, } } /// Lookup wellknown sysconfigs for a given target pub fn lookup_target(target: &Target) -> Vec { let mut configs = Vec::new(); for (python_impl, max_minor_ver) in [ (InterpreterKind::CPython, MAXIMUM_PYTHON_MINOR), (InterpreterKind::PyPy, MAXIMUM_PYPY_MINOR), ] { for minor in MINIMUM_PYTHON_MINOR..=max_minor_ver { if let Some(config) = Self::lookup_one(target, python_impl, (3, minor)) { configs.push(config); } } } configs } /// Construct a new InterpreterConfig from a pyo3 config file pub fn from_pyo3_config(config_file: &Path, target: &Target) -> Result { let config_file = fs::File::open(config_file)?; let reader = BufReader::new(config_file); let lines = reader.lines(); macro_rules! parse_value { ($variable:ident, $value:ident) => { $variable = Some($value.trim().parse().context(format!( concat!( "failed to parse ", stringify!($variable), " from config value '{}'" ), $value ))?) }; } let mut implementation = None; let mut version = None; let mut abiflags = None; let mut ext_suffix = None; let mut abi_tag = None; let mut pointer_width = None; for (i, line) in lines.enumerate() { let line = line.context("failed to read line from config")?; let (key, value) = line .split_once('=') .with_context(|| format!("expected key=value pair on line {}", i + 1))?; match key { "implementation" => parse_value!(implementation, value), "version" => parse_value!(version, value), "abiflags" => parse_value!(abiflags, value), "ext_suffix" => parse_value!(ext_suffix, value), "abi_tag" => parse_value!(abi_tag, value), "pointer_width" => parse_value!(pointer_width, value), _ => continue, } } let version: String = version.context("missing value for version")?; let (ver_major, ver_minor) = version .split_once('.') .context("Invalid python interpreter version")?; let major = ver_major.parse::().with_context(|| { format!("Invalid python interpreter major version '{ver_major}', expect a digit") })?; let minor = ver_minor.parse::().with_context(|| { format!("Invalid python interpreter minor version '{ver_minor}', expect a digit") })?; let implementation = implementation.unwrap_or_else(|| "cpython".to_string()); let interpreter_kind = implementation.parse().map_err(|e| format_err!("{}", e))?; let abi_tag = match interpreter_kind { InterpreterKind::CPython => { if (major, minor) >= (3, 8) { abi_tag.unwrap_or_else(|| format!("{major}{minor}")) } else { abi_tag.unwrap_or_else(|| format!("{major}{minor}m")) } } InterpreterKind::PyPy => abi_tag.unwrap_or_else(|| PYPY_ABI_TAG.to_string()), InterpreterKind::GraalPy => abi_tag.unwrap_or_else(|| GRAALPY_ABI_TAG.to_string()), }; let file_ext = if target.is_windows() { "pyd" } else { "so" }; let ext_suffix = if target.is_linux() || target.is_macos() { // See https://github.com/pypa/auditwheel/issues/349 let target_env = if (major, minor) >= (3, 11) { target.target_env().to_string() } else { target.target_env().to_string().replace("musl", "gnu") }; match interpreter_kind { InterpreterKind::CPython => ext_suffix.unwrap_or_else(|| { // Eg: .cpython-38-x86_64-linux-gnu.so format!( ".cpython-{}-{}-{}-{}.{}", abi_tag, target.get_python_arch(), target.get_python_os(), target_env, file_ext, ) }), InterpreterKind::PyPy => ext_suffix.unwrap_or_else(|| { // Eg: .pypy38-pp73-x86_64-linux-gnu.so format!( ".pypy{}{}-{}-{}-{}-{}.{}", major, minor, abi_tag, target.get_python_arch(), target.get_python_os(), target_env, file_ext, ) }), InterpreterKind::GraalPy => ext_suffix.unwrap_or_else(|| { // e.g. .graalpy230-310-native-x86_64-linux.so format!( ".{}-{}-{}.{}", abi_tag.replace('_', "-"), target.get_python_arch(), target.get_python_os(), file_ext, ) }), } } else if target.is_emscripten() && matches!(interpreter_kind, InterpreterKind::CPython) { ext_suffix.unwrap_or_else(|| { format!( ".cpython-{}-{}-{}.{}", abi_tag, target.get_python_arch(), target.get_python_os(), file_ext ) }) } else { ext_suffix.context("missing value for ext_suffix")? }; Ok(Self { major, minor, interpreter_kind, abiflags: abiflags.unwrap_or_default(), ext_suffix, pointer_width, }) } /// Generate pyo3 config file content pub fn pyo3_config_file(&self) -> String { let mut content = format!( r#"implementation={implementation} version={major}.{minor} shared=true abi3=false build_flags=WITH_THREAD suppress_build_script_link_lines=false"#, implementation = self.interpreter_kind, major = self.major, minor = self.minor, ); if let Some(pointer_width) = self.pointer_width { write!(content, "\npointer_width={pointer_width}").unwrap(); } content } } #[cfg(test)] mod test { use super::*; use expect_test::expect; use pretty_assertions::assert_eq; #[test] fn test_well_known_sysconfigs_linux() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-x86_64-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("i686-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-i386-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-aarch64-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("armv7-unknown-linux-gnueabihf".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-arm-linux-gnueabihf.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("arm-unknown-linux-gnueabihf".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-arm-linux-gnueabihf.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("powerpc64le-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!( sysconfig.ext_suffix, ".cpython-310-powerpc64le-linux-gnu.so" ); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("s390x-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-s390x-linux-gnu.so"); // PyPy let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.abiflags, ""); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-x86_64-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("i686-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-x86-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-aarch64-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("armv7-unknown-linux-gnueabihf".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-arm-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("arm-unknown-linux-gnueabihf".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-arm-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("powerpc64le-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-ppc_64-linux-gnu.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("s390x-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-s390x-linux-gnu.so"); } #[test] fn test_well_known_sysconfigs_macos() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-apple-darwin".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-darwin.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-apple-darwin".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310-darwin.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-apple-darwin".to_string())).unwrap(), InterpreterKind::CPython, (3, 7), ) .unwrap(); assert_eq!(sysconfig.abiflags, "m"); assert_eq!(sysconfig.ext_suffix, ".cpython-37m-darwin.so"); // PyPy let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-apple-darwin".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.abiflags, ""); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-darwin.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-apple-darwin".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-darwin.so"); } #[test] fn test_well_known_sysconfigs_windows() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-pc-windows-msvc".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cp310-win_amd64.pyd"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("i686-pc-windows-msvc".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cp310-win32.pyd"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-pc-windows-msvc".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cp310-win_arm64.pyd"); // PyPy let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-pc-windows-msvc".to_string())).unwrap(), InterpreterKind::PyPy, (3, 9), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".pypy39-pp73-win_amd64.pyd"); } #[test] fn test_well_known_sysconfigs_freebsd() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-freebsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 7), ) .unwrap(); assert_eq!(sysconfig.abiflags, "m"); assert_eq!(sysconfig.ext_suffix, ".so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-freebsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.abiflags, ""); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("i686-unknown-freebsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-unknown-freebsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("armv7-unknown-freebsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); } #[test] fn test_well_known_sysconfigs_netbsd() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-netbsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 7), ) .unwrap(); assert_eq!(sysconfig.abiflags, ""); assert_eq!(sysconfig.ext_suffix, ".so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-netbsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".so"); } #[test] fn test_well_known_sysconfigs_openbsd() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-openbsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("i686-unknown-openbsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("aarch64-unknown-openbsd".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-310.so"); } #[test] fn test_well_known_sysconfigs_emscripten() { // CPython let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("wasm32-unknown-emscripten".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); assert_eq!(sysconfig.abiflags, ""); assert_eq!(sysconfig.ext_suffix, ".cpython-310-wasm32-emscripten.so"); } #[test] fn test_pyo3_config_file() { let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-linux-gnu".to_string())).unwrap(), InterpreterKind::CPython, (3, 10), ) .unwrap(); let config_file = sysconfig.pyo3_config_file(); let expected = expect![[r#" implementation=CPython version=3.10 shared=true abi3=false build_flags=WITH_THREAD suppress_build_script_link_lines=false pointer_width=64"#]]; expected.assert_eq(&config_file); } #[test] fn test_pyo3_config_file_musl_python_3_11() { let sysconfig = InterpreterConfig::lookup_one( &Target::from_target_triple(Some("x86_64-unknown-linux-musl".to_string())).unwrap(), InterpreterKind::CPython, (3, 11), ) .unwrap(); assert_eq!(sysconfig.ext_suffix, ".cpython-311-x86_64-linux-musl.so"); let config_file = sysconfig.pyo3_config_file(); let expected = expect![[r#" implementation=CPython version=3.11 shared=true abi3=false build_flags=WITH_THREAD suppress_build_script_link_lines=false pointer_width=64"#]]; expected.assert_eq(&config_file); } } python-maturin_1.3.2.orig/src/python_interpreter/get_interpreter_metadata.py0000644000000000000000000000275214446366340024651 0ustar00import json import platform import sys import sysconfig import struct if platform.python_implementation() == "PyPy": # Workaround for PyPy 3.6 on windows: # - sysconfig.get_config_var("EXT_SUFFIX") differs to importlib until # Python 3.8 # - PyPy does not load the plain ".pyd" suffix because it expects that's # for a CPython extension module # # This workaround can probably be removed once PyPy for Python 3.8 is the # main PyPy version. import importlib.machinery ext_suffix = importlib.machinery.EXTENSION_SUFFIXES[0] else: ext_suffix = sysconfig.get_config_var("EXT_SUFFIX") metadata = { # sys.implementation.name can differ from platform.python_implementation(), for example # Pyston has sys.implementation.name == "pyston" while platform.python_implementation() == cpython "implementation_name": sys.implementation.name, "executable": sys.executable or None, "major": sys.version_info.major, "minor": sys.version_info.minor, "abiflags": sysconfig.get_config_var("ABIFLAGS"), "interpreter": platform.python_implementation().lower(), "ext_suffix": ext_suffix, "soabi": sysconfig.get_config_var("SOABI") or None, "platform": sysconfig.get_platform(), # This one isn't technically necessary, but still very useful for sanity checks "system": platform.system().lower(), # This one is for generating a config file for pyo3 "pointer_width": struct.calcsize("P") * 8, } print(json.dumps(metadata)) python-maturin_1.3.2.orig/src/python_interpreter/mod.rs0000644000000000000000000011316714525221045020353 0ustar00pub use self::config::InterpreterConfig; use crate::auditwheel::PlatformTag; use crate::{BridgeModel, BuildContext, Target}; use anyhow::{bail, format_err, Context, Result}; use pep440_rs::{Version, VersionSpecifiers}; use regex::Regex; use serde::Deserialize; use std::collections::HashSet; use std::fmt; use std::io::{self, Write}; use std::ops::Deref; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; use std::str::{self, FromStr}; use tracing::debug; mod config; /// This snippets will give us information about the python interpreter's /// version and abi as json through stdout const GET_INTERPRETER_METADATA: &str = include_str!("get_interpreter_metadata.py"); pub const MINIMUM_PYTHON_MINOR: usize = 7; /// Be liberal here to include preview versions pub const MAXIMUM_PYTHON_MINOR: usize = 13; pub const MAXIMUM_PYPY_MINOR: usize = 10; /// Identifies conditions where we do not want to build wheels fn windows_interpreter_no_build( major: usize, minor: usize, target_width: usize, pointer_width: usize, min_python_minor: usize, requires_python: Option<&VersionSpecifiers>, ) -> bool { // Only python 3 with supported major versions if major != 3 || minor < min_python_minor { return true; } // From requires-python in pyproject.toml if let Some(requires_python) = requires_python { if !requires_python.contains(&Version::from_release(vec![major, minor])) { return true; } } // There can be 32-bit installations on a 64-bit machine, but we can't link // those for 64-bit targets if pointer_width != target_width { eprintln!( "👽 {major}.{minor} is installed as {pointer_width}-bit, while the target is {target_width}-bit. Skipping." ); return true; } false } /// On windows regular Python installs are supported along with environments /// being managed by `conda`. /// /// We can't use the linux trick with trying different binary names since on /// windows the binary is always called "python.exe". However, whether dealing /// with regular Python installs or `conda` environments there are tools we can /// use to query the information regarding installed interpreters. /// /// Regular Python installs downloaded from Python.org will include the python /// launcher by default. We can use the launcher to find the information we need /// for each installed interpreter using `py -0` which produces something like /// the following output (the path can by determined using `sys.executable`): /// /// ```bash /// Installed Pythons found by py Launcher for Windows /// -3.7-64 * /// -3.6-32 /// ``` /// /// When using `conda` we can use the `conda info -e` command to retrieve information /// regarding the installed interpreters being managed by `conda`. This is an example /// of the output expected: /// /// ```bash /// # conda environments: /// # /// base C:\Users\\Anaconda3 /// foo1 * C:\Users\\Anaconda3\envs\foo1 /// foo2 * C:\Users\\Anaconda3\envs\foo2 /// ``` /// /// The information required can either by obtained by parsing this output directly or /// by invoking the interpreters to obtain the information. /// /// As well as the version numbers, etc. of the interpreters we also have to find the /// pointer width to make sure that the pointer width (32-bit or 64-bit) matches across /// platforms. fn find_all_windows( target: &Target, min_python_minor: usize, requires_python: Option<&VersionSpecifiers>, ) -> Result> { let code = "import sys; print(sys.executable or '')"; let mut interpreter = vec![]; let mut versions_found = HashSet::new(); // If Python is installed from Python.org it should include the "python launcher" // which is used to find the installed interpreters let execution = Command::new("cmd") .arg("/c") .arg("py") .arg("--list-paths") .output(); if let Ok(output) = execution { // x86_64: ' -3.10-64 * C:\Users\xxx\AppData\Local\Programs\Python\Python310\python.exe' // x86_64: ' -3.11 * C:\Users\xxx\AppData\Local\Programs\Python\Python310\python.exe' // arm64: ' -V:3.11-arm64 * C:\Users\xxx\AppData\Local\Programs\Python\Python311-arm64\python.exe let expr = Regex::new(r" -(V:)?(\d).(\d+)-?(arm)?(\d*)\s*\*?\s*(.*)?").unwrap(); let stdout = str::from_utf8(&output.stdout).unwrap(); for line in stdout.lines() { if let Some(capture) = expr.captures(line) { let major = capture .get(2) .unwrap() .as_str() .parse::() .context("Expected a digit for major version")?; let minor = capture .get(3) .unwrap() .as_str() .parse::() .context("Expected a digit for minor version")?; if !versions_found.contains(&(major, minor)) { let pointer_width = capture .get(5) .map(|m| m.as_str()) .filter(|m| !m.is_empty()) .unwrap_or("64") .parse::() .context("Expected a digit for pointer width")?; if windows_interpreter_no_build( major, minor, target.pointer_width(), pointer_width, min_python_minor, requires_python, ) { continue; } let executable = capture.get(6).unwrap().as_str(); let output = Command::new(executable).args(["-c", code]).output(); let output = match output { Ok(output) => output, Err(err) => { eprintln!( "âš ï¸ Warning: failed to determine the path to python for `{executable}`: {err}" ); continue; } }; let path = str::from_utf8(&output.stdout).unwrap().trim(); if !output.status.success() || path.trim().is_empty() { eprintln!( "âš ï¸ Warning: couldn't determine the path to python for `{executable}`" ); continue; } interpreter.push(path.to_string()); versions_found.insert((major, minor)); } } } } // Conda environments are also supported on windows let conda_info = Command::new("conda").arg("info").arg("-e").output(); if let Ok(output) = conda_info { let lines = str::from_utf8(&output.stdout).unwrap().lines(); // The regex has three parts: The first matches the name and skips // comments, the second skips the part in between and the third // extracts the path let re = Regex::new(r"^([^#].*?)[\s*]+([\w\\:.-]+)\s*$").unwrap(); let mut paths = vec![]; for i in lines { if let Some(capture) = re.captures(i) { if &capture[1] == "base" { continue; } paths.push(String::from(&capture[2])); } } for path in paths { let executable_win = Path::new(&path).join("python.exe"); let executable = if executable_win.exists() { executable_win } else { Path::new(&path).join("python") }; if let Some(python_info) = windows_python_info(&executable)? { if windows_interpreter_no_build( python_info.major, python_info.minor, target.pointer_width(), python_info.pointer_width.unwrap(), min_python_minor, requires_python, ) { continue; } interpreter.push(String::from(executable.to_str().unwrap())); versions_found.insert((python_info.major, python_info.minor)); } } } // Fallback to pythonX.Y for Microsoft Store versions for minor in min_python_minor..=MAXIMUM_PYTHON_MINOR { if !versions_found.contains(&(3, minor)) { let executable = format!("python3.{minor}.exe"); if let Some(python_info) = windows_python_info(Path::new(&executable))? { if windows_interpreter_no_build( python_info.major, python_info.minor, target.pointer_width(), python_info.pointer_width.unwrap(), min_python_minor, requires_python, ) { continue; } interpreter.push(executable); versions_found.insert((3, minor)); } } } if interpreter.is_empty() { bail!( "Could not find any interpreters, are you sure you have python installed on your PATH?" ); }; Ok(interpreter) } fn windows_python_info(executable: &Path) -> Result> { let python_info = Command::new(executable) .arg("-c") .arg("import sys; print(sys.version)") .output(); let python_info = match python_info { Ok(python_info) => python_info, Err(err) => { if err.kind() == io::ErrorKind::NotFound { // python executable not found return Ok(None); } else { bail!( "Error getting Python version info from {}", executable.display() ); } } }; let version_info = str::from_utf8(&python_info.stdout).unwrap(); let expr = Regex::new(r"(\d).(\d).(\d+)").unwrap(); if let Some(capture) = expr.captures(version_info) { let major = capture.get(1).unwrap().as_str().parse::().unwrap(); let minor = capture.get(2).unwrap().as_str().parse::().unwrap(); let pointer_width = if version_info.contains("64 bit (AMD64)") { 64 } else { 32 }; Ok(Some(InterpreterConfig { major, minor, interpreter_kind: InterpreterKind::CPython, abiflags: String::new(), ext_suffix: String::new(), pointer_width: Some(pointer_width), })) } else { Ok(None) } } #[derive(Debug, Clone, Copy, Eq, PartialEq, Deserialize, clap::ValueEnum)] #[serde(rename_all = "lowercase")] #[clap(rename_all = "lower")] pub enum InterpreterKind { CPython, PyPy, GraalPy, } impl InterpreterKind { /// Is this a CPython interpreter? pub fn is_cpython(&self) -> bool { matches!(self, InterpreterKind::CPython) } /// Is this a PyPy interpreter? pub fn is_pypy(&self) -> bool { matches!(self, InterpreterKind::PyPy) } /// Is this a GraalPy interpreter? pub fn is_graalpy(&self) -> bool { matches!(self, InterpreterKind::GraalPy) } } impl fmt::Display for InterpreterKind { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { InterpreterKind::CPython => write!(f, "CPython"), InterpreterKind::PyPy => write!(f, "PyPy"), InterpreterKind::GraalPy => write!(f, "GraalPy"), } } } impl FromStr for InterpreterKind { type Err = String; fn from_str(s: &str) -> Result { match s.to_ascii_lowercase().as_str() { "cpython" => Ok(InterpreterKind::CPython), "pypy" => Ok(InterpreterKind::PyPy), "graalvm" | "graalpy" => Ok(InterpreterKind::GraalPy), unknown => Err(format!("Unknown interpreter kind '{unknown}'")), } } } /// The output format of [GET_INTERPRETER_METADATA] #[derive(Deserialize)] struct InterpreterMetadataMessage { implementation_name: String, executable: Option, major: usize, minor: usize, abiflags: Option, interpreter: String, ext_suffix: Option, // comes from `sysconfig.get_platform()` platform: String, // comes from `platform.system()` system: String, soabi: Option, } /// The location and version of an interpreter #[derive(Debug, Clone, Eq, PartialEq)] pub struct PythonInterpreter { /// Python's sysconfig /// Python's major version pub config: InterpreterConfig, /// Path to the python interpreter, e.g. /usr/bin/python3.6 /// /// Just the name of the binary in PATH does also work, e.g. `python3.5` pub executable: PathBuf, /// Comes from `sysconfig.get_platform()` /// /// Note that this can be `None` when cross compiling pub platform: Option, /// Is this interpreter runnable /// /// When cross compile the target interpreter isn't runnable, /// and it's `executable` is empty pub runnable: bool, /// Comes from `sys.platform.name` pub implementation_name: String, /// Comes from sysconfig var `SOABI` pub soabi: Option, } impl Deref for PythonInterpreter { type Target = InterpreterConfig; fn deref(&self) -> &Self::Target { &self.config } } /// Returns the abiflags that are assembled through the message, with some /// additional sanity checks. /// /// The rules are as follows: /// - python 3 + Unix: Use ABIFLAGS /// - python 3 + Windows: No ABIFLAGS, return an empty string fn fun_with_abiflags( message: &InterpreterMetadataMessage, target: &Target, bridge: &BridgeModel, ) -> Result { if bridge != &BridgeModel::Cffi && target.get_python_os() != message.system && !target.cross_compiling() { bail!( "platform.system() in python, {}, and the rust target, {:?}, don't match ಠ_ಠ", message.system, target, ) } if message.major != 3 || message.minor < 7 { bail!( "Only python >= 3.7 is supported, while you're using python {}.{}", message.major, message.minor ); } if message.interpreter == "pypy" || message.interpreter == "graalvm" { // pypy and graalpy do not specify abi flags Ok("".to_string()) } else if message.system == "windows" { if matches!(message.abiflags.as_deref(), Some("") | None) { Ok("".to_string()) } else { bail!("A python 3 interpreter on windows does not define abiflags in its sysconfig ಠ_ಠ") } } else if let Some(ref abiflags) = message.abiflags { if message.minor >= 8 { // for 3.8, "builds with and without pymalloc are ABI compatible" and the flag dropped Ok(abiflags.to_string()) } else if (abiflags != "m") && (abiflags != "dm") { bail!("A python 3 interpreter on linux or mac os must have 'm' or 'dm' as abiflags ಠ_ಠ") } else { Ok(abiflags.to_string()) } } else { bail!("A python 3 interpreter on linux or mac os must define abiflags in its sysconfig ಠ_ಠ") } } impl PythonInterpreter { /// Does this interpreter have PEP 384 stable api aka. abi3 support? pub fn has_stable_api(&self) -> bool { if self.implementation_name.parse::().is_err() { false } else { match self.interpreter_kind { InterpreterKind::CPython => true, InterpreterKind::PyPy | InterpreterKind::GraalPy => false, } } } /// Returns the supported python environment in the PEP 425 format used for the wheel filename: /// {python tag}-{abi tag}-{platform tag} /// /// Don't ask me why or how, this is just what setuptools uses so I'm also going to use /// /// If abi3 is true, cpython wheels use the generic abi3 with the given version as minimum pub fn get_tag(&self, context: &BuildContext, platform_tags: &[PlatformTag]) -> Result { // Restrict `sysconfig.get_platform()` usage to Windows and non-portable Linux only for now // so we don't need to deal with macOS deployment target let target = &context.target; let use_sysconfig_platform = target.is_windows() || (target.is_linux() && platform_tags.iter().any(|tag| !tag.is_portable())) || target.is_illumos(); let platform = if use_sysconfig_platform { if let Some(platform) = self.platform.clone() { platform } else { context.get_platform_tag(platform_tags)? } } else { context.get_platform_tag(platform_tags)? }; let tag = if self.implementation_name.parse::().is_err() { // Use generic tags when `sys.implementation.name` != `platform.python_implementation()`, for example Pyston // See also https://github.com/pypa/packaging/blob/0031046f7fad649580bc3127d1cef9157da0dd79/packaging/tags.py#L234-L261 format!( "{interpreter}{major}{minor}-{soabi}-{platform}", interpreter = self.implementation_name, major = self.major, minor = self.minor, soabi = self .soabi .as_deref() .unwrap_or("none") .replace(['-', '.'], "_"), platform = platform ) } else { match self.interpreter_kind { InterpreterKind::CPython => { if target.is_unix() { format!( "cp{major}{minor}-cp{major}{minor}{abiflags}-{platform}", major = self.major, minor = self.minor, abiflags = self.abiflags, platform = platform ) } else { // On windows the abiflags are missing, but this seems to work format!( "cp{major}{minor}-none-{platform}", major = self.major, minor = self.minor, platform = platform ) } } InterpreterKind::PyPy => { // pypy uses its version as part of the ABI, e.g. // pypy 3.7 7.3 => numpy-1.20.1-pp37-pypy37_pp73-manylinux2014_x86_64.whl format!( "pp{major}{minor}-{abi_tag}-{platform}", major = self.major, minor = self.minor, abi_tag = calculate_abi_tag(&self.ext_suffix) .expect("PyPy's syconfig didn't define a valid `EXT_SUFFIX` ಠ_ಠ"), platform = platform, ) } InterpreterKind::GraalPy => { // GraalPy like PyPy uses its version as part of the ABI // graalpy 3.10 23.1 => numpy-1.23.5-graalpy310-graalpy231_310_native-manylinux2014_x86_64.whl format!( "graalpy{major}{minor}-{abi_tag}-{platform}", major = self.major, minor = self.minor, abi_tag = calculate_abi_tag(&self.ext_suffix) .expect("GraalPy's syconfig didn't define a valid `EXT_SUFFIX` ಠ_ಠ"), platform = platform, ) } } }; Ok(tag) } /// Adds the ext_suffix we read from python or know (.pyd/.abi3.so) and adds it to the base name /// /// For CPython, generate extensions as follows: /// /// For python 3, there is PEP 3149, but /// that is only valid for 3.2 - 3.4. Since only 3.6+ is supported, the /// templates are adapted from the (also /// incorrect) release notes of CPython 3.5: /// https://docs.python.org/3/whatsnew/3.5.html#build-and-c-api-changes /// /// Examples for 64-bit on CPython 3.6m: /// Linux: foobar.cpython-36m-x86_64-linux-gnu.so /// Windows: foobar.cp36-win_amd64.pyd /// Mac: foobar.cpython-36m-darwin.so /// FreeBSD: foobar.cpython-36m.so /// /// For pypy3, we read importlib.machinery.EXTENSION_SUFFIXES[0]. pub fn get_library_name(&self, base: &str) -> String { format!( "{base}{ext_suffix}", base = base, ext_suffix = self.ext_suffix ) } /// Is this a debug build of Python for Windows? pub fn is_windows_debug(&self) -> bool { self.ext_suffix.starts_with("_d.") && self.ext_suffix.ends_with(".pyd") } /// Checks whether the given command is a python interpreter and returns a /// [PythonInterpreter] if that is the case pub fn check_executable( executable: impl AsRef, target: &Target, bridge: &BridgeModel, ) -> Result> { let output = Command::new(executable.as_ref()) .env("PYTHONNOUSERSITE", "1") .args(["-c", GET_INTERPRETER_METADATA]) .output(); let err_msg = format!( "Trying to get metadata from the python interpreter '{}' failed", executable.as_ref().display() ); let output = match output { Ok(output) => { if output.status.success() { output } else { let stderr = String::from_utf8_lossy(&output.stderr); if stderr.starts_with(&format!( "pyenv: {}: command not found", executable.as_ref().display() )) { eprintln!( "âš ï¸ Warning: skipped unavailable python interpreter '{}' from pyenv", executable.as_ref().display() ); return Ok(None); } else { eprintln!("{stderr}"); bail!(err_msg); } } } Err(err) => { if err.kind() == io::ErrorKind::NotFound { if cfg!(windows) { if let Some(python) = executable.as_ref().to_str() { let ver = if python.starts_with("python") { python.strip_prefix("python").unwrap_or(python) } else { python }; // Try py -x.y on Windows let mut metadata_py = tempfile::NamedTempFile::new()?; write!(metadata_py, "{GET_INTERPRETER_METADATA}")?; let mut cmd = Command::new("cmd"); cmd.arg("/c") .arg("py") .arg(format!("-{}-{}", ver, target.pointer_width())) .arg(metadata_py.path()) .env("PYTHONNOUSERSITE", "1"); let output = cmd.output(); match output { Ok(output) if output.status.success() => output, _ => return Ok(None), } } else { return Ok(None); } } else { return Ok(None); } } else { return Err(err).context(err_msg); } } }; let message: InterpreterMetadataMessage = serde_json::from_slice(&output.stdout) .context(err_msg) .context(String::from_utf8_lossy(&output.stdout).trim().to_string())?; if (message.major == 2 && message.minor != 7) || (message.major == 3 && message.minor < 5) { debug!( "Skipping outdated python interpreter '{}'", executable.as_ref().display() ); return Ok(None); } let interpreter = match message.interpreter.as_str() { "cpython" => InterpreterKind::CPython, "pypy" => InterpreterKind::PyPy, "graalvm" | "graalpy" => InterpreterKind::GraalPy, other => { bail!("Unsupported interpreter {}", other); } }; let abiflags = fun_with_abiflags(&message, target, bridge).context(format_err!( "Failed to get information from the python interpreter at {}", executable.as_ref().display() ))?; let platform = if message.platform.starts_with("macosx") { // We don't use platform from sysconfig on macOS None } else { Some(message.platform.to_lowercase().replace(['-', '.'], "_")) }; let executable = message .executable .map(PathBuf::from) .unwrap_or_else(|| executable.as_ref().to_path_buf()); debug!( "Found {} interpreter at {}", interpreter, executable.display() ); Ok(Some(PythonInterpreter { config: InterpreterConfig { major: message.major, minor: message.minor, interpreter_kind: interpreter, abiflags, ext_suffix: message .ext_suffix .context("syconfig didn't define an `EXT_SUFFIX` ಠ_ಠ")?, pointer_width: None, }, executable, platform, runnable: true, implementation_name: message.implementation_name, soabi: message.soabi, })) } /// Construct a `PythonInterpreter` from a sysconfig and target pub fn from_config(config: InterpreterConfig) -> Self { let implementation_name = config.interpreter_kind.to_string().to_ascii_lowercase(); PythonInterpreter { config, executable: PathBuf::new(), platform: None, runnable: false, implementation_name, soabi: None, } } /// Find all available python interpreters for a given target pub fn find_by_target( target: &Target, requires_python: Option<&VersionSpecifiers>, ) -> Vec { InterpreterConfig::lookup_target(target) .into_iter() .filter_map(|config| match requires_python { Some(requires_python) => { if requires_python .contains(&Version::from_release(vec![config.major, config.minor])) { Some(Self::from_config(config)) } else { None } } None => Some(Self::from_config(config)), }) .collect() } /// Tries to find all installed python versions using the heuristic for the /// given platform. /// /// We have two filters: The optional requires-python from the pyproject.toml and minimum python /// minor either from the bindings (i.e. Cargo.toml `abi3-py{major}{minor}`) or the global /// default minimum minor version pub fn find_all( target: &Target, bridge: &BridgeModel, requires_python: Option<&VersionSpecifiers>, ) -> Result> { let min_python_minor = match bridge { BridgeModel::Bindings(_, minor) | BridgeModel::Bin(Some((_, minor))) => *minor, _ => MINIMUM_PYTHON_MINOR, }; let executables = if target.is_windows() { find_all_windows(target, min_python_minor, requires_python)? } else { let mut executables: Vec = (min_python_minor..=MAXIMUM_PYTHON_MINOR) .filter(|minor| { requires_python .map(|requires_python| { requires_python.contains(&Version::from_release(vec![3, *minor])) }) .unwrap_or(true) }) .map(|minor| format!("python3.{minor}")) .collect(); // Also try to find PyPy for cffi and pyo3 bindings if *bridge == BridgeModel::Cffi || bridge.is_bindings("pyo3") || bridge.is_bindings("pyo3-ffi") { executables.extend( (min_python_minor..=MAXIMUM_PYPY_MINOR) .filter(|minor| { requires_python .map(|requires_python| { requires_python .contains(&Version::from_release(vec![3, *minor])) }) .unwrap_or(true) }) .map(|minor| format!("pypy3.{minor}")), ); } executables }; let mut available_versions = Vec::new(); for executable in executables { if let Some(version) = PythonInterpreter::check_executable(executable, target, bridge)? { available_versions.push(version); } } Ok(available_versions) } /// Checks that given list of executables are all valid python interpreters, /// determines the abiflags and versions of those interpreters and /// returns them as [PythonInterpreter] pub fn check_executables( executables: &[PathBuf], target: &Target, bridge: &BridgeModel, ) -> Result> { let mut available_versions = Vec::new(); for executable in executables { if let Some(version) = PythonInterpreter::check_executable(executable, target, bridge) .context(format!( "{} is not a valid python interpreter", executable.display() ))? { available_versions.push(version); } else { bail!( "Python interpreter `{}` doesn't exist", executable.display() ); } } Ok(available_versions) } /// Run a python script using this Python interpreter. pub fn run_script(&self, script: &str) -> Result { if !self.runnable { bail!("This {} isn't runnable", self); } let out = Command::new(&self.executable) .env("PYTHONIOENCODING", "utf-8") .stdin(Stdio::piped()) .stdout(Stdio::piped()) .stderr(Stdio::inherit()) .spawn() .and_then(|mut child| { child .stdin .as_mut() .expect("piped stdin") .write_all(script.as_bytes())?; child.wait_with_output() }); match out { Err(err) => { if err.kind() == io::ErrorKind::NotFound { bail!( "Could not find any interpreter at {}, \ are you sure you have Python installed on your PATH?", self.executable.display() ); } else { bail!( "Failed to run the Python interpreter at {}: {}", self.executable.display(), err ); } } Ok(ok) if !ok.status.success() => bail!("Python script failed"), Ok(ok) => Ok(String::from_utf8(ok.stdout)?), } } /// Whether this Python interpreter support portable manylinux/musllinux wheels /// /// Returns `true` if we can not decide pub fn support_portable_wheels(&self) -> bool { if !self.runnable { return true; } let out = Command::new(&self.executable) .args([ "-m", "pip", "debug", "--verbose", "--disable-pip-version-check", ]) .output(); match out { Err(_) => true, Ok(ok) if !ok.status.success() => true, Ok(ok) => { if let Ok(stdout) = String::from_utf8(ok.stdout) { stdout.contains("manylinux") || stdout.contains("musllinux") } else { true } } } } /// An opaque string that uniquely identifies this Python interpreter. /// Used to trigger rebuilds for `pyo3` when the Python interpreter changes. pub fn environment_signature(&self) -> String { let pointer_width = self.pointer_width.unwrap_or(64); format!( "{}-{}.{}-{}bit", self.implementation_name, self.major, self.minor, pointer_width ) } /// Returns the site-packages directory inside a venv e.g. /// {venv_base}/lib/python{x}.{y} on unix or {venv_base}/Lib on window pub fn get_venv_site_package(&self, venv_base: impl AsRef, target: &Target) -> PathBuf { if target.is_unix() { match self.interpreter_kind { InterpreterKind::CPython | InterpreterKind::GraalPy => { let python_dir = format!("python{}.{}", self.major, self.minor); venv_base .as_ref() .join("lib") .join(python_dir) .join("site-packages") } InterpreterKind::PyPy => venv_base.as_ref().join("site-packages"), } } else { venv_base.as_ref().join("Lib").join("site-packages") } } } impl fmt::Display for PythonInterpreter { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { if self.runnable { write!( f, "{} {}.{}{} at {}", self.config.interpreter_kind, self.config.major, self.config.minor, self.config.abiflags, self.executable.display() ) } else { write!( f, "{} {}.{}{}", self.config.interpreter_kind, self.config.major, self.config.minor, self.config.abiflags, ) } } } /// Calculate the ABI tag from EXT_SUFFIX fn calculate_abi_tag(ext_suffix: &str) -> Option { let parts = ext_suffix.split('.').collect::>(); if parts.len() < 3 { // CPython3.7 and earlier uses ".pyd" on Windows. return None; } let soabi = parts[1]; let mut soabi_split = soabi.split('-'); let abi = if soabi.starts_with("cpython") { // non-windows format!("cp{}", soabi_split.nth(1).unwrap()) } else if soabi.starts_with("cp") { // windows soabi_split.next().unwrap().to_string() } else if soabi.starts_with("pypy") { soabi_split.take(2).collect::>().join("-") } else if soabi.starts_with("graalpy") { soabi_split.take(3).collect::>().join("-") } else if !soabi.is_empty() { // pyston, ironpython, others? soabi_split.nth(1).unwrap().to_string() } else { return None; }; let abi_tag = abi.replace(['.', '-', ' '], "_"); Some(abi_tag) } #[cfg(test)] mod tests { use super::*; #[test] fn test_find_interpreter_by_target() { let target = Target::from_target_triple(Some("x86_64-unknown-linux-gnu".to_string())).unwrap(); let pythons = PythonInterpreter::find_by_target(&target, None); assert_eq!(pythons.len(), 11); let pythons = PythonInterpreter::find_by_target( &target, Some(&VersionSpecifiers::from_str(">=3.7").unwrap()), ); assert_eq!(pythons.len(), 11); let pythons = PythonInterpreter::find_by_target( &target, Some(&VersionSpecifiers::from_str(">=3.10").unwrap()), ); assert_eq!(pythons.len(), 5); } #[test] fn test_calculate_abi_tag() { let cases = vec![ (".cpython-37m-x86_64-linux-gnu.so", Some("cp37m")), (".cpython-310-x86_64-linux-gnu.so", Some("cp310")), (".cpython-310-darwin.so", Some("cp310")), (".cp310-win_amd64.pyd", Some("cp310")), (".cp39-mingw_x86_64.pyd", Some("cp39")), (".cpython-312-wasm32-wasi.so", Some("cp312")), (".cpython-38.so", Some("cp38")), (".pyd", None), (".so", None), (".pypy38-pp73-x86_64-linux-gnu.so", Some("pypy38_pp73")), ( ".graalpy-38-native-x86_64-darwin.dylib", Some("graalpy_38_native"), ), (".pyston-23-x86_64-linux-gnu.so", Some("23")), ]; for (ext_suffix, expected) in cases { assert_eq!(calculate_abi_tag(ext_suffix).as_deref(), expected); } } } python-maturin_1.3.2.orig/src/templates/.gitignore.j20000644000000000000000000000125614150041721017550 0ustar00/target # Byte-compiled / optimized / DLL files __pycache__/ .pytest_cache/ *.py[cod] # C extensions *.so # Distribution / packaging .Python .venv/ env/ bin/ build/ develop-eggs/ dist/ eggs/ lib/ lib64/ parts/ sdist/ var/ include/ man/ venv/ *.egg-info/ .installed.cfg *.egg # Installer logs pip-log.txt pip-delete-this-directory.txt pip-selfcheck.json # Unit test / coverage reports htmlcov/ .tox/ .coverage .cache nosetests.xml coverage.xml # Translations *.mo # Mr Developer .mr.developer.cfg .project .pydevproject # Rope .ropeproject # Django stuff: *.log *.pot .DS_Store # Sphinx documentation docs/_build/ # PyCharm .idea/ # VSCode .vscode/ # Pyenv .python-version python-maturin_1.3.2.orig/src/templates/Cargo.toml.j20000644000000000000000000000100614525221045017506 0ustar00[package] name = "{{ name }}" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html {%- if bindings != "bin" %} [lib] name = "{{ crate_name }}" crate-type = ["cdylib"] {%- endif %} [dependencies] {% if bindings == "pyo3" -%} pyo3 = "0.19.0" {% elif bindings == "rust-cpython" -%} cpython = "0.7.1" {% elif bindings == "uniffi" -%} uniffi = "0.25.0" [build-dependencies] uniffi = { version = "0.25.0", features = ["build"] } {% endif -%} python-maturin_1.3.2.orig/src/templates/__init__.py.j20000644000000000000000000000022514446366340017703 0ustar00from .{{ crate_name }} import * __doc__ = {{ crate_name }}.__doc__ if hasattr({{ crate_name }}, "__all__"): __all__ = {{ crate_name }}.__all__ python-maturin_1.3.2.orig/src/templates/build.rs.j20000644000000000000000000000017314446366340017241 0ustar00{%- if bindings == "uniffi" -%} fn main() { uniffi::generate_scaffolding("./src/example.udl").unwrap(); } {% endif -%} python-maturin_1.3.2.orig/src/templates/example.udl.j20000644000000000000000000000006014525221045017716 0ustar00namespace example { u32 add(u32 a, u32 b); }; python-maturin_1.3.2.orig/src/templates/lib.rs.j20000644000000000000000000000132214446366340016705 0ustar00{%- if bindings == "pyo3" -%} use pyo3::prelude::*; /// Formats the sum of two numbers as string. #[pyfunction] fn sum_as_string(a: usize, b: usize) -> PyResult { Ok((a + b).to_string()) } /// A Python module implemented in Rust. #[pymodule] fn {{crate_name}}(_py: Python, m: &PyModule) -> PyResult<()> { m.add_function(wrap_pyfunction!(sum_as_string, m)?)?; Ok(()) } {%- elif bindings == "rust-cpython" -%} use cpython::py_module_initializer; py_module_initializer!({{crate_name}}, |py, m| { m.add(py, "__doc__", "Module documentation string")?; Ok(()) }); {%- elif bindings == "uniffi" -%} fn add(a: u32, b: u32) -> u32 { a + b } uniffi::include_scaffolding!("example"); {%- endif %} python-maturin_1.3.2.orig/src/templates/main.rs.j20000644000000000000000000000005514150041721017046 0ustar00fn main() { println!("Hello, world!"); } python-maturin_1.3.2.orig/src/templates/pyproject.toml.j20000644000000000000000000000172014525221045020475 0ustar00[build-system] requires = ["maturin>={{ version_major }}.{{ version_minor }},<{{ version_major + 1 }}.0"] build-backend = "maturin" [project] name = "{{ name }}" requires-python = ">=3.8" classifiers = [ "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] {% if bindings == "cffi" -%} dependencies = ["cffi"] {% endif -%} {% if mixed_non_src -%} [project.optional-dependencies] tests = [ "pytest", ] {% endif -%} dynamic = ["version"] {% if bindings in ["bin", "cffi", "pyo3", "rust-cpython"] or mixed_non_src -%} [tool.maturin] {% if bindings == "cffi" or bindings == "bin" -%} bindings = "{{ bindings }}" {% endif -%} {% if mixed_non_src -%} python-source = "python" {% endif -%} {% if bindings == "pyo3" -%} features = ["pyo3/extension-module"] {% elif bindings == "rust-cpython" -%} features = ["cpython/extension-module"] {% endif -%} {% endif -%} python-maturin_1.3.2.orig/src/templates/test_all.py.j20000644000000000000000000000017114525221045017741 0ustar00import pytest import {{ crate_name }} def test_sum_as_string(): assert {{ crate_name }}.sum_as_string(1, 1) == "2" python-maturin_1.3.2.orig/sysconfig/Readme.md0000644000000000000000000000032613331044205016201 0ustar00This folder contains all the sysconfigs (`python -m sysconfig`) I came across. I collected those because they differ highly across versions and operating systems, but are essential for naming wheels and libraries. python-maturin_1.3.2.orig/sysconfig/cpython-android-3.8-aarch64.txt0000644000000000000000000006737013710341455022105 0ustar00Platform: "linux-aarch64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/data/data/com.termux/files/usr" include = "/data/data/com.termux/files/usr/include/python3.8" platinclude = "/data/data/com.termux/files/usr/include/python3.8" platlib = "/data/data/com.termux/files/usr/lib/python3.8/site-packages" platstdlib = "/data/data/com.termux/files/usr/lib/python3.8" purelib = "/data/data/com.termux/files/usr/lib/python3.8/site-packages" scripts = "/data/data/com.termux/files/usr/bin" stdlib = "/data/data/com.termux/files/usr/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "24" AR = "aarch64-linux-android-ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "-IObjects -IInclude -IPython" BASEMODLIBS = "" BINDIR = "/data/data/com.termux/files/usr/bin" BINLIBDEST = "/data/data/com.termux/files/usr/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "aarch64-linux-android-clang -shared -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BYTESTR_DEPS = "\" CC = "aarch64-linux-android-clang" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "-fno-strict-aliasing" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-fstack-protector-strong -O3" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "-I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include" CONFIGURE_LDFLAGS = "-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--disable-dependency-tracking' '--prefix=/data/data/com.termux/files/usr' '--libdir=/data/data/com.termux/files/usr/lib' '--disable-rpath' '--disable-rpath-hack' '--host=aarch64-linux-android' 'ac_cv_file__dev_ptmx=yes' 'ac_cv_file__dev_ptc=no' 'ac_cv_func_wcsftime=no' 'ac_cv_func_ftime=no' 'ac_cv_func_faccessat=no' 'ac_cv_func_gethostbyname_r=no' '--build=x86_64-pc-linux-gnu' '--with-system-ffi' '--without-ensurepip' 'ac_cv_func_linkat=no' 'ac_cv_posix_semaphores_enabled=no' 'ac_cv_buggy_getaddrinfo=no' '--enable-loadable-sqlite-extensions' 'ac_cv_little_endian_double=yes' 'ac_cv_func_sem_open=no' 'ac_cv_func_sem_timedwait=no' 'ac_cv_func_sem_getvalue=no' 'ac_cv_func_sem_unlink=no' '--disable-nls' '--enable-shared' '--enable-static' '--libexecdir=/data/data/com.termux/files/usr/libexec' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=aarch64-linux-android' 'CC=aarch64-linux-android-clang' 'CFLAGS= -fstack-protector-strong -O3' 'LDFLAGS=-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib' 'CPPFLAGS=-I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include' 'CPP=aarch64-linux-android-cpp' 'PKG_CONFIG=/home/builder/.termux-build/_cache/android-r20-api-24-v3/bin/aarch64-linux-android-pkg-config' 'PKG_CONFIG_LIBDIR=/data/data/com.termux/files/usr/lib/pkgconfig'" CONFINCLUDEDIR = "/data/data/com.termux/files/usr/include" CONFINCLUDEPY = "/data/data/com.termux/files/usr/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/home/builder/.termux-build/python/build/coverage.info" COVERAGE_REPORT = "/home/builder/.termux-build/python/build/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-IObjects -IInclude -IPython -I. -I/home/builder/.termux-build/python/src/Include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include" CXX = "aarch64-linux-android-clang++" DESTDIRS = "/data/data/com.termux/files/usr /data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/python3.8 /data/data/com.termux/files/usr/lib/python3.8/lib-dynload" DESTLIB = "/data/data/com.termux/files/usr/lib/python3.8" DESTPATH = "" DESTSHARED = "/data/data/com.termux/files/usr/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "1" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "0" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "1" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "0" HAVE_CONFSTR = "0" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "0" HAVE_CTERMID = "0" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "0" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "0" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "0" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "0" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "0" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "0" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "0" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "0" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "0" HAVE_LINKAT = "0" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "0" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "0" HAVE_POSIX_SPAWNP = "0" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "0" HAVE_SEM_OPEN = "0" HAVE_SEM_TIMEDWAIT = "0" HAVE_SEM_UNLINK = "0" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "0" HAVE_SHM_UNLINK = "0" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "0" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "0" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "0" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "0" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "0" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "aarch64-unknown-linux-android" INCLDIRSTOMAKE = "/data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/include/python3.8 /data/data/com.termux/files/usr/include/python3.8" INCLUDEDIR = "/data/data/com.termux/files/usr/include" INCLUDEPY = "/data/data/com.termux/files/usr/include/python3.8" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "aarch64-linux-android-clang++ -shared" LDFLAGS = "-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "aarch64-linux-android-clang -shared -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib" LDVERSION = "3.8" LIBC = "" LIBDEST = "/data/data/com.termux/files/usr/lib/python3.8" LIBDIR = "/data/data/com.termux/files/usr/lib" LIBFFI_INCLUDEDIR = "/data/data/com.termux/files/usr/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/data/data/com.termux/files/usr/lib/pkgconfig" LIBPL = "/data/data/com.termux/files/usr/lib/python3.8/config-3.8" LIBPYTHON = "-lpython3.8" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -ldl -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "aarch64-linux-android-clang" LINKFORSHARED = "-pie -Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "LLVM_PROFILE_FILE="code-%p.profclangr"" LLVM_PROF_MERGER = "/home/builder/.termux-build/_cache/android-r20-api-24-v3/bin/llvm-profdata merge -output=code.profclangd *.profclangr" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/data/data/com.termux/files/usr/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "aarch64-linux-android-clang" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "1" MAKESETUP = "/home/builder/.termux-build/python/src/Modules/makesetup" MANDIR = "/data/data/com.termux/files/usr/share/man" MKDIR_P = "/usr/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/data/data/com.termux/files/usr/include" OPENSSL_LDFLAGS = "-L/data/data/com.termux/files/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "-fprofile-instr-generate" PGO_PROF_USE_FLAG = "-fprofile-instr-use=code.profclangd" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "1" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "0" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "_PYTHON_PROJECT_BASE=/home/builder/.termux-build/python/build _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo /home/builder/.termux-build/python/build/`cat pybuilddir.txt`:)/home/builder/.termux-build/python/src/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__linux_ python3.8" PYTHON_FOR_REGEN = "python3.8" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I/home/builder/.termux-build/python/src/Include/internal -IObjects -IInclude -IPython -I. -I/home/builder/.termux-build/python/src/Include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I/home/builder/.termux-build/python/src/Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I/home/builder/.termux-build/python/src/Include/internal -IObjects -IInclude -IPython -I. -I/home/builder/.termux-build/python/src/Include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib" PY_CPPFLAGS = "-IObjects -IInclude -IPython -I. -I/home/builder/.termux-build/python/src/Include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-support -L/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/lib" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I/home/builder/.termux-build/python/src/Include/internal -IObjects -IInclude -IPython -I. -I/home/builder/.termux-build/python/src/Include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -I/data/data/com.termux/files/usr/include -I/home/builder/.termux-build/_cache/android-r20-api-24-v3/sysroot/usr/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "aarch64-linux-android-readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "" SCRIPTDIR = "/data/data/com.termux/files/usr/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -ldl -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38.so" SOABI = "cpython-38" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "/home/builder/.termux-build/python/src/Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "./python" TESTPYTHONOPTS = "" TESTRUNNER = "./python /home/builder/.termux-build/python/src/Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.8 /home/builder/.termux-build/python/src/Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" VPATH = "/home/builder/.termux-build/python/src" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/home/builder/.termux-build/python/build" abs_srcdir = "/home/builder/.termux-build/python/src" base = "/data/data/com.termux/files/usr" datarootdir = "/data/data/com.termux/files/usr/share" exec_prefix = "/data/data/com.termux/files/usr" installed_base = "/data/data/com.termux/files/usr" installed_platbase = "/data/data/com.termux/files/usr" platbase = "/data/data/com.termux/files/usr" prefix = "/data/data/com.termux/files/usr" projectbase = "/data/data/com.termux/files/usr/bin" py_version = "3.8.3" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/data/data/com.termux/files/usr/lib/python3.8/config-3.8" userbase = "/data/data/com.termux/files/home/.local" python-maturin_1.3.2.orig/sysconfig/cpython-dragonfly-3.8.txt0000644000000000000000000005265114152325260021215 0ustar00Platform: "dragonfly-6.0-RELEASE-x86_64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.8" platinclude = "/usr/local/include/python3.8" platlib = "/usr/local/lib/python3.8/site-packages" platstdlib = "/usr/local/lib/python3.8" purelib = "/usr/local/lib/python3.8/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "cc -pthread -shared -L/usr/local/lib -Wl,-rpath=/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-portbld-dragonfly6.0" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -pipe -I/usr/local/include -I/usr/local/include/ncurses -O2 -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--with-system-ffi' '--without-pydebug' '--with-system-expat' '--enable-ipv6' '--with-system-libmpdec' '--with-pymalloc' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=x86_64-portbld-dragonfly6.0' 'build_alias=x86_64-portbld-dragonfly6.0' 'CC=cc' 'CFLAGS=-pipe -I/usr/local/include -I/usr/local/include/ncurses -O2 -fno-strict-aliasing ' 'LDFLAGS= -L/usr/local/lib -Wl,-rpath=/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib ' 'LIBS=-L/usr/local/lib -lintl' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include' 'CPP=cpp' 'PKG_CONFIG=pkgconf'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/construction/lang/python38/Python-3.8.12/coverage.info" COVERAGE_REPORT = "/construction/lang/python38/Python-3.8.12/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" CXX = "c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.8 /usr/local/lib/python3.8/lib-dynload" DESTLIB = "/usr/local/lib/python3.8" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "0" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "0" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "0" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "0" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "0" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "1" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-portbld-dragonfly6.0" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.8 /usr/local/include/python3.8" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.8" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared" LDFLAGS = "-L/usr/local/lib -Wl,-rpath=/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -L/usr/local/lib -Wl,-rpath=/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" LDVERSION = "3.8" LIBC = "" LIBDEST = "/usr/local/lib/python3.8" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.8/config-3.8" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "dragonfly6" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "_sqlite3 _tkinter _gdbm" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/local/include" OPENSSL_LDFLAGS = "-L/usr/local/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -pipe -I/usr/local/include -I/usr/local/include/ncurses -O2 -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -pipe -I/usr/local/include -I/usr/local/include/ncurses -O2 -fno-strict-aliasing" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -pipe -I/usr/local/include -I/usr/local/include/ncurses -O2 -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib -Wl,-rpath=/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib -Wl,-rpath=/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -pipe -I/usr/local/include -I/usr/local/include/ncurses -O2 -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/construction/lang/python38/Python-3.8.12" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38.so" SOABI = "cpython-38" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/construction/lang/python38/Python-3.8.12 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/construction/lang/python38/Python-3.8.12 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/construction/lang/python38/Python-3.8.12" abs_srcdir = "/construction/lang/python38/Python-3.8.12" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.8.12" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/local/lib/python3.8/config-3.8" userbase = "/root/.local" python-maturin_1.3.2.orig/sysconfig/cpython-freebsd-11.2.txt0000644000000000000000000004573013527503350020716 0ustar00Platform: "freebsd-11.2-RELEASE-p9-amd64" Python version: "3.6" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.6m" platinclude = "/usr/local/include/python3.6m" platlib = "/usr/local/lib/python3.6/site-packages" platstdlib = "/usr/local/lib/python3.6" purelib = "/usr/local/lib/python3.6/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.6" Variables: ABIFLAGS = "m" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rc" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.6" BLDLIBRARY = "-L. -lpython3.6m" BLDSHARED = "cc -shared -lpthread -L/usr/local/lib -fstack-protector" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "amd64-portbld-freebsd11.2" BYTESTR_DEPS = "\" CC = "cc" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=nehalem -fstack-protector -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--without-pydebug' '--disable-ipv6' '--with-system-ffi' '--with-pymalloc' '--with-threads' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=amd64-portbld-freebsd11.2' 'build_alias=amd64-portbld-freebsd11.2' 'CC=cc' 'CFLAGS=-O2 -pipe -march=nehalem -fstack-protector -fno-strict-aliasing ' 'LDFLAGS= -lpthread -L/usr/local/lib -fstack-protector ' 'LIBS=' 'CPPFLAGS=-I/usr/local/include' 'CPP=cpp' 'PKG_CONFIG=pkgconf'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.6m" COREPYTHONPATH = ":" COVERAGE_INFO = "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7/coverage.info" COVERAGE_REPORT = "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include" CXX = "c++" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.6 /usr/local/lib/python3.6/lib-dynload" DESTLIB = "/usr/local/lib/python3.6" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.6/lib-dynload" DFLAGS = "" DIRMODE = "755" DISABLED_EXTENSIONS = "_sqlite3 _tkinter _gdbm" DIST = "README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "0" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRAMACHDEPPATH = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".so" FILEMODE = "644" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "0" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "1" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_CRYPT_H = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "0" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "0" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMMOVE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_PREAD = "1" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_ATFORK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CALLBACK = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SELECT = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "amd64-portbld-freebsd11.2" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.6m /usr/local/include/python3.6m" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.6m" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 555" INSTSONAME = "libpython3.6m.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -shared" LDFLAGS = "-lpthread -L/usr/local/lib -fstack-protector" LDLAST = "" LDLIBRARY = "libpython3.6m.so" LDLIBRARYDIR = "" LDSHARED = "cc -shared -lpthread -L/usr/local/lib -fstack-protector" LDVERSION = "3.6m" LIBC = "" LIBDEST = "/usr/local/lib/python3.6" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/lib/libffi-3.2.1/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.6/config-3.6m" LIBRARY = "libpython3.6m.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-ldl -lutil" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" LOG1P_DROPS_ZERO_SIGN = "0" MACHDEP = "freebsd11" MACHDEPPATH = ":" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.6" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODLIBS = "" MODNAMES = "_thread posix errno pwd _sre _codecs _weakref _functools _operator _collections itertools atexit _signal _stat time _locale _io zipimport faulthandler _tracemalloc _symtable xxsubtype" MODOBJS = "Modules/_threadmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/zipimport.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGEN = "Parser/pgen" PGENOBJS = "\ \" PGOBJS = "\" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" PLATDIR = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test.regrtest --pgo" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = ":" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=nehalem -fstack-protector -fno-strict-aliasing" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=nehalem -fstack-protector -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -I. -I./Include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-lpthread -L/usr/local/lib -fstack-protector" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" RANLIB = "ranlib" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "" SHELL = "/bin/sh" SHLIBS = "-ldl -lutil" SHLIB_SUFFIX = ".so" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".so" SOABI = "cpython-36m" SRCDIRS = "Parser Objects Python Modules Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TANH_PRESERVES_ZERO_SIGN = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" THREADOBJ = "Python/thread.o" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" USE_INLINE = "1" VERSION = "3.6" WANT_SIGFPE_HANDLER = "0" WINDOW_HAS_FLAGS = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_THREAD = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "m" abs_builddir = "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7" abs_srcdir = "/wrkdirs/usr/ports/lang/python36/work/Python-3.6.7" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.6.7" py_version_nodot = "36" py_version_short = "3.6" srcdir = "/usr/local/lib/python3.6/config-3.6m" userbase = "/home/ashorin/.local" python-maturin_1.3.2.orig/sysconfig/cpython-freebsd-13.0-aarch64.txt0000644000000000000000000006253314063143662022146 0ustar00Platform: "freebsd-13.0-RELEASE-arm64" Python version: "3.7" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.7m" platinclude = "/usr/local/include/python3.7m" platlib = "/usr/local/lib/python3.7/site-packages" platstdlib = "/usr/local/lib/python3.7" purelib = "/usr/local/lib/python3.7/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.7" Variables: ABIFLAGS = "m" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.7" BLDLIBRARY = "-L. -lpython3.7m" BLDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "aarch64-portbld-freebsd13.0" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--with-system-ffi' '--without-pydebug' '--enable-ipv6' '--with-pymalloc' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=aarch64-portbld-freebsd13.0' 'build_alias=aarch64-portbld-freebsd13.0' 'CC=cc' 'CFLAGS=-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' 'LDFLAGS= -L/usr/local/lib -fstack-protector-strong ' 'LIBS=-L/usr/local/lib -lintl' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include' 'CPP=cpp' 'PKG_CONFIG=pkgconf'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.7m" COREPYTHONPATH = "" COVERAGE_INFO = "/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10/coverage.info" COVERAGE_REPORT = "/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" CXX = "c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.7 /usr/local/lib/python3.7/lib-dynload" DESTLIB = "/usr/local/lib/python3.7" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.7/lib-dynload" DFLAGS = "" DIRMODE = "755" DISABLED_EXTENSIONS = "_sqlite3 _tkinter _gdbm" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".so" FILEMODE = "644" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "1" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "1" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "aarch64-portbld-freebsd13.0" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.7m /usr/local/include/python3.7m" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.7m" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 555" INSTSONAME = "libpython3.7m.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared" LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" LDFLAGS_NODIST = "" LDLAST = "" LDLIBRARY = "libpython3.7m.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" LDVERSION = "3.7m" LIBC = "" LIBDEST = "/usr/local/lib/python3.7" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.7/config-3.7m" LIBRARY = "libpython3.7m.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" LOG1P_DROPS_ZERO_SIGN = "0" MACHDEP = "freebsd13" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.7" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io zipimport faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/zipimport.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/include" OPENSSL_LDFLAGS = "-L/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGEN = "Parser/pgen" PGENOBJS = "\ \" PGOBJS = "\" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test.regrtest --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil" SHLIB_SUFFIX = ".so" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".so" SOABI = "cpython-37m" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TANH_PRESERVES_ZERO_SIGN = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.7" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "m" abs_builddir = "/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10" abs_srcdir = "/wrkdirs/usr/ports/lang/python37/work/Python-3.7.10" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.7.10" py_version_nodot = "37" py_version_short = "3.7" srcdir = "/usr/local/lib/python3.7/config-3.7m" userbase = "/root/.local"python-maturin_1.3.2.orig/sysconfig/cpython-freebsd-13.0-powerpc64.txt0000644000000000000000000005244314136504660022546 0ustar00Platform: "freebsd-13.0-RELEASE-p4-powerpc" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.8" platinclude = "/usr/local/include/python3.8" platlib = "/usr/local/lib/python3.8/site-packages" platstdlib = "/usr/local/lib/python3.8" purelib = "/usr/local/lib/python3.8/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "powerpc64-portbld-freebsd13.0" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--with-system-ffi' '--without-pydebug' '--enable-ipv6' '--with-system-libmpdec' '--with-pymalloc' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=powerpc64-portbld-freebsd13.0' 'build_alias=powerpc64-portbld-freebsd13.0' 'CC=cc' 'CFLAGS=-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' 'LDFLAGS= -L/usr/local/lib -fstack-protector-strong ' 'LIBS=-L/usr/local/lib -lintl' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include' 'CPP=cpp' 'PKG_CONFIG=pkgconf'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12/coverage.info" COVERAGE_REPORT = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" CXX = "c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.8 /usr/local/lib/python3.8/lib-dynload" DESTLIB = "/usr/local/lib/python3.8" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "1" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "0" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "1" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "1" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "powerpc64-portbld-freebsd13.0" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.8 /usr/local/include/python3.8" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.8" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared" LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" LDVERSION = "3.8" LIBC = "" LIBDEST = "/usr/local/lib/python3.8" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.8/config-3.8" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "freebsd13" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "_sqlite3 _tkinter _gdbm" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/include" OPENSSL_LDFLAGS = "-L/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "8" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38.so" SOABI = "cpython-38" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12" abs_srcdir = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.8.12" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/local/lib/python3.8/config-3.8" userbase = "/home/pkubaj/.local" python-maturin_1.3.2.orig/sysconfig/cpython-freebsd-13.0-powerpc64le.txt0000644000000000000000000005245314136504660023070 0ustar00Platform: "freebsd-13.0-RELEASE-p4-powerpc" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.8" platinclude = "/usr/local/include/python3.8" platlib = "/usr/local/lib/python3.8/site-packages" platstdlib = "/usr/local/lib/python3.8" purelib = "/usr/local/lib/python3.8/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "powerpc64le-portbld-freebsd13.0" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--with-system-ffi' '--without-pydebug' '--enable-ipv6' '--with-system-libmpdec' '--with-pymalloc' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=powerpc64le-portbld-freebsd13.0' 'build_alias=powerpc64le-portbld-freebsd13.0' 'CC=cc' 'CFLAGS=-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' 'LDFLAGS= -L/usr/local/lib -fstack-protector-strong ' 'LIBS=-L/usr/local/lib -lintl' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include' 'CPP=cpp' 'PKG_CONFIG=pkgconf'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12/coverage.info" COVERAGE_REPORT = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" CXX = "c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.8 /usr/local/lib/python3.8/lib-dynload" DESTLIB = "/usr/local/lib/python3.8" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "1" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "powerpc64le-portbld-freebsd13.0" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.8 /usr/local/include/python3.8" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.8" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared" LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" LDVERSION = "3.8" LIBC = "" LIBDEST = "/usr/local/lib/python3.8" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.8/config-3.8" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "freebsd13" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "_sqlite3 _tkinter _gdbm" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/include" OPENSSL_LDFLAGS = "-L/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lintl -ldl -L/usr/local/lib -lintl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "8" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38.so" SOABI = "cpython-38" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12" abs_srcdir = "/wrkdirs/usr/ports/lang/python38/work/Python-3.8.12" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.8.12" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/local/lib/python3.8/config-3.8" userbase = "/home/pkubaj/.local" python-maturin_1.3.2.orig/sysconfig/cpython-freebsd-13.1-armv7.txt0000644000000000000000000007734614341616750021765 0ustar00Platform: "freebsd-13.1-RELEASE-arm" Python version: "3.11" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.11" platinclude = "/usr/local/include/python3.11" platlib = "/usr/local/lib/python3.11/site-packages" platstdlib = "/usr/local/lib/python3.11" purelib = "/usr/local/lib/python3.11/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.11" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALIGNOF_LONG = "4" ALIGNOF_SIZE_T = "4" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "/usr/bin/llvm-ar" ARFLAGS = "rcs" BASECFLAGS = "-Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.11" BLDLIBRARY = "-L. -lpython3.11" BLDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" BOOTSTRAP_HEADERS = "\" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "armv7-portbld-freebsd13.1" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_LDFLAGS_NODIST = "-flto=thin -g" CONFIGURE_LDFLAGS_NOLTO = "-fno-lto" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--with-system-ffi' '--without-pydebug' '--enable-ipv6' '--with-system-libmpdec' '--with-lto=thin' '--with-pymalloc' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=armv7-portbld-freebsd13.1' 'build_alias=armv7-portbld-freebsd13.1' 'PKG_CONFIG=pkgconf' 'PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/lang/python311/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig' 'CC=cc' 'CFLAGS=-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' 'LDFLAGS= -L/usr/local/lib -fstack-protector-strong ' 'LIBS=-L/usr/local/lib -lintl' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include' 'CPP=cpp'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.11" COREPYTHONPATH = "" COVERAGE_INFO = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0/coverage.info" COVERAGE_LCOV_OPTIONS = "--rc lcov_branch_coverage=1" COVERAGE_REPORT = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0/lcov-report" COVERAGE_REPORT_OPTIONS = "--rc lcov_branch_coverage=1 --branch-coverage --title "CPython 3.11 LCOV report [commit $(shell )]"" CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" CXX = "c++ -pthread" DECIMAL_CFLAGS = "-DCONFIG_32=1 -DANSI=1" DECIMAL_LDFLAGS = "-lmpdec" DEEPFREEZE_DEPS = "./Tools/scripts/deepfreeze.py _bootstrap_python ./Programs/_freeze_module.py \" DEEPFREEZE_OBJS = "Python/deepfreeze/deepfreeze.o" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.11 /usr/local/lib/python3.11/lib-dynload" DESTLIB = "/usr/local/lib/python3.11" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.11/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPAT_CFLAGS = "-I./Modules/expat" EXPAT_LDFLAGS = "-lm Modules/expat/libexpat.a" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-311.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FREEZE_MODULE = "./_bootstrap_python ./Programs/_freeze_module.py" FREEZE_MODULE_BOOTSTRAP = "./Programs/_freeze_module" FREEZE_MODULE_BOOTSTRAP_DEPS = "Programs/_freeze_module" FREEZE_MODULE_DEPS = "_bootstrap_python ./Programs/_freeze_module.py" FROZEN_FILES_IN = "\" FROZEN_FILES_OUT = "\" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT = "1" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "1" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_BZLIB_H = "1" HAVE_CHFLAGS = "1" HAVE_CHMOD = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_NANOSLEEP = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_CONNECT = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DB_H = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EVENTFD = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORK1 = "0" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "0" HAVE_GDBM_DASH_NDBM_H = "0" HAVE_GDBM_H = "0" HAVE_GDBM_NDBM_H = "0" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETEGID = "1" HAVE_GETENTROPY = "1" HAVE_GETEUID = "1" HAVE_GETGID = "1" HAVE_GETGRGID = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYADDR = "1" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETHOSTNAME = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPROTOBYNAME = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETRUSAGE = "1" HAVE_GETSERVBYNAME = "1" HAVE_GETSERVBYPORT = "1" HAVE_GETSID = "1" HAVE_GETSOCKNAME = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETUID = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_NTOA = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "1" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LIBB2 = "0" HAVE_LIBDB = "0" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBGDBM_COMPAT = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBNDBM = "0" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBSQLITE3 = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_AUXVEC_H = "0" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_SOUNDCARD_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LISTEN = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LOGIN_TTY = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_LZMA_H = "0" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NANOSLEEP = "1" HAVE_NCURSES_H = "1" HAVE_NDBM_H = "1" HAVE_NDIR_H = "0" HAVE_NETCAN_CAN_H = "0" HAVE_NETDB_H = "1" HAVE_NETINET_IN_H = "1" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENDIR = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTHREAD_STUBS = "0" HAVE_PTY_H = "0" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RECVFROM = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_RPC_RPC_H = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SENDTO = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETJMP_H = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETSOCKOPT = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SHUTDOWN = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKET = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SPLICE = "0" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYSLOG_H = "1" HAVE_SYSTEM = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_AUXV_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENTFD_H = "1" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_SOUNDCARD_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TTYNAME = "1" HAVE_TZNAME = "0" HAVE_UMASK = "1" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "1" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UTMP_H = "0" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_VFORK = "1" HAVE_WAIT = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_ZLIB_COPY = "1" HAVE_ZLIB_H = "0" HAVE__GETPTY = "0" HOSTRUNNER = "" HOST_GNU_TYPE = "armv7-portbld-freebsd13.1" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.11 /usr/local/include/python3.11" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.11" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.11.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared" LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.11.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" LDVERSION = "3.11" LIBC = "" LIBDEST = "/usr/local/lib/python3.11" LIBDIR = "/usr/local/lib" LIBEXPAT_A = "Modules/expat/libexpat.a" LIBEXPAT_CFLAGS = "-I./Modules/expat -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -fPIC" LIBEXPAT_HEADERS = "\" LIBEXPAT_OBJS = "\" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBMPDEC_A = "Modules/_decimal/libmpdec/libmpdec.a" LIBMPDEC_CFLAGS = "-DCONFIG_32=1 -DANSI=1 -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -fPIC" LIBMPDEC_HEADERS = "\" LIBMPDEC_OBJS = "\" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.11/config-3.11" LIBPYTHON = "" LIBRARY = "libpython3.11.a" LIBRARY_DEPS = "libpython3.11.a libpython3.11.so libpython3.so" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lintl -ldl -L/usr/local/lib -lintl -lutil" LIBSUBDIRS = "asyncio \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LINK_PYTHON_DEPS = "libpython3.11.a libpython3.11.so libpython3.so" LINK_PYTHON_OBJS = "-L. -lpython3.11" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "freebsd13" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.11" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "atexit faulthandler posix _signal _tracemalloc _codecs _collections errno _io itertools _sre _thread time _weakref _abc _functools _locale _operator _stat _symtable pwd xxsubtype" MODDISABLED_NAMES = "_sqlite3 _tkinter _gdbm" MODLIBS = "" MODOBJS = "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_threadmodule.o Modules/timemodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o Modules/xxsubtype.o" MODSHARED_NAMES = "" MODULE_ARRAY_STATE = "yes" MODULE_ATEXIT_LDFLAGS = "" MODULE_AUDIOOP_LDFLAGS = "-lm" MODULE_AUDIOOP_STATE = "yes" MODULE_BINASCII_CFLAGS = "-DUSE_ZLIB_CRC32" MODULE_BINASCII_LDFLAGS = "-lz" MODULE_BINASCII_STATE = "yes" MODULE_CMATH_DEPS = "./Modules/_math.h" MODULE_CMATH_LDFLAGS = "-lm" MODULE_CMATH_STATE = "yes" MODULE_ERRNO_LDFLAGS = "" MODULE_FAULTHANDLER_LDFLAGS = "" MODULE_FCNTL_LDFLAGS = "" MODULE_FCNTL_STATE = "yes" MODULE_GRP_STATE = "yes" MODULE_ITERTOOLS_LDFLAGS = "" MODULE_MATH_DEPS = "./Modules/_math.h" MODULE_MATH_LDFLAGS = "-lm" MODULE_MATH_STATE = "yes" MODULE_MMAP_STATE = "yes" MODULE_NIS_CFLAGS = "" MODULE_NIS_LDFLAGS = "" MODULE_NIS_STATE = "yes" MODULE_OBJS = "\" MODULE_OSSAUDIODEV_LDFLAGS = "" MODULE_OSSAUDIODEV_STATE = "yes" MODULE_POSIX_LDFLAGS = "" MODULE_PWD_LDFLAGS = "" MODULE_PWD_STATE = "yes" MODULE_PYEXPAT_CFLAGS = "-I./Modules/expat" MODULE_PYEXPAT_DEPS = "\ Modules/expat/libexpat.a" MODULE_PYEXPAT_LDFLAGS = "-lm Modules/expat/libexpat.a" MODULE_PYEXPAT_STATE = "yes" MODULE_RESOURCE_STATE = "yes" MODULE_SELECT_STATE = "yes" MODULE_SPWD_STATE = "n/a" MODULE_SYSLOG_STATE = "yes" MODULE_TERMIOS_STATE = "yes" MODULE_TIME_LDFLAGS = "" MODULE_TIME_STATE = "yes" MODULE_UNICODEDATA_DEPS = "./Modules/unicodedata_db.h ./Modules/unicodename_db.h" MODULE_UNICODEDATA_STATE = "yes" MODULE_XXLIMITED_35_STATE = "yes" MODULE_XXLIMITED_STATE = "yes" MODULE_XXSUBTYPE_LDFLAGS = "" MODULE_ZLIB_CFLAGS = "" MODULE_ZLIB_LDFLAGS = "-lz" MODULE_ZLIB_STATE = "yes" MODULE__ABC_LDFLAGS = "" MODULE__ASYNCIO_STATE = "yes" MODULE__BISECT_STATE = "yes" MODULE__BLAKE2_CFLAGS = "" MODULE__BLAKE2_DEPS = "./Modules/_blake2/impl/blake2-config.h ./Modules/_blake2/impl/blake2-impl.h ./Modules/_blake2/impl/blake2.h ./Modules/_blake2/impl/blake2b-load-sse2.h ./Modules/_blake2/impl/blake2b-load-sse41.h ./Modules/_blake2/impl/blake2b-ref.c ./Modules/_blake2/impl/blake2b-round.h ./Modules/_blake2/impl/blake2b.c ./Modules/_blake2/impl/blake2s-load-sse2.h ./Modules/_blake2/impl/blake2s-load-sse41.h ./Modules/_blake2/impl/blake2s-load-xop.h ./Modules/_blake2/impl/blake2s-ref.c ./Modules/_blake2/impl/blake2s-round.h ./Modules/_blake2/impl/blake2s.c ./Modules/_blake2/blake2module.h ./Modules/hashlib.h" MODULE__BLAKE2_LDFLAGS = "" MODULE__BLAKE2_STATE = "yes" MODULE__BZ2_CFLAGS = "" MODULE__BZ2_LDFLAGS = "-lbz2" MODULE__BZ2_STATE = "yes" MODULE__CODECS_CN_STATE = "yes" MODULE__CODECS_HK_STATE = "yes" MODULE__CODECS_ISO2022_STATE = "yes" MODULE__CODECS_JP_STATE = "yes" MODULE__CODECS_KR_STATE = "yes" MODULE__CODECS_LDFLAGS = "" MODULE__CODECS_TW_STATE = "yes" MODULE__COLLECTIONS_LDFLAGS = "" MODULE__CONTEXTVARS_STATE = "yes" MODULE__CRYPT_CFLAGS = "" MODULE__CRYPT_LDFLAGS = "-lcrypt" MODULE__CRYPT_STATE = "yes" MODULE__CSV_STATE = "yes" MODULE__CTYPES_DEPS = "./Modules/_ctypes/ctypes.h" MODULE__CTYPES_TEST_LDFLAGS = "-lm" MODULE__CTYPES_TEST_STATE = "yes" MODULE__DATETIME_LDFLAGS = "-lm" MODULE__DATETIME_STATE = "yes" MODULE__DECIMAL_CFLAGS = "-DCONFIG_32=1 -DANSI=1" MODULE__DECIMAL_DEPS = "./Modules/_decimal/docstrings.h \" MODULE__DECIMAL_LDFLAGS = "-lmpdec" MODULE__DECIMAL_STATE = "yes" MODULE__ELEMENTTREE_CFLAGS = "-I./Modules/expat" MODULE__ELEMENTTREE_DEPS = "./Modules/pyexpat.c \ Modules/expat/libexpat.a" MODULE__ELEMENTTREE_STATE = "yes" MODULE__FUNCTOOLS_LDFLAGS = "" MODULE__GDBM_STATE = "missing" MODULE__HASHLIB_CFLAGS = "-I/usr/include" MODULE__HASHLIB_DEPS = "./Modules/hashlib.h" MODULE__HASHLIB_LDFLAGS = "-L/usr/lib -lcrypto" MODULE__HASHLIB_STATE = "yes" MODULE__HEAPQ_STATE = "yes" MODULE__IO_CFLAGS = "-I./Modules/_io" MODULE__IO_DEPS = "./Modules/_io/_iomodule.h" MODULE__IO_LDFLAGS = "" MODULE__IO_STATE = "yes" MODULE__JSON_STATE = "yes" MODULE__LOCALE_LDFLAGS = "" MODULE__LSPROF_STATE = "yes" MODULE__LZMA_CFLAGS = "" MODULE__LZMA_LDFLAGS = "-llzma" MODULE__LZMA_STATE = "yes" MODULE__MD5_DEPS = "./Modules/hashlib.h" MODULE__MD5_STATE = "yes" MODULE__MULTIBYTECODEC_STATE = "yes" MODULE__MULTIPROCESSING_CFLAGS = "-I./Modules/_multiprocessing" MODULE__MULTIPROCESSING_STATE = "yes" MODULE__OPCODE_STATE = "yes" MODULE__OPERATOR_LDFLAGS = "" MODULE__PICKLE_STATE = "yes" MODULE__POSIXSHMEM_CFLAGS = "-I./Modules/_multiprocessing" MODULE__POSIXSHMEM_LDFLAGS = "" MODULE__POSIXSHMEM_STATE = "yes" MODULE__POSIXSUBPROCESS_STATE = "yes" MODULE__QUEUE_STATE = "yes" MODULE__RANDOM_STATE = "yes" MODULE__SCPROXY_STATE = "n/a" MODULE__SHA1_DEPS = "./Modules/hashlib.h" MODULE__SHA1_STATE = "yes" MODULE__SHA256_DEPS = "./Modules/hashlib.h" MODULE__SHA256_STATE = "yes" MODULE__SHA3_DEPS = "./Modules/_sha3/sha3.c ./Modules/_sha3/sha3.h ./Modules/hashlib.h" MODULE__SHA3_STATE = "yes" MODULE__SHA512_DEPS = "./Modules/hashlib.h" MODULE__SHA512_STATE = "yes" MODULE__SIGNAL_LDFLAGS = "" MODULE__SOCKET_DEPS = "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c" MODULE__SOCKET_STATE = "yes" MODULE__SQLITE3_DEPS = "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h" MODULE__SQLITE3_STATE = "disabled" MODULE__SRE_LDFLAGS = "" MODULE__SSL_CFLAGS = "-I/usr/include" MODULE__SSL_DEPS = "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data.h ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h" MODULE__SSL_LDFLAGS = "-L/usr/lib -lssl -lcrypto" MODULE__SSL_STATE = "yes" MODULE__STATISTICS_LDFLAGS = "-lm" MODULE__STATISTICS_STATE = "yes" MODULE__STAT_LDFLAGS = "" MODULE__STRUCT_STATE = "yes" MODULE__SYMTABLE_LDFLAGS = "" MODULE__TESTBUFFER_STATE = "yes" MODULE__TESTCAPI_DEPS = "./Modules/testcapi_long.h" MODULE__TESTCAPI_STATE = "yes" MODULE__TESTIMPORTMULTIPLE_STATE = "yes" MODULE__TESTINTERNALCAPI_STATE = "yes" MODULE__TESTMULTIPHASE_STATE = "yes" MODULE__THREAD_LDFLAGS = "" MODULE__TKINTER_STATE = "missing" MODULE__TRACEMALLOC_LDFLAGS = "" MODULE__TYPING_STATE = "yes" MODULE__UUID_CFLAGS = "" MODULE__UUID_LDFLAGS = "" MODULE__UUID_STATE = "yes" MODULE__WEAKREF_LDFLAGS = "" MODULE__XXSUBINTERPRETERS_STATE = "yes" MODULE__XXTESTFUZZ_STATE = "yes" MODULE__ZONEINFO_STATE = "yes" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/include" OPENSSL_LDFLAGS = "-L/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPENSSL_RPATH = "" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo --timeout=1200" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_BUILD_DEPS = "python" PYTHON_FOR_FREEZE = "./_bootstrap_python" PYTHON_FOR_REGEN = "" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing" PY_CFLAGS_NODIST = "-flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong -flto=thin -g" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" PY_ENABLE_SHARED = "1" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_LDFLAGS_NODIST = "-flto=thin -g" PY_LDFLAGS_NOLTO = "-L/usr/local/lib -fstack-protector-strong -fno-lto" PY_SQLITE_ENABLE_LOAD_EXTENSION = "0" PY_SQLITE_HAVE_SERIALIZE = "0" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -flto=thin -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC" PY_SUPPORT_TIER = "0" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_STATS = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SHELL = "/bin/sh" SHLIBS = "-lintl -ldl -L/usr/local/lib -lintl -lutil" SHLIB_SUFFIX = ".so" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "4" SIZEOF_LONG_DOUBLE = "8" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "4" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "4" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "4" SIZEOF_VOID_P = "4" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SOABI = "cpython-311" SRCDIRS = "Modules Modules/_blake2 Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_io Modules/_multiprocessing Modules/_sha3 Modules/_sqlite Modules/_sre Modules/_xxtestfuzz Modules/cjkcodecs Modules/expat Objects Parser Programs Python Python/frozen_modules Python/deepfreeze" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STATIC_LIBPYTHON = "1" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0 ./python -E" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0 ./python -E ./Tools/scripts/run_tests.py" TESTSUBDIRS = "ctypes/test \" TESTTIMEOUT = "1200" TEST_MODULES = "yes" THREAD_STACK_SIZE = "0" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.11" WASM_ASSETS_DIR = "./usr/local" WASM_STDLIB = "./usr/local/lib/python3.11/os.py" WHEEL_PKG_DIR = "" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_EDITLINE = "0" WITH_FREELISTS = "1" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0" abs_srcdir = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" platlibdir = "lib" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.11.0" py_version_nodot = "311" py_version_nodot_plat = "" py_version_short = "3.11" srcdir = "/usr/local/lib/python3.11/config-3.11" userbase = "/root/.local" python-maturin_1.3.2.orig/sysconfig/cpython-freebsd-14.0-riscv64.txt0000644000000000000000000007637614341677477022250 0ustar00Platform: "freebsd-14.0-CURRENT-riscv" Python version: "3.11" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.11" platinclude = "/usr/local/include/python3.11" platlib = "/usr/local/lib/python3.11/site-packages" platstdlib = "/usr/local/lib/python3.11" purelib = "/usr/local/lib/python3.11/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.11" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALIGNOF_LONG = "8" ALIGNOF_SIZE_T = "8" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.11" BLDLIBRARY = "-L. -lpython3.11" BLDSHARED = "/usr/bin/cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "riscv64-portbld-freebsd14.0" BYTESTR_DEPS = "\" CC = "/usr/bin/cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=rv64imafdc -mabi=lp64d -fstack-protector-strong -fno-strict-aliasing" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--without-ensurepip' '--with-system-ffi' '--without-pydebug' '--enable-ipv6' '--with-system-libmpdec' '--with-pymalloc' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/share/info/' '--build=riscv64-portbld-freebsd14.0' 'build_alias=riscv64-portbld-freebsd14.0' 'CC=/usr/bin/cc' 'CFLAGS=-O2 -pipe -march=rv64imafdc -mabi=lp64d -fstack-protector-strong -fno-strict-aliasing ' 'LDFLAGS= -L/usr/local/lib -fstack-protector-strong ' 'LIBS=-L/usr/local/lib -lintl' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include' 'CPP=/usr/bin/cpp' 'PKG_CONFIG=pkgconf'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.11" COREPYTHONPATH = "" COVERAGE_INFO = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2/coverage.info" COVERAGE_REPORT = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" CXX = "/usr/bin/c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.11 /usr/local/lib/python3.11/lib-dynload" DESTLIB = "/usr/local/lib/python3.11" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.11/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPERIMENTAL_ISOLATED_SUBINTERPRETERS = "0" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-311.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" FROZEN_FILES_IN = "\" FROZEN_FILES_OUT = "\" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_NANOSLEEP = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EVENTFD = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LIBUUID = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NANOSLEEP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SPLICE = "0" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENTFD_H = "1" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_VFORK = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "riscv64-portbld-freebsd14.0" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.11 /usr/local/include/python3.11" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.11" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "install -m 0644" INSTALL_PROGRAM = "install -s -m 555" INSTALL_SCRIPT = "install -m 555" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.11.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "/usr/bin/c++ -pthread -shared" LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.11.so" LDLIBRARYDIR = "" LDSHARED = "/usr/bin/cc -pthread -shared -L/usr/local/lib -fstack-protector-strong" LDVERSION = "3.11" LIBC = "" LIBDEST = "/usr/local/lib/python3.11" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/libdata/pkgconfig" LIBPL = "/usr/local/lib/python3.11/config-3.11" LIBPYTHON = "" LIBRARY = "libpython3.11.a" LIBRARY_DEPS = "libpython3.11.a libpython3.11.so libpython3.so" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lintl -ldl -L/usr/local/lib -lintl -lutil" LIBSUBDIRS = "asyncio \" LINKCC = "/usr/bin/cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "freebsd14" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.11" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "/usr/bin/cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "_collections _abc _codecs _functools _io _locale _operator _signal _sre _stat _symtable _thread _tracemalloc _weakref atexit errno faulthandler itertools posix pwd time xxsubtype" MODDISABLED_NAMES = "_sqlite3 _tkinter _gdbm" MODLIBS = "" MODOBJS = "Modules/_collectionsmodule.o Modules/_abc.o Modules/_codecsmodule.o Modules/_functoolsmodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/_localemodule.o Modules/_operator.o Modules/signalmodule.o Modules/_sre.o Modules/_stat.o Modules/symtablemodule.o Modules/_threadmodule.o Modules/_tracemalloc.o Modules/_weakref.o Modules/atexitmodule.o Modules/errnomodule.o Modules/faulthandler.o Modules/itertoolsmodule.o Modules/posixmodule.o Modules/pwdmodule.o Modules/timemodule.o Modules/xxsubtype.o" MODSHARED_NAMES = "" MODULE_CMATH_DEPS = "./Modules/_math.h" MODULE_MATH_DEPS = "./Modules/_math.h" MODULE_OBJS = "\" MODULE_PYEXPAT_DEPS = "./Modules/expat/ascii.h ./Modules/expat/asciitab.h ./Modules/expat/expat.h ./Modules/expat/expat_config.h ./Modules/expat/expat_external.h ./Modules/expat/internal.h ./Modules/expat/latin1tab.h ./Modules/expat/utf8tab.h ./Modules/expat/xmlrole.h ./Modules/expat/xmltok.h ./Modules/expat/xmltok_impl.h" MODULE_UNICODEDATA_DEPS = "./Modules/unicodedata_db.h ./Modules/unicodename_db.h" MODULE__BLAKE2_DEPS = "./Modules/_blake2/impl/blake2-config.h ./Modules/_blake2/impl/blake2-dispatch.c ./Modules/_blake2/impl/blake2-impl.h ./Modules/_blake2/impl/blake2-kat.h ./Modules/_blake2/impl/blake2.h ./Modules/_blake2/impl/blake2b-load-sse2.h ./Modules/_blake2/impl/blake2b-load-sse41.h ./Modules/_blake2/impl/blake2b-ref.c ./Modules/_blake2/impl/blake2b-round.h ./Modules/_blake2/impl/blake2b-test.c ./Modules/_blake2/impl/blake2b.c ./Modules/_blake2/impl/blake2bp-test.c ./Modules/_blake2/impl/blake2bp.c ./Modules/_blake2/impl/blake2s-load-sse2.h ./Modules/_blake2/impl/blake2s-load-sse41.h ./Modules/_blake2/impl/blake2s-load-xop.h ./Modules/_blake2/impl/blake2s-ref.c ./Modules/_blake2/impl/blake2s-round.h ./Modules/_blake2/impl/blake2s-test.c ./Modules/_blake2/impl/blake2s.c ./Modules/_blake2/impl/blake2sp-test.c ./Modules/_blake2/impl/blake2sp.c ./Modules/hashlib.h" MODULE__CTYPES_DEPS = "./Modules/_ctypes/ctypes.h" MODULE__DECIMAL_DEPS = "./Modules/_decimal/docstrings.h ./Modules/_decimal/libmpdec/basearith.h ./Modules/_decimal/libmpdec/bits.h ./Modules/_decimal/libmpdec/constants.h ./Modules/_decimal/libmpdec/convolute.h ./Modules/_decimal/libmpdec/crt.h ./Modules/_decimal/libmpdec/difradix2.h ./Modules/_decimal/libmpdec/fnt.h ./Modules/_decimal/libmpdec/fourstep.h ./Modules/_decimal/libmpdec/io.h ./Modules/_decimal/libmpdec/mpalloc.h ./Modules/_decimal/libmpdec/mpdecimal.h ./Modules/_decimal/libmpdec/numbertheory.h ./Modules/_decimal/libmpdec/sixstep.h ./Modules/_decimal/libmpdec/transpose.h ./Modules/_decimal/libmpdec/typearith.h ./Modules/_decimal/libmpdec/umodarith.h" MODULE__ELEMENTTREE_DEPS = "./Modules/expat/ascii.h ./Modules/expat/asciitab.h ./Modules/expat/expat.h ./Modules/expat/expat_config.h ./Modules/expat/expat_external.h ./Modules/expat/internal.h ./Modules/expat/latin1tab.h ./Modules/expat/utf8tab.h ./Modules/expat/xmlparse.c ./Modules/expat/xmlrole.c ./Modules/expat/xmlrole.h ./Modules/expat/xmltok.c ./Modules/expat/xmltok.h ./Modules/expat/xmltok_impl.h ./Modules/pyexpat.c" MODULE__HASHLIB_DEPS = "./Modules/hashlib.h" MODULE__IO_DEPS = "./Modules/_io/_iomodule.h" MODULE__MD5_DEPS = "./Modules/hashlib.h" MODULE__SHA1_DEPS = "./Modules/hashlib.h" MODULE__SHA256_DEPS = "./Modules/hashlib.h" MODULE__SHA3_DEPS = "./Modules/_sha3/kcp/KeccakHash.c ./Modules/_sha3/kcp/KeccakHash.h ./Modules/_sha3/kcp/KeccakP-1600-64.macros ./Modules/_sha3/kcp/KeccakP-1600-SnP-opt32.h ./Modules/_sha3/kcp/KeccakP-1600-SnP-opt64.h ./Modules/_sha3/kcp/KeccakP-1600-SnP.h ./Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c ./Modules/_sha3/kcp/KeccakP-1600-opt64-config.h ./Modules/_sha3/kcp/KeccakP-1600-opt64.c ./Modules/_sha3/kcp/KeccakP-1600-unrolling.macros ./Modules/_sha3/kcp/KeccakSponge.c ./Modules/_sha3/kcp/KeccakSponge.h ./Modules/_sha3/kcp/KeccakSponge.inc ./Modules/_sha3/kcp/PlSnP-Fallback.inc ./Modules/_sha3/kcp/SnP-Relaned.h ./Modules/_sha3/kcp/align.h ./Modules/hashlib.h" MODULE__SHA512_DEPS = "./Modules/hashlib.h" MODULE__SOCKET_DEPS = "./Modules/socketmodule.h" MODULE__SSL_DEPS = "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data.h ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h" MODULE__TESTCAPI_DEPS = "./Modules/testcapi_long.h" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/include" OPENSSL_LDFLAGS = "-L/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPENSSL_RPATH = "" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo --timeout=1200" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=rv64imafdc -mabi=lp64d -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=rv64imafdc -mabi=lp64d -fstack-protector-strong -fno-strict-aliasing" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=rv64imafdc -mabi=lp64d -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include -I/usr/local/include" PY_ENABLE_SHARED = "1" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib -fstack-protector-strong" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -march=rv64imafdc -mabi=lp64d -fstack-protector-strong -fno-strict-aliasing -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/usr/local/include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SHELL = "/bin/sh" SHLIBS = "-lintl -ldl -L/usr/local/lib -lintl -lutil" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-311.so" SOABI = "cpython-311" SRCDIRS = "Modules Modules/_blake2 Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_io Modules/_multiprocessing Modules/_sha3 Modules/_sqlite Modules/_xxtestfuzz Modules/cjkcodecs Modules/expat Objects Parser Programs Python" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STATIC_LIBPYTHON = "1" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2 ./python ./Tools/scripts/run_tests.py" TESTSUBDIRS = "ctypes/test \" TESTTIMEOUT = "1200" TEST_MODULES = "yes" THREAD_STACK_SIZE = "0" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.11" WHEEL_PKG_DIR = "" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_EDITLINE = "0" WITH_FREELISTS = "1" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2" abs_srcdir = "/wrkdirs/usr/ports/lang/python311/work/Python-3.11.0a2" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" platlibdir = "lib" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.11.0a2" py_version_nodot = "311" py_version_nodot_plat = "" py_version_short = "3.11" srcdir = "/usr/local/lib/python3.11/config-3.11" userbase = "/root/.local" python-maturin_1.3.2.orig/sysconfig/cpython-haiku-3.9.txt0000644000000000000000000005454614153657270020351 0ustar00Platform: "haiku-1-x86_64" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/packages/python39-3.9.5-4/.self" include = "/packages/python39-3.9.5-4/.self/include/python3.9" platinclude = "/packages/python39-3.9.5-4/.self/include/python3.9" platlib = "/packages/python39-3.9.5-4/.self/lib/python3.9/site-packages" platstdlib = "/packages/python39-3.9.5-4/.self/lib/python3.9" purelib = "/packages/python39-3.9.5-4/.self/lib/python3.9/site-packages" scripts = "/packages/python39-3.9.5-4/.self/bin" stdlib = "/packages/python39-3.9.5-4/.self/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/packages/python39-3.9.5-4/.self/bin" BINLIBDEST = "/packages/python39-3.9.5-4/.self/lib/python3.9" BLDLIBRARY = "-L. -lpython3.9" BLDSHARED = "gcc -shared" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-unknown-haiku" BYTESTR_DEPS = "\" CC = "gcc" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -D_BSD_SOURCE -D_BSD_SOURCE" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-D_BSD_SOURCE" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "" CONFIGURE_LDFLAGS = "" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--prefix=/packages/python39-3.9.5-4/.self' '--sysconfdir=/packages/python39-3.9.5-4/.settings' '--datadir=/packages/python39-3.9.5-4/.self/data' '--datarootdir=/packages/python39-3.9.5-4/.self/data' '--sbindir=/packages/python39-3.9.5-4/.self/bin' '--libdir=/packages/python39-3.9.5-4/.self/lib' '--oldincludedir=/packages/python39-3.9.5-4/.self/develop/headers' '--docdir=/packages/python39-3.9.5-4/.self/documentation/packages/python39' '--infodir=/packages/python39-3.9.5-4/.self/documentation/info' '--mandir=/packages/python39-3.9.5-4/.self/documentation/man' '--libexecdir=/packages/python39-3.9.5-4/.self/lib' '--sharedstatedir=/packages/python39-3.9.5-4/.self/var' '--localstatedir=/packages/python39-3.9.5-4/.self/var' '--build=x86_64-unknown-haiku' '--enable-shared' '--without-ensurepip' '--with-system-ffi' '--with-system-expat' '--bindir=/packages/python39-3.9.5-4/.self/bin' '--includedir=/packages/python39-3.9.5-4/.self/develop/headers' 'build_alias=x86_64-unknown-haiku' 'CFLAGS=-D_BSD_SOURCE'" CONFINCLUDEDIR = "/packages/python39-3.9.5-4/.self/develop/headers" CONFINCLUDEPY = "/packages/python39-3.9.5-4/.self/develop/headers/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/sources/Python-3.9.5/coverage.info" COVERAGE_REPORT = "/sources/Python-3.9.5/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include" CXX = "g++" DESTDIRS = "/packages/python39-3.9.5-4/.self /packages/python39-3.9.5-4/.self/lib /packages/python39-3.9.5-4/.self/lib/python3.9 /packages/python39-3.9.5-4/.self/lib/python3.9/lib-dynload" DESTLIB = "/packages/python39-3.9.5-4/.self/lib/python3.9" DESTPATH = "" DESTSHARED = "/packages/python39-3.9.5-4/.self/lib/python3.9/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-39.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "0" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "0" HAVE_BLUETOOTH_BLUETOOTH_H = "1" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "0" HAVE_DECL_RTLD_NOLOAD = "0" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "0" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "0" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "0" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "0" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "0" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "0" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "0" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "0" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "0" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "0" HAVE_GETRESUID = "0" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETWD = "0" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "0" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "0" HAVE_LIBREADLINE = "0" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "0" HAVE_MADVISE = "1" HAVE_MAKEDEV = "0" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "0" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "0" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "0" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "0" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "0" HAVE_RL_CATCH_SIGNAL = "0" HAVE_RL_COMPLETION_APPEND_CHARACTER = "0" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "0" HAVE_RL_COMPLETION_MATCHES = "0" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "0" HAVE_RL_PRE_INPUT_HOOK = "0" HAVE_RL_RESIZE_TERMINAL = "0" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "0" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "0" HAVE_SCHED_SETSCHEDULER = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "0" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "0" HAVE_SETRESUID = "0" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "0" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "0" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "0" HAVE_WAIT4 = "0" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "0" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-unknown-haiku" INCLDIRSTOMAKE = "/packages/python39-3.9.5-4/.self/develop/headers /packages/python39-3.9.5-4/.self/develop/headers /packages/python39-3.9.5-4/.self/develop/headers/python3.9 /packages/python39-3.9.5-4/.self/develop/headers/python3.9" INCLUDEDIR = "/packages/python39-3.9.5-4/.self/develop/headers" INCLUDEPY = "/packages/python39-3.9.5-4/.self/develop/headers/python3.9" INSTALL = "/bin/install -c" INSTALL_DATA = "/bin/install -c -m 644" INSTALL_PROGRAM = "/bin/install -c" INSTALL_SCRIPT = "/bin/install -c" INSTALL_SHARED = "/bin/install -c -m 755" INSTSONAME = "libpython3.9.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -shared" LDFLAGS = "" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.9.so" LDLIBRARYDIR = "" LDSHARED = "gcc -shared" LDVERSION = "3.9" LIBC = "" LIBDEST = "/packages/python39-3.9.5-4/.self/lib/python3.9" LIBDIR = "/packages/python39-3.9.5-4/.self/lib" LIBFFI_INCLUDEDIR = "/packages/libffi-3.4.2-1/.self/develop/headers" LIBM = "" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/packages/python39-3.9.5-4/.self/lib/pkgconfig" LIBPL = "/packages/python39-3.9.5-4/.self/lib/python3.9/config-3.9" LIBPYTHON = "" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lnetwork -lbsd" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc" LINKFORSHARED = "-Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln -s" LOCALMODLIBS = "" MACHDEP = "haiku1" MACHDEP_OBJS = "" MACHDESTLIB = "/packages/python39-3.9.5-4/.self/lib/python3.9" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/packages/python39-3.9.5-4/.self/documentation/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/packages/openssl-1.1.1k-1/.self/develop/headers" OPENSSL_LDFLAGS = "-L/packages/openssl-1.1.1k-1/.self/develop/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -D_BSD_SOURCE -D_BSD_SOURCE -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -D_BSD_SOURCE -D_BSD_SOURCE" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -D_BSD_SOURCE -D_BSD_SOURCE -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "" PY_CPPFLAGS = "-I. -I./Include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -D_BSD_SOURCE -D_BSD_SOURCE -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LIBRARY_PATH=/sources/Python-3.9.5:%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib" SCRIPTDIR = "/packages/python39-3.9.5-4/.self/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lnetwork -lbsd" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-39.so" SOABI = "cpython-39" SRCDIRS = "Parser Parser/pegen Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LIBRARY_PATH=/sources/Python-3.9.5:%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LIBRARY_PATH=/sources/Python-3.9.5:%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.9" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/sources/Python-3.9.5" abs_srcdir = "/sources/Python-3.9.5" base = "/packages/python39-3.9.5-4/.self" datarootdir = "/packages/python39-3.9.5-4/.self/data" exec_prefix = "/packages/python39-3.9.5-4/.self" installed_base = "/packages/python39-3.9.5-4/.self" installed_platbase = "/packages/python39-3.9.5-4/.self" platbase = "/packages/python39-3.9.5-4/.self" platlibdir = "lib" prefix = "/packages/python39-3.9.5-4/.self" projectbase = "/boot/system/bin" py_version = "3.9.5" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/boot/system/lib/python3.9/config-3.9" userbase = "/boot/home/.local" python-maturin_1.3.2.orig/sysconfig/cpython-linux-3.7.txt0000644000000000000000000005413713712254714020375 0ustar00Platform: "linux-x86_64" Python version: "3.7" Current installation scheme: "posix_prefix" Paths: data = "/home/konsti/maturin/.venv" include = "/home/konsti/.pyenv/versions/3.7.7/include/python3.7m" platinclude = "/home/konsti/.pyenv/versions/3.7.7/include/python3.7m" platlib = "/home/konsti/maturin/.venv/lib/python3.7/site-packages" platstdlib = "/home/konsti/maturin/.venv/lib/python3.7" purelib = "/home/konsti/maturin/.venv/lib/python3.7/site-packages" scripts = "/home/konsti/maturin/.venv/bin" stdlib = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7" Variables: ABIFLAGS = "m" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/home/konsti/.pyenv/versions/3.7.7/bin" BINLIBDEST = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7" BLDLIBRARY = "-L. -lpython3.7m" BLDSHARED = "gcc -pthread -shared -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "-I/home/konsti/.pyenv/versions/3.7.7/include" CONFIGURE_LDFLAGS = "-L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--prefix=/home/konsti/.pyenv/versions/3.7.7' '--enable-shared' '--libdir=/home/konsti/.pyenv/versions/3.7.7/lib' 'LDFLAGS=-L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib ' 'CPPFLAGS=-I/home/konsti/.pyenv/versions/3.7.7/include '" CONFINCLUDEDIR = "/home/konsti/.pyenv/versions/3.7.7/include" CONFINCLUDEPY = "/home/konsti/.pyenv/versions/3.7.7/include/python3.7m" COREPYTHONPATH = "" COVERAGE_INFO = "/tmp/python-build.20200705125857.15611/Python-3.7.7/coverage.info" COVERAGE_REPORT = "/tmp/python-build.20200705125857.15611/Python-3.7.7/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/home/konsti/.pyenv/versions/3.7.7/include -I/home/konsti/.pyenv/versions/3.7.7/include" CXX = "g++ -pthread" DESTDIRS = "/home/konsti/.pyenv/versions/3.7.7 /home/konsti/.pyenv/versions/3.7.7/lib /home/konsti/.pyenv/versions/3.7.7/lib/python3.7 /home/konsti/.pyenv/versions/3.7.7/lib/python3.7/lib-dynload" DESTLIB = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7" DESTPATH = "" DESTSHARED = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "upgrade" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-37m-x86_64-linux-gnu.so" FILEMODE = "644" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-pc-linux-gnu" INCLDIRSTOMAKE = "/home/konsti/.pyenv/versions/3.7.7/include /home/konsti/.pyenv/versions/3.7.7/include /home/konsti/.pyenv/versions/3.7.7/include/python3.7m /home/konsti/.pyenv/versions/3.7.7/include/python3.7m" INCLUDEDIR = "/home/konsti/.pyenv/versions/3.7.7/include" INCLUDEPY = "/home/konsti/.pyenv/versions/3.7.7/include/python3.7m" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 555" INSTSONAME = "libpython3.7m.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -pthread -shared" LDFLAGS = "-L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib" LDFLAGS_NODIST = "" LDLAST = "" LDLIBRARY = "libpython3.7m.so" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib" LDVERSION = "3.7m" LIBC = "" LIBDEST = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7" LIBDIR = "/home/konsti/.pyenv/versions/3.7.7/lib" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/home/konsti/.pyenv/versions/3.7.7/lib/pkgconfig" LIBPL = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7/config-3.7m-x86_64-linux-gnu" LIBRARY = "libpython3.7m.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" LOG1P_DROPS_ZERO_SIGN = "0" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/home/konsti/.pyenv/versions/3.7.7/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io zipimport faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/zipimport.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "x86_64-linux-gnu" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"x86_64-linux-gnu\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGEN = "Parser/pgen" PGENOBJS = "\ \" PGOBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test.regrtest --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3.7" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I. -I./Include -I/home/konsti/.pyenv/versions/3.7.7/include -I/home/konsti/.pyenv/versions/3.7.7/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I. -I./Include -I/home/konsti/.pyenv/versions/3.7.7/include -I/home/konsti/.pyenv/versions/3.7.7/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib" PY_CPPFLAGS = "-I. -I./Include -I/home/konsti/.pyenv/versions/3.7.7/include -I/home/konsti/.pyenv/versions/3.7.7/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib -L/home/konsti/.pyenv/versions/3.7.7/lib -Wl,-rpath=/home/konsti/.pyenv/versions/3.7.7/lib" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I. -I./Include -I/home/konsti/.pyenv/versions/3.7.7/include -I/home/konsti/.pyenv/versions/3.7.7/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/tmp/python-build.20200705125857.15611/Python-3.7.7" SCRIPTDIR = "/home/konsti/.pyenv/versions/3.7.7/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil" SHLIB_SUFFIX = ".so" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-37m-x86_64-linux-gnu.so" SOABI = "cpython-37m-x86_64-linux-gnu" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TANH_PRESERVES_ZERO_SIGN = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/tmp/python-build.20200705125857.15611/Python-3.7.7 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/tmp/python-build.20200705125857.15611/Python-3.7.7 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.7 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.7" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "m" abs_builddir = "/tmp/python-build.20200705125857.15611/Python-3.7.7" abs_srcdir = "/tmp/python-build.20200705125857.15611/Python-3.7.7" base = "/home/konsti/maturin/.venv" datarootdir = "/home/konsti/.pyenv/versions/3.7.7/share" exec_prefix = "/home/konsti/.pyenv/versions/3.7.7" installed_base = "/home/konsti/.pyenv/versions/3.7.7" installed_platbase = "/home/konsti/.pyenv/versions/3.7.7" platbase = "/home/konsti/maturin/.venv" prefix = "/home/konsti/.pyenv/versions/3.7.7" projectbase = "/home/konsti/.pyenv/versions/3.7.7/bin" py_version = "3.7.7" py_version_nodot = "37" py_version_short = "3.7" srcdir = "/home/konsti/.pyenv/versions/3.7.7/lib/python3.7/config-3.7m-x86_64-linux-gnu" userbase = "/home/konsti/.local" python-maturin_1.3.2.orig/sysconfig/cpython-linux-3.8-aarch64.txt0000644000000000000000000005414513630756534021631 0ustar00Platform: "linux-aarch64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.8" platinclude = "/usr/local/include/python3.8" platlib = "/usr/local/lib/python3.8/site-packages" platstdlib = "/usr/local/lib/python3.8" purelib = "/usr/local/lib/python3.8/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "gcc -pthread -shared" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "aarch64-unknown-linux-gnu" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "" CONFIGURE_LDFLAGS = "" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--build=aarch64-linux-gnu' '--enable-loadable-sqlite-extensions' '--enable-optimizations' '--enable-option-checking=fatal' '--enable-shared' '--with-system-expat' '--with-system-ffi' '--without-ensurepip' 'build_alias=aarch64-linux-gnu'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/usr/src/python/coverage.info" COVERAGE_REPORT = "/usr/src/python/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include" CXX = "g++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.8 /usr/local/lib/python3.8/lib-dynload" DESTLIB = "/usr/local/lib/python3.8" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38-aarch64-linux-gnu.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "1" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "1" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "1" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "aarch64-unknown-linux-gnu" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.8 /usr/local/include/python3.8" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.8" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -pthread -shared" LDFLAGS = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared" LDVERSION = "3.8" LIBC = "" LIBDEST = "/usr/local/lib/python3.8" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/lib/pkgconfig" LIBPL = "/usr/local/lib/python3.8/config-3.8-aarch64-linux-gnu" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "1" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "aarch64-linux-gnu" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"aarch64-linux-gnu\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-use -fprofile-correction -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "" PY_CPPFLAGS = "-I. -I./Include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/usr/src/python" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38-aarch64-linux-gnu.so" SOABI = "cpython-38-aarch64-linux-gnu" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/usr/src/python ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/usr/src/python ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/usr/src/python" abs_srcdir = "/usr/src/python" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.8.2" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/local/lib/python3.8/config-3.8-aarch64-linux-gnu" userbase = "/root/.local" python-maturin_1.3.2.orig/sysconfig/cpython-linux-3.8.txt0000644000000000000000000005344113712254714020373 0ustar00Platform: "linux-x86_64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/home/konsti/.pyenv/versions/3.8.2" include = "/home/konsti/.pyenv/versions/3.8.2/include/python3.8" platinclude = "/home/konsti/.pyenv/versions/3.8.2/include/python3.8" platlib = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8/site-packages" platstdlib = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8" purelib = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8/site-packages" scripts = "/home/konsti/.pyenv/versions/3.8.2/bin" stdlib = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/home/konsti/.pyenv/versions/3.8.2/bin" BINLIBDEST = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8" BLDLIBRARY = "libpython3.8.a" BLDSHARED = "gcc -pthread -shared -L/home/konsti/.pyenv/versions/3.8.2/lib -L/home/konsti/.pyenv/versions/3.8.2/lib" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" CFLAGSFORSHARED = "" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "-I/home/konsti/.pyenv/versions/3.8.2/include" CONFIGURE_LDFLAGS = "-L/home/konsti/.pyenv/versions/3.8.2/lib" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--prefix=/home/konsti/.pyenv/versions/3.8.2' '--libdir=/home/konsti/.pyenv/versions/3.8.2/lib' 'LDFLAGS=-L/home/konsti/.pyenv/versions/3.8.2/lib ' 'CPPFLAGS=-I/home/konsti/.pyenv/versions/3.8.2/include '" CONFINCLUDEDIR = "/home/konsti/.pyenv/versions/3.8.2/include" CONFINCLUDEPY = "/home/konsti/.pyenv/versions/3.8.2/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/tmp/python-build.20200506220910.17899/Python-3.8.2/coverage.info" COVERAGE_REPORT = "/tmp/python-build.20200506220910.17899/Python-3.8.2/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/home/konsti/.pyenv/versions/3.8.2/include -I/home/konsti/.pyenv/versions/3.8.2/include" CXX = "g++ -pthread" DESTDIRS = "/home/konsti/.pyenv/versions/3.8.2 /home/konsti/.pyenv/versions/3.8.2/lib /home/konsti/.pyenv/versions/3.8.2/lib/python3.8 /home/konsti/.pyenv/versions/3.8.2/lib/python3.8/lib-dynload" DESTLIB = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8" DESTPATH = "" DESTSHARED = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "upgrade" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38-x86_64-linux-gnu.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "1" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-pc-linux-gnu" INCLDIRSTOMAKE = "/home/konsti/.pyenv/versions/3.8.2/include /home/konsti/.pyenv/versions/3.8.2/include /home/konsti/.pyenv/versions/3.8.2/include/python3.8 /home/konsti/.pyenv/versions/3.8.2/include/python3.8" INCLUDEDIR = "/home/konsti/.pyenv/versions/3.8.2/include" INCLUDEPY = "/home/konsti/.pyenv/versions/3.8.2/include/python3.8" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8.a" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -pthread -shared" LDFLAGS = "-L/home/konsti/.pyenv/versions/3.8.2/lib -L/home/konsti/.pyenv/versions/3.8.2/lib" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.a" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared -L/home/konsti/.pyenv/versions/3.8.2/lib -L/home/konsti/.pyenv/versions/3.8.2/lib" LDVERSION = "3.8" LIBC = "" LIBDEST = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8" LIBDIR = "/home/konsti/.pyenv/versions/3.8.2/lib" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/home/konsti/.pyenv/versions/3.8.2/lib/pkgconfig" LIBPL = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8/config-3.8-x86_64-linux-gnu" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/home/konsti/.pyenv/versions/3.8.2/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "x86_64-linux-gnu" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"x86_64-linux-gnu\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/home/konsti/.pyenv/versions/3.8.2/include -I/home/konsti/.pyenv/versions/3.8.2/include -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/home/konsti/.pyenv/versions/3.8.2/include -I/home/konsti/.pyenv/versions/3.8.2/include -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/home/konsti/.pyenv/versions/3.8.2/lib -L/home/konsti/.pyenv/versions/3.8.2/lib" PY_CPPFLAGS = "-I. -I./Include -I/home/konsti/.pyenv/versions/3.8.2/include -I/home/konsti/.pyenv/versions/3.8.2/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/home/konsti/.pyenv/versions/3.8.2/lib -L/home/konsti/.pyenv/versions/3.8.2/lib" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/home/konsti/.pyenv/versions/3.8.2/include -I/home/konsti/.pyenv/versions/3.8.2/include" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "" SCRIPTDIR = "/home/konsti/.pyenv/versions/3.8.2/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38-x86_64-linux-gnu.so" SOABI = "cpython-38-x86_64-linux-gnu" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "./python" TESTPYTHONOPTS = "" TESTRUNNER = "./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/tmp/python-build.20200506220910.17899/Python-3.8.2" abs_srcdir = "/tmp/python-build.20200506220910.17899/Python-3.8.2" base = "/home/konsti/.pyenv/versions/3.8.2" datarootdir = "/home/konsti/.pyenv/versions/3.8.2/share" exec_prefix = "/home/konsti/.pyenv/versions/3.8.2" installed_base = "/home/konsti/.pyenv/versions/3.8.2" installed_platbase = "/home/konsti/.pyenv/versions/3.8.2" platbase = "/home/konsti/.pyenv/versions/3.8.2" prefix = "/home/konsti/.pyenv/versions/3.8.2" projectbase = "/home/konsti/.pyenv/versions/3.8.2/bin" py_version = "3.8.2" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/home/konsti/.pyenv/versions/3.8.2/lib/python3.8/config-3.8-x86_64-linux-gnu" userbase = "/home/konsti/.local" python-maturin_1.3.2.orig/sysconfig/cpython-linux-3.9.txt0000644000000000000000000006727713772310104020400 0ustar00Platform: "linux-x86_64" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/usr" include = "/usr/include/python3.9" platinclude = "/usr/include/python3.9" platlib = "/usr/lib/python3.9/site-packages" platstdlib = "/usr/lib/python3.9" purelib = "/usr/lib/python3.9/site-packages" scripts = "/usr/bin" stdlib = "/usr/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/bin" BINLIBDEST = "/usr/lib/python3.9" BLDLIBRARY = "-L. -lpython3.9" BLDSHARED = "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition" CONFIGURE_CFLAGS_NODIST = "-flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-D_FORTIFY_SOURCE=2" CONFIGURE_LDFLAGS = "-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition" CONFIGURE_LDFLAGS_NODIST = "-flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" CONFIG_ARGS = "'--prefix=/usr' '--enable-shared' '--with-computed-gotos' '--enable-optimizations' '--with-lto' '--enable-ipv6' '--with-system-expat' '--with-dbmliborder=gdbm:ndbm' '--with-system-ffi' '--with-system-libmpdec' '--enable-loadable-sqlite-extensions' '--without-ensurepip' '--with-tzpath=/usr/share/zoneinfo' 'CFLAGS=-march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition' 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'" CONFINCLUDEDIR = "/usr/include" CONFINCLUDEPY = "/usr/include/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/build/python/src/Python-3.9.1/coverage.info" COVERAGE_REPORT = "/build/python/src/Python-3.9.1/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2" CXX = "g++ -pthread" DESTDIRS = "/usr /usr/lib /usr/lib/python3.9 /usr/lib/python3.9/lib-dynload" DESTLIB = "/usr/lib/python3.9" DESTPATH = "" DESTSHARED = "/usr/lib/python3.9/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXT_SUFFIX = ".cpython-39-x86_64-linux-gnu.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "1" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_J1939_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LINUX_WAIT_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-pc-linux-gnu" INCLDIRSTOMAKE = "/usr/include /usr/include /usr/include/python3.9 /usr/include/python3.9" INCLUDEDIR = "/usr/include" INCLUDEPY = "/usr/include/python3.9" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.9.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -pthread -shared" LDFLAGS = "-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.9.so" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" LDVERSION = "3.9" LIBC = "" LIBDEST = "/usr/lib/python3.9" LIBDIR = "/usr/lib" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/lib/pkgconfig" LIBPL = "/usr/lib/python3.9/config-3.9-x86_64-linux-gnu" LIBPYTHON = "" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/lib/python3.9" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "1" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/share/man" MKDIR_P = "/usr/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "x86_64-linux-gnu" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"x86_64-linux-gnu\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt" PY_CFLAGS_NODIST = "-flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" PY_CPPFLAGS = "-I. -I./Include -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" PY_LDFLAGS_NODIST = "-flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -flto=4 -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2 -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/build/python/src/Python-3.9.1" SCRIPTDIR = "/usr/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-39-x86_64-linux-gnu.so" SOABI = "cpython-39-x86_64-linux-gnu" SRCDIRS = "Parser Parser/pegen Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/build/python/src/Python-3.9.1 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/build/python/src/Python-3.9.1 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.9 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "1" VERSION = "3.9" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/build/python/src/Python-3.9.1" abs_srcdir = "/build/python/src/Python-3.9.1" base = "/usr" datarootdir = "/usr/share" exec_prefix = "/usr" installed_base = "/usr" installed_platbase = "/usr" platbase = "/usr" platlibdir = "lib" prefix = "/usr" projectbase = "/usr/bin" py_version = "3.9.1" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/usr/lib/python3.9/config-3.9-x86_64-linux-gnu" userbase = "/home/kngwyu/.local" python-maturin_1.3.2.orig/sysconfig/cpython-linux-mips64-3.11.txt0000644000000000000000000010337514525221045021561 0ustar00Platform: "linux-mips64" Python version: "3.11" Current installation scheme: "posix_prefix" Paths: data = "/usr" include = "/usr/include/python3.11" platinclude = "/usr/include/python3.11" platlib = "/usr/lib/python3.11/site-packages" platstdlib = "/usr/lib/python3.11" purelib = "/usr/lib/python3.11/site-packages" scripts = "/usr/bin" stdlib = "/usr/lib/python3.11" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALIGNOF_LONG = "8" ALIGNOF_SIZE_T = "8" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "mips64-unknown-linux-gnu-ar" ARFLAGS = "rcs" BASECFLAGS = "-Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/bin" BINLIBDEST = "/usr/lib/python3.11" BLDLIBRARY = "-L. -lpython3.11" BLDSHARED = "mips64-unknown-linux-gnu-gcc -shared" BOOTSTRAP_HEADERS = "\" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "mips64-unknown-linux-gnu" BYTESTR_DEPS = "\" CC = "mips64-unknown-linux-gnu-gcc" CCSHARED = "-fPIC" CFLAGS = "-Wsign-compare -DNDEBUG" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "" CONFIGURE_CFLAGS_NODIST = "-O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-I/usr/include/ncursesw" CONFIGURE_LDFLAGS = "" CONFIGURE_LDFLAGS_NODIST = "-Wl,-O1 -Wl,--as-needed -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" CONFIGURE_LDFLAGS_NOLTO = "-fno-lto" CONFIG_ARGS = "'--prefix=/usr' '--build=mips64-unknown-linux-gnu' '--host=mips64-unknown-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--docdir=/usr/share/doc/python-3.11.4' '--htmldir=/usr/share/doc/python-3.11.4/html' '--libdir=/usr/lib64' 'ac_cv_header_stropts_h=no' '--enable-shared' '--without-static-libpython' '--enable-ipv6' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-computed-gotos' '--with-dbmliborder=gdbm' '--with-libc=' '--enable-loadable-sqlite-extensions' '--without-ensurepip' '--with-system-expat' '--with-system-ffi' '--with-platlibdir=lib' '--with-pkg-config=yes' '--with-wheel-pkg-dir=/usr/lib/python/ensurepip' '--without-assertions' '--with-lto' '--enable-optimizations' '--with-readline=readline' '--without-valgrind' 'build_alias=mips64-unknown-linux-gnu' 'host_alias=mips64-unknown-linux-gnu' 'PKG_CONFIG=mips64-unknown-linux-gnu-pkg-config' 'CFLAGS=' 'LDFLAGS=' 'CPPFLAGS= -I/usr/include/ncursesw' 'PROFILE_TASK=-m test -j16 --pgo-extended -u-network --timeout 1200 -x test_gdb -x test_dtrace -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_socket -x test_xmlrpc -x test_tools'" CONFINCLUDEDIR = "/usr/include" CONFINCLUDEPY = "/usr/include/python3.11" COREPYTHONPATH = "" COVERAGE_INFO = "/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4/coverage.info" COVERAGE_LCOV_OPTIONS = "--rc lcov_branch_coverage=1" COVERAGE_REPORT = "/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4/lcov-report" COVERAGE_REPORT_OPTIONS = "--rc lcov_branch_coverage=1 --branch-coverage --title "CPython 3.11 LCOV report [commit $(shell )]"" CPPFLAGS = "-I. -I./Include -I/usr/include/ncursesw" CXX = "mips64-unknown-linux-gnu-g++" DECIMAL_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" DECIMAL_LDFLAGS = "-lm Modules/_decimal/libmpdec/libmpdec.a" DEEPFREEZE_DEPS = "./Tools/scripts/deepfreeze.py _bootstrap_python ./Programs/_freeze_module.py \" DEEPFREEZE_OBJS = "Python/deepfreeze/deepfreeze.o" DESTDIRS = "/usr /usr/lib64 /usr/lib/python3.11 /usr/lib/python3.11/lib-dynload" DESTLIB = "/usr/lib/python3.11" DESTPATH = "" DESTSHARED = "/usr/lib/python3.11/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "1" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "0" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPAT_CFLAGS = "" EXPAT_LDFLAGS = "-lexpat" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-311-mips64-linux-gnuabi64.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "1" FREEZE_MODULE = "./_bootstrap_python ./Programs/_freeze_module.py" FREEZE_MODULE_BOOTSTRAP = "./Programs/_freeze_module" FREEZE_MODULE_BOOTSTRAP_DEPS = "Programs/_freeze_module" FREEZE_MODULE_DEPS = "_bootstrap_python ./Programs/_freeze_module.py" FROZEN_FILES_IN = "\" FROZEN_FILES_OUT = "\" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT = "1" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "1" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_BZLIB_H = "1" HAVE_CHFLAGS = "0" HAVE_CHMOD = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_NANOSLEEP = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_CONNECT = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DB_H = "0" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EVENTFD = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORK1 = "0" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GDBM_DASH_NDBM_H = "0" HAVE_GDBM_H = "1" HAVE_GDBM_NDBM_H = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETEGID = "1" HAVE_GETENTROPY = "1" HAVE_GETEUID = "1" HAVE_GETGID = "1" HAVE_GETGRGID = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYADDR = "1" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETHOSTNAME = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPROTOBYNAME = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETRUSAGE = "1" HAVE_GETSERVBYNAME = "1" HAVE_GETSERVBYPORT = "1" HAVE_GETSID = "1" HAVE_GETSOCKNAME = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETUID = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_NTOA = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LIBB2 = "1" HAVE_LIBDB = "0" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBGDBM_COMPAT = "1" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBNDBM = "0" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBSQLITE3 = "1" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_AUXVEC_H = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_J1939_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_SOUNDCARD_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LINUX_WAIT_H = "1" HAVE_LISTEN = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LOGIN_TTY = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_LZMA_H = "0" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMRCHR = "1" HAVE_MINIX_CONFIG_H = "0" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NANOSLEEP = "1" HAVE_NCURSES_H = "1" HAVE_NDBM_H = "0" HAVE_NDIR_H = "0" HAVE_NETCAN_CAN_H = "0" HAVE_NETDB_H = "1" HAVE_NETINET_IN_H = "1" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENDIR = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTHREAD_STUBS = "0" HAVE_PTY_H = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RECVFROM = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_RPC_RPC_H = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SENDTO = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETJMP_H = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETSOCKOPT = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SHUTDOWN = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKET = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SPLICE = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDIO_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYSLOG_H = "1" HAVE_SYSTEM = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_AUXV_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENTFD_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_SOUNDCARD_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TTYNAME = "1" HAVE_TZNAME = "0" HAVE_UMASK = "1" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UTMP_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_VFORK = "1" HAVE_WAIT = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_ZLIB_COPY = "1" HAVE_ZLIB_H = "0" HAVE__GETPTY = "0" HOSTRUNNER = "" HOST_GNU_TYPE = "mips64-unknown-linux-gnu" INCLDIRSTOMAKE = "/usr/include /usr/include /usr/include/python3.11 /usr/include/python3.11" INCLUDEDIR = "/usr/include" INCLUDEPY = "/usr/include/python3.11" INSTALL = "/var/tmp/portage/._portage_reinstall_.4wisvm5r/bin/ebuild-helpers/xattr/install -c" INSTALL_DATA = "/var/tmp/portage/._portage_reinstall_.4wisvm5r/bin/ebuild-helpers/xattr/install -c -m 644" INSTALL_PROGRAM = "/var/tmp/portage/._portage_reinstall_.4wisvm5r/bin/ebuild-helpers/xattr/install -c" INSTALL_SCRIPT = "/var/tmp/portage/._portage_reinstall_.4wisvm5r/bin/ebuild-helpers/xattr/install -c" INSTALL_SHARED = "/var/tmp/portage/._portage_reinstall_.4wisvm5r/bin/ebuild-helpers/xattr/install -c -m 755" INSTSONAME = "libpython3.11.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "mips64-unknown-linux-gnu-g++ -shared" LDFLAGS = "" LDLIBRARY = "libpython3.11.so" LDLIBRARYDIR = "" LDSHARED = "mips64-unknown-linux-gnu-gcc -shared" LDVERSION = "3.11" LIBC = "" LIBDEST = "/usr/lib/python3.11" LIBDIR = "/usr/lib64" LIBEXPAT_A = "Modules/expat/libexpat.a" LIBEXPAT_CFLAGS = "-Wsign-compare -DNDEBUG -O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncursesw -fPIC -fPIC" LIBEXPAT_HEADERS = "\" LIBEXPAT_OBJS = "\" LIBFFI_INCLUDEDIR = "/usr/lib64/libffi/include" LIBM = "-lm" LIBMPDEC_A = "Modules/_decimal/libmpdec/libmpdec.a" LIBMPDEC_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1 -Wsign-compare -DNDEBUG -O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncursesw -fPIC -fPIC" LIBMPDEC_HEADERS = "\" LIBMPDEC_OBJS = "\" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/lib64/pkgconfig" LIBPL = "/usr/lib/python3.11/config-3.11-mips64-linux-gnuabi64" LIBPYTHON = "" LIBRARY = "libpython3.11.a" LIBRARY_DEPS = "libpython3.11.so libpython3.so" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-ldl" LIBSUBDIRS = "asyncio \" LINKCC = "mips64-unknown-linux-gnu-gcc" LINKFORSHARED = "-Xlinker -export-dynamic" LINK_PYTHON_DEPS = "libpython3.11.so libpython3.so" LINK_PYTHON_OBJS = "-L. -lpython3.11" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/lib/python3.11" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "mips64-unknown-linux-gnu-gcc" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "1" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "atexit faulthandler posix _signal _tracemalloc _codecs _collections errno _io itertools _sre _thread time _weakref _abc _functools _locale _operator _stat _symtable pwd xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_threadmodule.o Modules/timemodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o Modules/xxsubtype.o" MODSHARED_NAMES = "" MODULE_ARRAY_STATE = "yes" MODULE_ATEXIT_LDFLAGS = "" MODULE_AUDIOOP_LDFLAGS = "-lm" MODULE_AUDIOOP_STATE = "yes" MODULE_BINASCII_CFLAGS = "-DUSE_ZLIB_CRC32" MODULE_BINASCII_LDFLAGS = "-lz" MODULE_BINASCII_STATE = "yes" MODULE_CMATH_DEPS = "./Modules/_math.h" MODULE_CMATH_LDFLAGS = "-lm" MODULE_CMATH_STATE = "yes" MODULE_ERRNO_LDFLAGS = "" MODULE_FAULTHANDLER_LDFLAGS = "" MODULE_FCNTL_LDFLAGS = "" MODULE_FCNTL_STATE = "yes" MODULE_GRP_STATE = "yes" MODULE_ITERTOOLS_LDFLAGS = "" MODULE_MATH_DEPS = "./Modules/_math.h" MODULE_MATH_LDFLAGS = "-lm" MODULE_MATH_STATE = "yes" MODULE_MMAP_STATE = "yes" MODULE_NIS_CFLAGS = "-I/usr/include/tirpc" MODULE_NIS_LDFLAGS = "-lnsl -ltirpc" MODULE_NIS_STATE = "disabled" MODULE_OBJS = "\" MODULE_OSSAUDIODEV_LDFLAGS = "" MODULE_OSSAUDIODEV_STATE = "yes" MODULE_POSIX_LDFLAGS = "" MODULE_PWD_LDFLAGS = "" MODULE_PWD_STATE = "yes" MODULE_PYEXPAT_CFLAGS = "" MODULE_PYEXPAT_DEPS = "" MODULE_PYEXPAT_LDFLAGS = "-lexpat" MODULE_PYEXPAT_STATE = "yes" MODULE_READLINE_STATE = "yes" MODULE_RESOURCE_STATE = "yes" MODULE_SELECT_STATE = "yes" MODULE_SPWD_STATE = "yes" MODULE_SYSLOG_STATE = "yes" MODULE_TERMIOS_STATE = "yes" MODULE_TIME_LDFLAGS = "" MODULE_TIME_STATE = "yes" MODULE_UNICODEDATA_DEPS = "./Modules/unicodedata_db.h ./Modules/unicodename_db.h" MODULE_UNICODEDATA_STATE = "yes" MODULE_XXLIMITED_35_STATE = "yes" MODULE_XXLIMITED_STATE = "yes" MODULE_XXSUBTYPE_LDFLAGS = "" MODULE_ZLIB_CFLAGS = "" MODULE_ZLIB_LDFLAGS = "-lz" MODULE_ZLIB_STATE = "yes" MODULE__ABC_LDFLAGS = "" MODULE__ASYNCIO_STATE = "yes" MODULE__BISECT_STATE = "yes" MODULE__BLAKE2_CFLAGS = "" MODULE__BLAKE2_DEPS = "./Modules/_blake2/impl/blake2-config.h ./Modules/_blake2/impl/blake2-impl.h ./Modules/_blake2/impl/blake2.h ./Modules/_blake2/impl/blake2b-load-sse2.h ./Modules/_blake2/impl/blake2b-load-sse41.h ./Modules/_blake2/impl/blake2b-ref.c ./Modules/_blake2/impl/blake2b-round.h ./Modules/_blake2/impl/blake2b.c ./Modules/_blake2/impl/blake2s-load-sse2.h ./Modules/_blake2/impl/blake2s-load-sse41.h ./Modules/_blake2/impl/blake2s-load-xop.h ./Modules/_blake2/impl/blake2s-ref.c ./Modules/_blake2/impl/blake2s-round.h ./Modules/_blake2/impl/blake2s.c ./Modules/_blake2/blake2module.h ./Modules/hashlib.h" MODULE__BLAKE2_LDFLAGS = "-lb2" MODULE__BLAKE2_STATE = "yes" MODULE__BZ2_CFLAGS = "" MODULE__BZ2_LDFLAGS = "-lbz2" MODULE__BZ2_STATE = "yes" MODULE__CODECS_CN_STATE = "yes" MODULE__CODECS_HK_STATE = "yes" MODULE__CODECS_ISO2022_STATE = "yes" MODULE__CODECS_JP_STATE = "yes" MODULE__CODECS_KR_STATE = "yes" MODULE__CODECS_LDFLAGS = "" MODULE__CODECS_TW_STATE = "yes" MODULE__COLLECTIONS_LDFLAGS = "" MODULE__CONTEXTVARS_STATE = "yes" MODULE__CRYPT_CFLAGS = "" MODULE__CRYPT_LDFLAGS = "-lcrypt" MODULE__CRYPT_STATE = "yes" MODULE__CSV_STATE = "yes" MODULE__CTYPES_DEPS = "./Modules/_ctypes/ctypes.h" MODULE__CTYPES_TEST_LDFLAGS = "-lm" MODULE__CTYPES_TEST_STATE = "yes" MODULE__CURSES_PANEL_STATE = "yes" MODULE__CURSES_STATE = "yes" MODULE__DATETIME_LDFLAGS = "-lm" MODULE__DATETIME_STATE = "yes" MODULE__DBM_STATE = "yes" MODULE__DECIMAL_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" MODULE__DECIMAL_DEPS = "./Modules/_decimal/docstrings.h \ Modules/_decimal/libmpdec/libmpdec.a" MODULE__DECIMAL_LDFLAGS = "-lm Modules/_decimal/libmpdec/libmpdec.a" MODULE__DECIMAL_STATE = "yes" MODULE__ELEMENTTREE_CFLAGS = "" MODULE__ELEMENTTREE_DEPS = "./Modules/pyexpat.c" MODULE__ELEMENTTREE_STATE = "yes" MODULE__FUNCTOOLS_LDFLAGS = "" MODULE__GDBM_CFLAGS = "" MODULE__GDBM_LDFLAGS = "-lgdbm" MODULE__GDBM_STATE = "yes" MODULE__HASHLIB_CFLAGS = "" MODULE__HASHLIB_DEPS = "./Modules/hashlib.h" MODULE__HASHLIB_LDFLAGS = "-lcrypto" MODULE__HASHLIB_STATE = "yes" MODULE__HEAPQ_STATE = "yes" MODULE__IO_CFLAGS = "-I./Modules/_io" MODULE__IO_DEPS = "./Modules/_io/_iomodule.h" MODULE__IO_LDFLAGS = "" MODULE__IO_STATE = "yes" MODULE__JSON_STATE = "yes" MODULE__LOCALE_LDFLAGS = "" MODULE__LSPROF_STATE = "yes" MODULE__LZMA_CFLAGS = "" MODULE__LZMA_LDFLAGS = "-llzma" MODULE__LZMA_STATE = "yes" MODULE__MD5_DEPS = "./Modules/hashlib.h" MODULE__MD5_STATE = "yes" MODULE__MULTIBYTECODEC_STATE = "yes" MODULE__MULTIPROCESSING_CFLAGS = "-I./Modules/_multiprocessing" MODULE__MULTIPROCESSING_STATE = "yes" MODULE__OPCODE_STATE = "yes" MODULE__OPERATOR_LDFLAGS = "" MODULE__PICKLE_STATE = "yes" MODULE__POSIXSHMEM_CFLAGS = "-I./Modules/_multiprocessing" MODULE__POSIXSHMEM_LDFLAGS = "" MODULE__POSIXSHMEM_STATE = "yes" MODULE__POSIXSUBPROCESS_STATE = "yes" MODULE__QUEUE_STATE = "yes" MODULE__RANDOM_STATE = "yes" MODULE__SCPROXY_STATE = "n/a" MODULE__SHA1_DEPS = "./Modules/hashlib.h" MODULE__SHA1_STATE = "yes" MODULE__SHA256_DEPS = "./Modules/hashlib.h" MODULE__SHA256_STATE = "yes" MODULE__SHA3_DEPS = "./Modules/_sha3/sha3.c ./Modules/_sha3/sha3.h ./Modules/hashlib.h" MODULE__SHA3_STATE = "yes" MODULE__SHA512_DEPS = "./Modules/hashlib.h" MODULE__SHA512_STATE = "yes" MODULE__SIGNAL_LDFLAGS = "" MODULE__SOCKET_DEPS = "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c" MODULE__SOCKET_STATE = "yes" MODULE__SQLITE3_CFLAGS = "-I./Modules/_sqlite" MODULE__SQLITE3_DEPS = "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h" MODULE__SQLITE3_LDFLAGS = "-lsqlite3" MODULE__SQLITE3_STATE = "yes" MODULE__SRE_LDFLAGS = "" MODULE__SSL_CFLAGS = "" MODULE__SSL_DEPS = "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data.h ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h" MODULE__SSL_LDFLAGS = "-lssl -lcrypto" MODULE__SSL_STATE = "yes" MODULE__STATISTICS_LDFLAGS = "-lm" MODULE__STATISTICS_STATE = "yes" MODULE__STAT_LDFLAGS = "" MODULE__STRUCT_STATE = "yes" MODULE__SYMTABLE_LDFLAGS = "" MODULE__TESTBUFFER_STATE = "yes" MODULE__TESTCAPI_DEPS = "./Modules/testcapi_long.h" MODULE__TESTCAPI_STATE = "yes" MODULE__TESTCLINIC_STATE = "yes" MODULE__TESTIMPORTMULTIPLE_STATE = "yes" MODULE__TESTINTERNALCAPI_STATE = "yes" MODULE__TESTMULTIPHASE_STATE = "yes" MODULE__THREAD_LDFLAGS = "" MODULE__TKINTER_STATE = "disabled" MODULE__TRACEMALLOC_LDFLAGS = "" MODULE__TYPING_STATE = "yes" MODULE__UUID_CFLAGS = "-I/usr/include/uuid" MODULE__UUID_LDFLAGS = "-luuid" MODULE__UUID_STATE = "yes" MODULE__WEAKREF_LDFLAGS = "" MODULE__XXSUBINTERPRETERS_STATE = "yes" MODULE__XXTESTFUZZ_STATE = "yes" MODULE__ZONEINFO_STATE = "yes" MULTIARCH = "mips64-linux-gnuabi64" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"mips64-linux-gnuabi64\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPENSSL_RPATH = "" OPT = "-DNDEBUG" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test -j16 --pgo-extended -u-network --timeout 1200 -x test_gdb -x test_dtrace -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_socket -x test_xmlrpc -x test_tools" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_BUILD_DEPS = "python" PYTHON_FOR_FREEZE = "./_bootstrap_python" PYTHON_FOR_REGEN = "" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wsign-compare -DNDEBUG -O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncursesw -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wsign-compare -DNDEBUG" PY_CFLAGS_NODIST = "-O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wsign-compare -DNDEBUG -O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncursesw -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-Wl,-O1 -Wl,--as-needed -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" PY_CPPFLAGS = "-I. -I./Include -I/usr/include/ncursesw" PY_ENABLE_SHARED = "1" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "" PY_LDFLAGS_NODIST = "-Wl,-O1 -Wl,--as-needed -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" PY_LDFLAGS_NOLTO = "-fno-lto" PY_SQLITE_ENABLE_LOAD_EXTENSION = "1" PY_SQLITE_HAVE_SERIALIZE = "1" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wsign-compare -DNDEBUG -O3 -pipe -march=native -mtune=native -mabi=64 -fwrapv -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncursesw -fPIC" PY_SUPPORT_TIER = "0" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_STATS = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "mips64-unknown-linux-gnu-readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4" SCRIPTDIR = "/usr/lib" SETPGRP_HAVE_ARG = "0" SHELL = "/bin/sh" SHLIBS = "-ldl" SHLIB_SUFFIX = ".so" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SOABI = "cpython-311-mips64-linux-gnuabi64" SRCDIRS = "Modules Modules/_blake2 Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_io Modules/_multiprocessing Modules/_sha3 Modules/_sqlite Modules/_sre Modules/_xxtestfuzz Modules/cjkcodecs Modules/expat Objects Parser Programs Python Python/frozen_modules Python/deepfreeze" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STATIC_LIBPYTHON = "0" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4 ./python -E" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4 ./python -E ./Tools/scripts/run_tests.py" TESTSUBDIRS = "ctypes/test \" TESTTIMEOUT = "1200" TEST_MODULES = "yes" THREAD_STACK_SIZE = "0" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "1" VERSION = "3.11" WASM_ASSETS_DIR = "./usr" WASM_STDLIB = "./usr/lib/python3.11/os.py" WHEEL_PKG_DIR = "/usr/lib/python/ensurepip" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_EDITLINE = "0" WITH_FREELISTS = "1" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4" abs_srcdir = "/var/tmp/portage/dev-lang/python-3.11.4/work/Python-3.11.4" base = "/usr" datarootdir = "/usr/share" exec_prefix = "/usr" installed_base = "/usr" installed_platbase = "/usr" platbase = "/usr" platlibdir = "lib" prefix = "/usr" projectbase = "/usr/bin" py_version = "3.11.4" py_version_nodot = "311" py_version_nodot_plat = "" py_version_short = "3.11" srcdir = "/usr/lib/python3.11/config-3.11-mips64-linux-gnuabi64" userbase = "/var/lib/portage/home/.local" python-maturin_1.3.2.orig/sysconfig/cpython-linux-mips64el-3.10.txt0000644000000000000000000005761514270234517022113 0ustar00Platform: "linux-mips64" Python version: "3.10" Current installation scheme: "posix_local" Paths: data = "/usr/local" include = "/usr/include/python3.10" platinclude = "/usr/include/python3.10" platlib = "/usr/local/lib/python3.10/dist-packages" platstdlib = "/usr/lib/python3.10" purelib = "/usr/local/lib/python3.10/dist-packages" scripts = "/usr/local/bin" stdlib = "/usr/lib/python3.10" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALIGNOF_LONG = "8" ALIGNOF_SIZE_T = "8" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "mips64el-linux-gnuabi64-ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "-IObjects -IInclude -IPython" BASEMODLIBS = "" BINDIR = "/usr/bin" BINLIBDEST = "/usr/lib/mips64el-linux-gnuabi64/python3.10" BLDLIBRARY = "-lpython3.10" BLDSHARED = "mips64el-linux-gnuabi64-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions " BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "mips64el-unknown-linux-gnuabi64" BYTESTR_DEPS = "\" CC = "mips64el-linux-gnuabi64-gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-g -fstack-protector-strong -Wformat -Werror=format-security" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-Wdate-time -D_FORTIFY_SOURCE=2" CONFIGURE_LDFLAGS = " " CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--prefix=/usr' '--libdir=/usr/lib/mips64el-linux-gnuabi64' '--enable-ipv6' '--enable-loadable-sqlite-extensions' '--with-dbmliborder=bdb:gdbm' '--with-computed-gotos' '--without-ensurepip' '--with-system-expat' '--with-dtrace' '--with-system-libmpdec' '--with-wheel-pkg-dir=/usr/share/python-wheels/' 'MKDIR_P=/bin/mkdir -p' '--with-system-ffi' 'CC=mips64el-linux-gnuabi64-gcc' 'CFLAGS=-g -fstack-protector-strong -Wformat -Werror=format-security ' 'LDFLAGS= ' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'" CONFINCLUDEDIR = "/usr/include" CONFINCLUDEPY = "/usr/include/python3.10" COREPYTHONPATH = "" COVERAGE_INFO = "/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared/coverage.info" COVERAGE_REPORT = "/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2" CXX = "mips64el-linux-gnuabi64-g++ -pthread" DESTDIRS = "/usr /usr/lib/mips64el-linux-gnuabi64 /usr/lib/mips64el-linux-gnuabi64/python3.10 /usr/lib/python3.10/lib-dynload" DESTLIB = "/usr/lib/python3.10" DESTPATH = "" DESTSHARED = "/usr/lib/python3.10/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "/usr/bin/dtrace" DTRACE_DEPS = "\" DTRACE_HEADERS = "Include/pydtrace_probes.h" DTRACE_OBJS = "Python/pydtrace.o" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPERIMENTAL_ISOLATED_SUBINTERPRETERS = "0" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXT_SUFFIX = ".cpython-310-mips64el-linux-gnuabi64.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "1" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_CLOSE_RANGE = "0" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EVENTFD = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LIBUUID = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_AUXVEC_H = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_J1939_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LINUX_WAIT_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "0" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SPLICE = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_AUXV_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENTFD_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_VFORK = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "mips64el-unknown-linux-gnuabi64" INCLDIRSTOMAKE = "/usr/include /usr/include /usr/include/python3.10 /usr/include/python3.10" INCLUDEDIR = "/usr/include" INCLUDEPY = "/usr/include/python3.10" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.10.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "mips64el-linux-gnuabi64-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions" LDFLAGS = " " LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.10.so" LDLIBRARYDIR = "" LDSHARED = "mips64el-linux-gnuabi64-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions " LDVERSION = "3.10" LIBC = "" LIBDEST = "/usr/lib/python3.10" LIBDIR = "/usr/lib/mips64el-linux-gnuabi64" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/lib/mips64el-linux-gnuabi64/pkgconfig" LIBPL = "/usr/lib/python3.10/config-3.10-mips64el-linux-gnuabi64" LIBPYTHON = "" LIBRARY = "libpython3.10.a" LIBRARY_DEPS = "libpython3.10.a libpython3.10.so libpython3.so" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil -lm" LIBSUBDIRS = "asyncio \" LINKCC = "mips64el-linux-gnuabi64-gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "-lexpat -L/usr/lib -lz -lexpat" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/lib/mips64el-linux-gnuabi64/python3.10" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "mips64el-linux-gnuabi64-gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "1" MAKESETUP = "../Modules/makesetup" MANDIR = "/usr/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "array cmath math _struct _random _elementtree _pickle _datetime _bisect _heapq _statistics unicodedata fcntl spwd grp select _csv _socket _posixsubprocess _md5 _sha1 _sha256 _sha512 _sha3 _blake2 syslog binascii zlib posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable pyexpat xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "-lexpat -L/usr/lib -lz -lexpat" MODOBJS = "$(sort Modules/arraymodule.o Modules/cmathmodule.o Modules/_math.o Modules/mathmodule.o Modules/_math.o Modules/_struct.o Modules/_randommodule.o Modules/_elementtree.o Modules/_pickle.o Modules/_datetimemodule.o Modules/_bisectmodule.o Modules/_heapqmodule.o Modules/_statisticsmodule.o Modules/unicodedata.o Modules/fcntlmodule.o Modules/spwdmodule.o Modules/grpmodule.o Modules/selectmodule.o Modules/_csv.o Modules/socketmodule.o Modules/_posixsubprocess.o Modules/md5module.o Modules/sha1module.o Modules/sha256module.o Modules/sha512module.o Modules/sha3module.o Modules/blake2module.o Modules/blake2b_impl.o Modules/blake2s_impl.o Modules/syslogmodule.o Modules/binascii.o Modules/zlibmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/symtablemodule.o Modules/pyexpat.o Modules/xxsubtype.o)" MODULE_OBJS = "\" MULTIARCH = "mips64el-linux-gnuabi64" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"mips64el-linux-gnuabi64\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPENSSL_RPATH = "" OPT = "-DNDEBUG -g -fwrapv -O2 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo --timeout=1200" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I../Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = " " PY_CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2" PY_ENABLE_SHARED = "1" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = " " PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared" SCRIPTDIR = "/usr/lib" SETPGRP_HAVE_ARG = "0" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-310-mips64el-linux-gnuabi64.so" SOABI = "cpython-310-mips64el-linux-gnuabi64" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "../Tools/gdb/libpython.py" STATIC_LIBPYTHON = "1" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "-I/usr/include/tcl8.6" TCLTK_LIBS = "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared ./python ../Tools/scripts/run_tests.py" TESTSUBDIRS = "ctypes/test \" TESTTIMEOUT = "1200" TEST_MODULES = "yes" THREAD_STACK_SIZE = "0" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "../Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "1" VERSION = "3.10" VPATH = ".." WHEEL_PKG_DIR = "/usr/share/python-wheels/" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "1" WITH_DYLD = "0" WITH_EDITLINE = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared" abs_srcdir = "/build/python3.10-4eBcjM/python3.10-3.10.5/build-shared/.." base = "/usr" datarootdir = "/usr/share" exec_prefix = "/usr" installed_base = "/usr" installed_platbase = "/usr" multiarchsubdir = "/mips64el-linux-gnuabi64" platbase = "/usr" platlibdir = "lib" prefix = "/usr" projectbase = "/usr/bin" py_version = "3.10.5" py_version_nodot = "310" py_version_nodot_plat = "" py_version_short = "3.10" srcdir = "/usr/lib/python3.10/config-3.10-mips64el-linux-gnuabi64" userbase = "/root/.local"python-maturin_1.3.2.orig/sysconfig/cpython-macos-3.9-arm64.txt0000644000000000000000000006724314146050212021260 0ustar00Platform: "macosx-11.2-arm64" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/Users/messense/.pyenv/versions/test" include = "/Users/messense/.pyenv/versions/3.9.2/include/python3.9" platinclude = "/Users/messense/.pyenv/versions/3.9.2/include/python3.9" platlib = "/Users/messense/.pyenv/versions/test/lib/python3.9/site-packages" platstdlib = "/Users/messense/.pyenv/versions/test/lib/python3.9" purelib = "/Users/messense/.pyenv/versions/test/lib/python3.9/site-packages" scripts = "/Users/messense/.pyenv/versions/test/bin" stdlib = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/Users/messense/.pyenv/versions/3.9.2/bin" BINLIBDEST = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9" BLDLIBRARY = "-L. -lpython3.9" BLDSHARED = "clang -bundle -undefined dynamic_lookup -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib" BUILDEXE = ".exe" BUILDPYTHON = "python.exe" BUILD_GNU_TYPE = "arm-apple-darwin20.3.0" BYTESTR_DEPS = "\" CC = "clang" CCSHARED = "" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include" CFLAGSFORSHARED = "" CFLAGS_ALIASING = "-fno-strict-aliasing" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include" CONFIGURE_LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--prefix=/Users/messense/.pyenv/versions/3.9.2' '--enable-shared' '--libdir=/Users/messense/.pyenv/versions/3.9.2/lib' '--with-openssl=/opt/homebrew/opt/openssl@1.1' 'CC=clang' 'CFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include ' 'LDFLAGS=-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib' 'CPPFLAGS=-I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include ' 'PKG_CONFIG_PATH=/opt/homebrew/opt/openssl@1.1/lib/pkgconfig/:'" CONFINCLUDEDIR = "/Users/messense/.pyenv/versions/3.9.2/include" CONFINCLUDEPY = "/Users/messense/.pyenv/versions/3.9.2/include/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2/coverage.info" COVERAGE_REPORT = "/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include" CXX = "clang++" DESTDIRS = "/Users/messense/.pyenv/versions/3.9.2 /Users/messense/.pyenv/versions/3.9.2/lib /Users/messense/.pyenv/versions/3.9.2/lib/python3.9 /Users/messense/.pyenv/versions/3.9.2/lib/python3.9/lib-dynload" DESTLIB = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9" DESTPATH = "" DESTSHARED = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "upgrade" EXE = "" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-39-darwin.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "no" HAVE_ACCEPT4 = "0" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "0" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "1" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "1" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "0" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "0" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "0" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "0" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FINITE = "0" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "0" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "0" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "0" HAVE_GETRESUID = "0" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "0" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "0" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "0" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "0" HAVE_MKNOD = "1" HAVE_MKNODAT = "0" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "0" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "0" HAVE_POSIX_FALLOCATE = "0" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "0" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "0" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "0" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "0" HAVE_SCHED_SETSCHEDULER = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "0" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "0" HAVE_SETRESUID = "0" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "0" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "0" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "0" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "1" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "1" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "1" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "arm-apple-darwin20.3.0" INCLDIRSTOMAKE = "/Users/messense/.pyenv/versions/3.9.2/include /Users/messense/.pyenv/versions/3.9.2/include /Users/messense/.pyenv/versions/3.9.2/include/python3.9 /Users/messense/.pyenv/versions/3.9.2/include/python3.9" INCLUDEDIR = "/Users/messense/.pyenv/versions/3.9.2/include" INCLUDEPY = "/Users/messense/.pyenv/versions/3.9.2/include/python3.9" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.9.dylib" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "clang++ -bundle -undefined dynamic_lookup" LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.9.dylib" LDLIBRARYDIR = "" LDSHARED = "clang -bundle -undefined dynamic_lookup -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib" LDVERSION = "3.9" LIBC = "" LIBDEST = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9" LIBDIR = "/Users/messense/.pyenv/versions/3.9.2/lib" LIBFFI_INCLUDEDIR = "" LIBM = "" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/Users/messense/.pyenv/versions/3.9.2/lib/pkgconfig" LIBPL = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9/config-3.9-darwin" LIBPYTHON = "" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-ldl -framework CoreFoundation" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "clang" LINKFORSHARED = "-Wl,-stack_size,1000000 -framework CoreFoundation" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "LLVM_PROFILE_FILE="code-%p.profclangr"" LLVM_PROF_MERGER = "/usr/bin/xcrun llvm-profdata merge -output=code.profclangd *.profclangr" LN = "ln" LOCALMODLIBS = "" MACHDEP = "darwin" MACHDEP_OBJS = "" MACHDESTLIB = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9" MACOSX_DEPLOYMENT_TARGET = "11.2" MAINCC = "clang" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/Users/messense/.pyenv/versions/3.9.2/share/man" MKDIR_P = "/opt/homebrew/bin/gmkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "darwin" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"darwin\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/opt/homebrew/opt/openssl@1.1/include" OPENSSL_LDFLAGS = "-L/opt/homebrew/opt/openssl@1.1/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-instr-generate" PGO_PROF_USE_FLAG = "-fprofile-instr-use=code.profclangd" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "0" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python.exe -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib" PY_CPPFLAGS = "-I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/messense/.pyenv/versions/3.9.2/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/messense/.pyenv/versions/3.9.2/include" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = ":" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "DYLD_LIBRARY_PATH=/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2" SCRIPTDIR = "/Users/messense/.pyenv/versions/3.9.2/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-ldl -framework CoreFoundation" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "8" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "8" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-39-darwin.so" SOABI = "cpython-39-darwin" SRCDIRS = "Parser Parser/pegen Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "DYLD_LIBRARY_PATH=/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2 ./python.exe" TESTPYTHONOPTS = "" TESTRUNNER = "DYLD_LIBRARY_PATH=/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2 ./python.exe ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.9 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.9" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "1" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2" abs_srcdir = "/var/folders/0r/4fqyt_zs2tj4zvglsb7f4zjw0000gn/T/python-build.20210320213320.90609/Python-3.9.2" base = "/Users/messense/.pyenv/versions/test" datarootdir = "/Users/messense/.pyenv/versions/3.9.2/share" exec_prefix = "/Users/messense/.pyenv/versions/3.9.2" installed_base = "/Users/messense/.pyenv/versions/3.9.2" installed_platbase = "/Users/messense/.pyenv/versions/3.9.2" platbase = "/Users/messense/.pyenv/versions/test" platlibdir = "lib" prefix = "/Users/messense/.pyenv/versions/3.9.2" projectbase = "/Users/messense/.pyenv/versions/3.9.2/bin" py_version = "3.9.2" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/Users/messense/.pyenv/versions/3.9.2/lib/python3.9/config-3.9-darwin" userbase = "/Users/messense/.local" python-maturin_1.3.2.orig/sysconfig/cpython-netbsd-3.9.txt0000644000000000000000000006007614147706530020517 0ustar00Platform: "netbsd-9.99.92-amd64" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/usr/pkg" include = "/usr/pkg/include/python3.9" platinclude = "/usr/pkg/include/python3.9" platlib = "/usr/pkg/lib/python3.9/site-packages" platstdlib = "/usr/pkg/lib/python3.9" purelib = "/usr/pkg/lib/python3.9/site-packages" scripts = "/usr/pkg/bin" stdlib = "/usr/pkg/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/pkg/bin" BINLIBDEST = "/usr/pkg/lib/python3.9" BLDLIBRARY = "-L. -lpython3.9" BLDSHARED = "gcc -pthread -shared -L. -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64--netbsd" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include" CONFIGURE_CFLAGS_NODIST = "-std=gnu99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-g -I/usr/include -I/usr/pkg/include" CONFIGURE_LDFLAGS = "-Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--enable-shared' '--with-openssl=/usr' '--with-system-ffi' '--without-ensurepip' '--without-pymalloc' '--prefix=/usr/pkg' '--build=x86_64--netbsd' '--host=x86_64--netbsd' '--mandir=/usr/pkg/man' '--enable-option-checking=yes' 'build_alias=x86_64--netbsd' 'host_alias=x86_64--netbsd' 'CC=gcc' 'CFLAGS=-O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include' 'LDFLAGS=-Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib' 'LIBS=' 'CPPFLAGS=-g -I/usr/include -I/usr/pkg/include' 'PKG_CONFIG=/scratch/lang/python39/work/.tools/bin/pkg-config' 'PKG_CONFIG_PATH=' 'PKG_CONFIG_LIBDIR=/scratch/lang/python39/work/.buildlink/lib/pkgconfig:/scratch/lang/python39/work/.buildlink/share/pkgconfig'" CONFINCLUDEDIR = "/usr/pkg/include" CONFINCLUDEPY = "/usr/pkg/include/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/scratch/lang/python39/work/Python-3.9.9/coverage.info" COVERAGE_REPORT = "/scratch/lang/python39/work/Python-3.9.9/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -g -I/usr/include -I/usr/pkg/include -g -I/usr/include -I/usr/pkg/include" CXX = "c++ -pthread" DESTDIRS = "/usr/pkg /usr/pkg/lib /usr/pkg/lib/python3.9 /usr/pkg/lib/python3.9/lib-dynload" DESTLIB = "/usr/pkg/lib/python3.9" DESTPATH = "" DESTSHARED = "/usr/pkg/lib/python3.9/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "1" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "0" HAVE_EXPLICIT_MEMSET = "1" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "0" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "0" HAVE_GETRESUID = "0" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "1" HAVE_LCHMOD = "1" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "0" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LIBUUID = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "0" HAVE_NDIR_H = "0" HAVE_NETCAN_CAN_H = "1" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "0" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "0" HAVE_SETRESUID = "0" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "1" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "1" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64--netbsd" INCLDIRSTOMAKE = "/usr/pkg/include /usr/pkg/include /usr/pkg/include/python3.9 /usr/pkg/include/python3.9" INCLUDEDIR = "/usr/pkg/include" INCLUDEPY = "/usr/pkg/include/python3.9" INSTALL = "/usr/bin/install -c -o pbulk -g builder" INSTALL_DATA = "/usr/bin/install -c -o pbulk -g builder -m 644" INSTALL_PROGRAM = "/usr/bin/install -c -o pbulk -g builder -m 755" INSTALL_SCRIPT = "/usr/bin/install -c -o pbulk -g builder -m 755" INSTALL_SHARED = "/usr/bin/install -c -o pbulk -g builder -m 755" INSTSONAME = "libpython3.9.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared" LDFLAGS = "-L. -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.9.so" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared -L. -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib" LDVERSION = "3.9" LIBC = "" LIBDEST = "/usr/pkg/lib/python3.9" LIBDIR = "/usr/pkg/lib" LIBFFI_INCLUDEDIR = "/usr/pkg/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/pkg/lib/pkgconfig" LIBPL = "/usr/pkg/lib/python3.9/config-3.9" LIBPYTHON = "" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lintl -lpthread -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "/bin/ln" LOCALMODLIBS = "" MACHDEP = "netbsd9" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/pkg/lib/python3.9" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/pkg/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/include" OPENSSL_LDFLAGS = "-L/usr/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -std=gnu99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -I/usr/include -I/usr/pkg/include -g -I/usr/include -I/usr/pkg/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include" PY_CFLAGS_NODIST = "-std=gnu99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -std=gnu99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -I/usr/include -I/usr/pkg/include -g -I/usr/include -I/usr/pkg/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L. -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib" PY_CPPFLAGS = "-I. -I./Include -g -I/usr/include -I/usr/pkg/include -g -I/usr/include -I/usr/pkg/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L. -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -O2 -g -fPIC -D_FORTIFY_SOURCE=2 -fstack-check -I/usr/include -I/usr/pkg/include -std=gnu99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -I/usr/include -I/usr/pkg/include -g -I/usr/include -I/usr/pkg/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/scratch/lang/python39/work/Python-3.9.9" SCRIPTDIR = "/usr/pkg/lib" SETPGRP_HAVE_ARG = "1" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lintl -lpthread -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "264" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".so" SOABI = "cpython-39" SRCDIRS = "Parser Parser/pegen Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/scratch/lang/python39/work/Python-3.9.9 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/scratch/lang/python39/work/Python-3.9.9 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.9" WINDOW_HAS_FLAGS = "0" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "0" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/scratch/lang/python39/work/Python-3.9.9" abs_srcdir = "/scratch/lang/python39/work/Python-3.9.9" base = "/usr/pkg" datarootdir = "/usr/pkg/share" exec_prefix = "/usr/pkg" installed_base = "/usr/pkg" installed_platbase = "/usr/pkg" platbase = "/usr/pkg" platlibdir = "lib" prefix = "/usr/pkg" projectbase = "/usr/pkg/bin" py_version = "3.9.9" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/usr/pkg/lib/python3.9/config-3.9" userbase = "/home/wiz/.local" python-maturin_1.3.2.orig/sysconfig/cpython-omnios-3.9.txt0000644000000000000000000006603514151014727020540 0ustar00Platform: "solaris-2.11-i86pc.64bit" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/usr" include = "/usr/include/python3.9" platinclude = "/usr/include/python3.9" platlib = "/usr/lib/python3.9/site-packages" platstdlib = "/usr/lib/python3.9" purelib = "/usr/lib/python3.9/site-packages" scripts = "/usr/bin" stdlib = "/usr/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/bin" BINLIBDEST = "/usr/lib/amd64/python3.9" BLDLIBRARY = "-Wl,-R,/usr/lib/amd64 -L. -lpython3.9" BLDSHARED = "gcc -m64 -shared -m64" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-pc-solaris2.11" BYTESTR_DEPS = "\" CC = "gcc -m64" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64 -D_REENTRANT" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64 -D_REENTRANT" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH" CONFIGURE_LDFLAGS = "-m64" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--prefix=/usr' '--sysconfdir=/etc' '--includedir=/usr/include' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--libdir=/usr/lib/amd64' '--libexecdir=/usr/libexec/amd64' '--enable-shared' '--with-dtrace' '--with-system-ffi' '--with-system-expat' '--enable-ipv6' '--without-ensurepip' '--enable-optimizations' 'ac_cv_func_getentropy=no' 'CC=gcc -m64' 'CFLAGS=-O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64' 'LDFLAGS= -m64' 'CPPFLAGS= -I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH ' 'PKG_CONFIG_PATH='" CONFINCLUDEDIR = "/usr/include" CONFINCLUDEPY = "/usr/include/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8/coverage.info" COVERAGE_REPORT = "/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH" CXX = "g++" DESTDIRS = "/usr /usr/lib/amd64 /usr/lib/amd64/python3.9 /usr/lib/amd64/python3.9/lib-dynload" DESTLIB = "/usr/lib/python3.9" DESTPATH = "" DESTSHARED = "/usr/lib/amd64/python3.9/lib-dynload" DFLAGS = "-64" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "/usr/sbin/dtrace" DTRACE_DEPS = "\" DTRACE_HEADERS = "Include/pydtrace_probes.h" DTRACE_OBJS = "Python/pydtrace.o" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-39.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "no" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "1" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "1" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "0" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "1" HAVE_FEXECVE = "0" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "0" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "0" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "1" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "0" HAVE_GETRESUID = "0" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "0" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "1" HAVE_LIBUTIL_H = "0" HAVE_LIBUUID = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMRCHR = "1" HAVE_MINIX_CONFIG_H = "0" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENPTY = "0" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "1" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "0" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "0" HAVE_SETRESUID = "0" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDIO_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "1" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "0" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "1" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "1" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "1" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "1" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "0" HAVE_TRUNCATE = "1" HAVE_TZNAME = "1" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-pc-solaris2.11" INCLDIRSTOMAKE = "/usr/include /usr/include /usr/include/python3.9 /usr/include/python3.9" INCLUDEDIR = "/usr/include" INCLUDEPY = "/usr/include/python3.9" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.9.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -shared" LDFLAGS = "-m64" LDLIBRARY = "libpython3.9.so" LDLIBRARYDIR = "" LDSHARED = "gcc -m64 -shared -m64" LDVERSION = "3.9" LIBC = "" LIBDEST = "/usr/lib/python3.9" LIBDIR = "/usr/lib/amd64" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/lib/amd64/pkgconfig" LIBPL = "/usr/lib/python3.9/config-3.9" LIBPYTHON = "" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lsocket -lnsl -lintl -ldl -lsendfile -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -m64" LINKFORSHARED = "" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "sunos5" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/lib/amd64/python3.9" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -m64" MAJOR_IN_MKDEV = "1" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/share/man" MKDIR_P = "/usr/gnu/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-I/usr/ssl-1.1/include" OPENSSL_LDFLAGS = "-L/usr/ssl-1.1/lib/amd64" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64 -D_REENTRANT -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64 -D_REENTRANT" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64 -D_REENTRANT -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-m64" PY_CPPFLAGS = "-I. -I./Include -I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-m64" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -O2 -fno-aggressive-loop-optimizations -fstack-protector-strong -gdwarf-2 -gstrict-dwarf -m64 -D_REENTRANT -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal -I. -I./Include -I/usr/include/ncurses -D_LARGEFILE64_SOURCE -DSKIP_ZIP_PATH -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8" SCRIPTDIR = "/usr/lib" SETPGRP_HAVE_ARG = "0" SHELL = "/bin/sh" SHLIBS = "-lsocket -lnsl -lintl -ldl -lsendfile -lm" SHLIB_FLAGS = "-shared -fpic" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "4" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-39.so" SOABI = "cpython-39" SRCDIRS = "Parser Parser/pegen Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.9 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.9" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "1" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8" abs_srcdir = "/data/omnios-build/omniosorg/r151040/_build/Python-3.9.8/Python-3.9.8" base = "/usr" datarootdir = "/usr/share" exec_prefix = "/usr" installed_base = "/usr" installed_platbase = "/usr" platbase = "/usr" platlibdir = "lib" prefix = "/usr" projectbase = "/usr/bin" py_version = "3.9.8" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/usr/lib/python3.9/config-3.9" userbase = "/root/.local"python-maturin_1.3.2.orig/sysconfig/cpython-openbsd-3.8-aarch64.txt0000644000000000000000000005222414062744135022112 0ustar00Platform: "openbsd-6.9-arm64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.8" platinclude = "/usr/local/include/python3.8" platlib = "/usr/local/lib/python3.8/site-packages" platstdlib = "/usr/local/lib/python3.8" purelib = "/usr/local/lib/python3.8/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "cc -pthread -shared -fPIC -L/usr/local/lib/ -L/usr/obj/ports/Python-3.8.8/Python-3.8.8 -L/usr/local/lib/" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "aarch64-unknown-openbsd6.9" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-O2 -pipe -g" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "-I/usr/local/include" CONFIGURE_LDFLAGS = "-L/usr/local/lib/" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--with-ensurepip=no' '--enable-loadable-sqlite-extensions' '--enable-shared' '--srcdir=/usr/obj/ports/Python-3.8.8/Python-3.8.8' '--with-fpectl' '--with-threads' '--enable-ipv6' '--with-system-expat' '--with-system-ffi' '--prefix=/usr/local' '--sysconfdir=/etc' '--mandir=/usr/local/man' '--infodir=/usr/local/info' '--localstatedir=/var' '--disable-silent-rules' '--disable-gtk-doc' 'CC=cc' 'CFLAGS=-O2 -pipe -g' 'LDFLAGS=-L/usr/local/lib/' 'CPPFLAGS=-I/usr/local/include'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/usr/obj/ports/Python-3.8.8/Python-3.8.8/coverage.info" COVERAGE_REPORT = "/usr/obj/ports/Python-3.8.8/Python-3.8.8/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include" CXX = "c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.8 /usr/local/lib/python3.8/lib-dynload" DESTLIB = "/usr/local/lib/python3.8" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-38.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "0" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "0" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "0" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "0" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "0" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "0" HAVE_POSIX_FALLOCATE = "0" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "0" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "0" HAVE_SCHED_SETSCHEDULER = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "0" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "0" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "0" HAVE_SIGTIMEDWAIT = "0" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "0" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "0" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "1" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "0" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "aarch64-unknown-openbsd6.9" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.8 /usr/local/include/python3.8" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.8" INSTALL = "/usr/obj/ports/Python-3.8.8/bin/install -c" INSTALL_DATA = "/usr/obj/ports/Python-3.8.8/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/obj/ports/Python-3.8.8/bin/install -c -m 755" INSTALL_SCRIPT = "/usr/obj/ports/Python-3.8.8/bin/install -c -m 755" INSTALL_SHARED = "/usr/obj/ports/Python-3.8.8/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.0.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared -fPIC" LDFLAGS = "-L/usr/local/lib/ -L/usr/obj/ports/Python-3.8.8/Python-3.8.8 -L/usr/local/lib/" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -fPIC -L/usr/local/lib/ -L/usr/obj/ports/Python-3.8.8/Python-3.8.8 -L/usr/local/lib/" LDVERSION = "3.8" LIBC = "" LIBDEST = "/usr/local/lib/python3.8" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/lib/pkgconfig" LIBPL = "/usr/local/lib/python3.8/config-3.8" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lintl -lpthread -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "openbsd6" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -O2 -pipe -g -fPIC" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib/ -L/usr/obj/ports/Python-3.8.8/Python-3.8.8 -L/usr/local/lib/" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib/ -L/usr/obj/ports/Python-3.8.8/Python-3.8.8 -L/usr/local/lib/" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/usr/obj/ports/Python-3.8.8/Python-3.8.8" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lintl -lpthread -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".cpython-38.so" SOABI = "cpython-38" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/usr/obj/ports/Python-3.8.8/Python-3.8.8 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/usr/obj/ports/Python-3.8.8/Python-3.8.8 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/usr/obj/ports/Python-3.8.8/Python-3.8.8" abs_srcdir = "/usr/obj/ports/Python-3.8.8/Python-3.8.8" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.8.8" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/local/lib/python3.8/config-3.8" userbase = "/root/.local" python-maturin_1.3.2.orig/sysconfig/cpython-openbsd-3.8.txt0000644000000000000000000005222614034252253020660 0ustar00Platform: "openbsd-6.8-amd64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.8" platinclude = "/usr/local/include/python3.8" platlib = "/usr/local/lib/python3.8/site-packages" platstdlib = "/usr/local/lib/python3.8" purelib = "/usr/local/lib/python3.8/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.8" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.8" BLDLIBRARY = "-L. -lpython3.8" BLDSHARED = "cc -pthread -shared -fPIC -L/usr/local/lib/ -L/build/tmp/pobj//Python-3.8.6/Python-3.8.6 -L/usr/local/lib/" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-unknown-openbsd6.8" BYTESTR_DEPS = "\" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-O2 -pipe -g" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "-I/usr/local/include" CONFIGURE_LDFLAGS = "-L/usr/local/lib/" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--with-ensurepip=no' '--enable-loadable-sqlite-extensions' '--enable-shared' '--srcdir=/build/tmp/pobj//Python-3.8.6/Python-3.8.6' '--with-fpectl' '--with-threads' '--enable-ipv6' '--with-system-expat' '--with-system-ffi' '--prefix=/usr/local' '--sysconfdir=/etc' '--mandir=/usr/local/man' '--infodir=/usr/local/info' '--localstatedir=/var' '--disable-silent-rules' '--disable-gtk-doc' 'CC=cc' 'CFLAGS=-O2 -pipe -g' 'LDFLAGS=-L/usr/local/lib/' 'CPPFLAGS=-I/usr/local/include'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.8" COREPYTHONPATH = "" COVERAGE_INFO = "/build/tmp/pobj/Python-3.8.6/Python-3.8.6/coverage.info" COVERAGE_REPORT = "/build/tmp/pobj/Python-3.8.6/Python-3.8.6/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include -I/usr/local/include" CXX = "c++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.8 /usr/local/lib/python3.8/lib-dynload" DESTLIB = "/usr/local/lib/python3.8" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.8/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "no" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "0" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "0" HAVE_DECL_RTLD_NOLOAD = "0" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "0" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "0" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "1" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "0" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "0" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "0" HAVE_POSIX_FALLOCATE = "0" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "0" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "0" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "0" HAVE_SCHED_SETSCHEDULER = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "0" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "0" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "0" HAVE_SIGTIMEDWAIT = "0" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "0" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "1" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "1" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "1" HAVE_STRUCT_STAT_ST_GEN = "1" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "1" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "1" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "1" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "1" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "0" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "1" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "1" HAVE_UUID_ENC_BE = "1" HAVE_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "0" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-unknown-openbsd6.8" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.8 /usr/local/include/python3.8" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.8" INSTALL = "/build/tmp/pobj//Python-3.8.6/bin/install -c" INSTALL_DATA = "/build/tmp/pobj//Python-3.8.6/bin/install -c -m 644" INSTALL_PROGRAM = "/build/tmp/pobj//Python-3.8.6/bin/install -c -m 755" INSTALL_SCRIPT = "/build/tmp/pobj//Python-3.8.6/bin/install -c -m 755" INSTALL_SHARED = "/build/tmp/pobj//Python-3.8.6/bin/install -c -m 755" INSTSONAME = "libpython3.8.so.0.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "c++ -pthread -shared -fPIC" LDFLAGS = "-L/usr/local/lib/ -L/build/tmp/pobj//Python-3.8.6/Python-3.8.6 -L/usr/local/lib/" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8.so" LDLIBRARYDIR = "" LDSHARED = "cc -pthread -shared -fPIC -L/usr/local/lib/ -L/build/tmp/pobj//Python-3.8.6/Python-3.8.6 -L/usr/local/lib/" LDVERSION = "3.8" LIBC = "" LIBDEST = "/usr/local/lib/python3.8" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "/usr/local/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/lib/pkgconfig" LIBPL = "/usr/local/lib/python3.8/config-3.8" LIBPYTHON = "" LIBRARY = "libpython3.8.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lintl -lpthread -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "cc -pthread" LINKFORSHARED = "-Wl,--export-dynamic" LIPO_32BIT_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "" LN = "ln" LOCALMODLIBS = "" MACHDEP = "openbsd6" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.8" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "cc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/man" MKDIR_P = "mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -O2 -pipe -g -fPIC" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "" PGO_PROF_USE_FLAG = "" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-L/usr/local/lib/ -L/build/tmp/pobj//Python-3.8.6/Python-3.8.6 -L/usr/local/lib/" PY_CPPFLAGS = "-I. -I./Include -I/usr/local/include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-L/usr/local/lib/ -L/build/tmp/pobj//Python-3.8.6/Python-3.8.6 -L/usr/local/lib/" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/build/tmp/pobj/Python-3.8.6/Python-3.8.6" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "1" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lintl -lpthread -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".so" SOABI = "cpython-38" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/build/tmp/pobj/Python-3.8.6/Python-3.8.6 ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/build/tmp/pobj/Python-3.8.6/Python-3.8.6 ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.8" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "1" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/build/tmp/pobj/Python-3.8.6/Python-3.8.6" abs_srcdir = "/build/tmp/pobj/Python-3.8.6/Python-3.8.6" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.8.6" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/local/lib/python3.8/config-3.8" userbase = "/root/.local"python-maturin_1.3.2.orig/sysconfig/cpython-wasi-3.12.txt0000644000000000000000000013541114264670030020244 0ustar00Platform: "wasi-0.0.0-wasm32" Python version: "3.12" Current installation scheme: "posix_prefix" Paths: data = "/root/code/python-wasi/opt/wasi-python" include = "/root/code/python-wasi/opt/wasi-python/include/python3.12" platinclude = "/root/code/python-wasi/opt/wasi-python/include/python3.12" platlib = "/root/code/python-wasi/opt/wasi-python/lib/python3.12/site-packages" platstdlib = "/root/code/python-wasi/opt/wasi-python/lib/python3.12" purelib = "/root/code/python-wasi/opt/wasi-python/lib/python3.12/site-packages" scripts = "/root/code/python-wasi/opt/wasi-python/bin" stdlib = "/root/code/python-wasi/opt/wasi-python/lib/python3.12" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALIGNOF_LONG = "4" ALIGNOF_SIZE_T = "4" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wsign-compare -Wunreachable-code" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/root/code/python-wasi/opt/wasi-python/bin" BINLIBDEST = "/root/code/python-wasi/opt/wasi-python/lib/python3.12" BLDLIBRARY = "libpython3.12.a" BLDSHARED = "" BOOTSTRAP_HEADERS = "\" BUILDEXE = ".wasm" BUILDPYTHON = "python.wasm" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BUILD_SCRIPTS_DIR = "build/scripts-3.12" BYTESTR_DEPS = "\" CC = "clang --target=wasm32-wasi" CCSHARED = "" CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" CFLAGSFORSHARED = "" CFLAGS_ALIASING = "-fno-strict-aliasing" CFLAGS_NODIST = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" CONFIGURE_CFLAGS_NODIST = "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "-g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" CONFIGURE_LDFLAGS = "" CONFIGURE_LDFLAGS_NODIST = "-z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760" CONFIGURE_LDFLAGS_NOLTO = "" CONFIG_ARGS = "'--host=wasm32-wasi' '--build=x86_64-pc-linux-gnu' '--with-build-python=/root/code/python-wasi/cpython/inst/3.12/bin/python3.12' '--with-ensurepip=no' '--disable-ipv6' '--enable-big-digits=30' '--with-suffix=.wasm' '--with-freeze-module=./build/Programs/_freeze_module' '--prefix=/root/code/python-wasi/opt/wasi-python' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=wasm32-wasi' 'CC=clang --target=wasm32-wasi' 'CFLAGS=-g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot' 'LIBS= -L/opt/lib -L/root/code/python-wasi/wasix -lwasix -L/opt/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi -lwasi-emulated-signal -L/root/code/python-wasi/docker/lib --sysroot=/opt/wasi-sdk/share/wasi-sysroot' 'CPPFLAGS=-g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot'" CONFINCLUDEDIR = "/root/code/python-wasi/opt/wasi-python/include" CONFINCLUDEPY = "/root/code/python-wasi/opt/wasi-python/include/python3.12" COREPYTHONPATH = "" COVERAGE_INFO = "/root/code/python-wasi/cpython/coverage.info" COVERAGE_LCOV_OPTIONS = "--rc lcov_branch_coverage=1" COVERAGE_REPORT = "/root/code/python-wasi/cpython/lcov-report" COVERAGE_REPORT_OPTIONS = "--rc lcov_branch_coverage=1 --branch-coverage --title "CPython 3.12 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]"" CPPFLAGS = "-I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" CXX = "c++" DEEPFREEZE_DEPS = "./Tools/scripts/deepfreeze.py ./Programs/_freeze_module.py \" DEEPFREEZE_OBJS = "Python/deepfreeze/deepfreeze.o" DESTDIRS = "/root/code/python-wasi/opt/wasi-python /root/code/python-wasi/opt/wasi-python/lib /root/code/python-wasi/opt/wasi-python/lib/python3.12 /root/code/python-wasi/opt/wasi-python/lib/python3.12/lib-dynload" DESTLIB = "/root/code/python-wasi/opt/wasi-python/lib/python3.12" DESTPATH = "" DESTSHARED = "/root/code/python-wasi/opt/wasi-python/lib/python3.12/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_stub.o" ENABLE_IPV6 = "0" ENSUREPIP = "no" EXE = ".wasm" EXEMODE = "755" EXENAME = "/root/code/python-wasi/opt/wasi-python/bin/python3.12.wasm" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cpython-312-wasm32-wasi.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FREEZE_MODULE = "/root/code/python-wasi/cpython/inst/3.12/bin/python3.12 ./Programs/_freeze_module.py" FREEZE_MODULE_BOOTSTRAP = "/root/code/python-wasi/cpython/inst/3.12/bin/python3.12 ./Programs/_freeze_module.py" FREEZE_MODULE_BOOTSTRAP_DEPS = "./Programs/_freeze_module.py" FREEZE_MODULE_DEPS = "./Programs/_freeze_module.py" FROZEN_FILES_IN = "\" FROZEN_FILES_OUT = "\" GETPGRP_HAVE_ARG = "0" GITBRANCH = "git --git-dir ./.git name-rev --name-only HEAD" GITTAG = "git --git-dir ./.git describe --all --always --dirty" GITVERSION = "git --git-dir ./.git rev-parse --short HEAD" GNULD = "no" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "0" HAVE_ALARM = "0" HAVE_ALIGNED_REQUIRED = "1" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "0" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "1" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_BZLIB_H = "1" HAVE_CHFLAGS = "0" HAVE_CHMOD = "1" HAVE_CHOWN = "1" HAVE_CHROOT = "0" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_NANOSLEEP = "1" HAVE_CLOCK_SETTIME = "0" HAVE_CLOSE_RANGE = "0" HAVE_COMPUTED_GOTOS = "0" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "0" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "0" HAVE_CURSES_H = "0" HAVE_CURSES_HAS_KEY = "0" HAVE_CURSES_IMMEDOK = "0" HAVE_CURSES_IS_PAD = "0" HAVE_CURSES_IS_TERM_RESIZED = "0" HAVE_CURSES_RESIZETERM = "0" HAVE_CURSES_RESIZE_TERM = "0" HAVE_CURSES_SYNCOK = "0" HAVE_CURSES_TYPEAHEAD = "0" HAVE_CURSES_USE_ENV = "0" HAVE_CURSES_WCHGAT = "0" HAVE_DB_H = "0" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "0" HAVE_DECL_RTLD_LAZY = "0" HAVE_DECL_RTLD_LOCAL = "0" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "0" HAVE_DECL_RTLD_NOLOAD = "0" HAVE_DECL_RTLD_NOW = "0" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "0" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "0" HAVE_DLOPEN = "0" HAVE_DUP2 = "0" HAVE_DUP3 = "0" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "0" HAVE_EDITLINE_READLINE_H = "0" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EVENTFD = "0" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "0" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "0" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "0" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FFI_CLOSURE_ALLOC = "0" HAVE_FFI_PREP_CIF_VAR = "0" HAVE_FFI_PREP_CLOSURE_LOC = "0" HAVE_FLOCK = "0" HAVE_FORK = "1" HAVE_FORK1 = "0" HAVE_FORKPTY = "0" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "0" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "0" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "0" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "0" HAVE_GCC_ASM_FOR_X87 = "0" HAVE_GCC_UINT128_T = "1" HAVE_GDBM_DASH_NDBM_H = "0" HAVE_GDBM_H = "0" HAVE_GDBM_NDBM_H = "0" HAVE_GETADDRINFO = "0" HAVE_GETC_UNLOCKED = "0" HAVE_GETEGID = "1" HAVE_GETENTROPY = "1" HAVE_GETEUID = "1" HAVE_GETGID = "1" HAVE_GETGRGID = "0" HAVE_GETGRGID_R = "0" HAVE_GETGRNAM_R = "0" HAVE_GETGROUPLIST = "0" HAVE_GETGROUPS = "0" HAVE_GETHOSTBYNAME = "1" HAVE_GETHOSTBYNAME_R = "0" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "0" HAVE_GETLOADAVG = "0" HAVE_GETLOGIN = "0" HAVE_GETNAMEINFO = "0" HAVE_GETPAGESIZE = "0" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "0" HAVE_GETPGRP = "0" HAVE_GETPID = "1" HAVE_GETPPID = "1" HAVE_GETPRIORITY = "0" HAVE_GETPWENT = "0" HAVE_GETPWNAM_R = "0" HAVE_GETPWUID = "1" HAVE_GETPWUID_R = "0" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "0" HAVE_GETRESUID = "0" HAVE_GETRUSAGE = "1" HAVE_GETSID = "0" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETUID = "1" HAVE_GETWD = "0" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "0" HAVE_HSTRERROR = "0" HAVE_HTOLE64 = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "0" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "0" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "0" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "1" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "0" HAVE_LIBB2 = "0" HAVE_LIBDB = "0" HAVE_LIBDL = "0" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "0" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBSQLITE3 = "1" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "0" HAVE_LINUX_AUXVEC_H = "0" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_FS_H = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_SOUNDCARD_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "0" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LOGIN_TTY = "0" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "0" HAVE_LZMA_H = "1" HAVE_MADVISE = "0" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMORY_H = "0" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "0" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "0" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "0" HAVE_MREMAP = "0" HAVE_NANOSLEEP = "1" HAVE_NCURSESW = "0" HAVE_NCURSES_H = "0" HAVE_NDBM_H = "0" HAVE_NDIR_H = "0" HAVE_NETCAN_CAN_H = "0" HAVE_NETINET_IN_H = "1" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "0" HAVE_NICE = "0" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "0" HAVE_OPENDIR = "1" HAVE_OPENPTY = "0" HAVE_PANEL_H = "0" HAVE_PATHCONF = "1" HAVE_PAUSE = "0" HAVE_PIPE = "1" HAVE_PIPE2 = "0" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "0" HAVE_POSIX_SPAWNP = "0" HAVE_PREAD = "1" HAVE_PREADV = "0" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "0" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "0" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "0" HAVE_PTHREAD_SIGMASK = "0" HAVE_PTY_H = "0" HAVE_PWRITE = "1" HAVE_PWRITEV = "0" HAVE_PWRITEV2 = "0" HAVE_READLINE_READLINE_H = "0" HAVE_READLINK = "1" HAVE_READLINKAT = "0" HAVE_READV = "1" HAVE_REALPATH = "0" HAVE_RENAMEAT = "0" HAVE_RL_APPEND_HISTORY = "0" HAVE_RL_CATCH_SIGNAL = "0" HAVE_RL_COMPLETION_APPEND_CHARACTER = "0" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "0" HAVE_RL_COMPLETION_MATCHES = "0" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "0" HAVE_RL_PRE_INPUT_HOOK = "0" HAVE_RL_RESIZE_TERMINAL = "0" HAVE_RPC_RPC_H = "0" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "0" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "0" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "0" HAVE_SCHED_SETSCHEDULER = "0" HAVE_SEM_CLOCKWAIT = "0" HAVE_SEM_GETVALUE = "0" HAVE_SEM_OPEN = "0" HAVE_SEM_TIMEDWAIT = "0" HAVE_SEM_UNLINK = "0" HAVE_SENDFILE = "0" HAVE_SETEGID = "0" HAVE_SETEUID = "0" HAVE_SETGID = "0" HAVE_SETGROUPS = "0" HAVE_SETHOSTNAME = "0" HAVE_SETITIMER = "0" HAVE_SETJMP_H = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "0" HAVE_SETPGRP = "0" HAVE_SETPRIORITY = "0" HAVE_SETREGID = "0" HAVE_SETRESGID = "0" HAVE_SETRESUID = "0" HAVE_SETREUID = "0" HAVE_SETSID = "0" HAVE_SETUID = "0" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "0" HAVE_SHM_UNLINK = "0" HAVE_SHUTDOWN = "0" HAVE_SIGACTION = "0" HAVE_SIGALTSTACK = "0" HAVE_SIGFILLSET = "0" HAVE_SIGINFO_T_SI_BAND = "0" HAVE_SIGINTERRUPT = "0" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "0" HAVE_SIGRELSE = "0" HAVE_SIGTIMEDWAIT = "0" HAVE_SIGWAIT = "0" HAVE_SIGWAITINFO = "0" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "0" HAVE_SPLICE = "0" HAVE_SSIZE_T = "1" HAVE_STATVFS = "0" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "1" HAVE_STROPTS_H = "1" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "0" HAVE_SYNC = "0" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYSLOG_H = "0" HAVE_SYSTEM = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_AUXV_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENTFD_H = "0" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "0" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "0" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "0" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_SOUNDCARD_H = "0" HAVE_SYS_STATVFS_H = "0" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "0" HAVE_TCSETPGRP = "0" HAVE_TEMPNAM = "0" HAVE_TERMIOS_H = "0" HAVE_TERM_H = "0" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "0" HAVE_TMPNAM = "0" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TTYNAME = "1" HAVE_TZNAME = "0" HAVE_UMASK = "1" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "0" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UTMP_H = "0" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "1" HAVE_UUID_UUID_H = "0" HAVE_VFORK = "0" HAVE_WAIT = "1" HAVE_WAIT3 = "0" HAVE_WAIT4 = "0" HAVE_WAITID = "0" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "0" HAVE_WRITEV = "1" HAVE_ZLIB_COPY = "1" HAVE_ZLIB_H = "1" HAVE__GETPTY = "0" HOSTRUNNER = "wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to /root/code/python-wasi/cpython /root/code/python-wasi/cpython)/$(shell cat pybuilddir.txt):/Lib --mapdir /::. --" HOST_GNU_TYPE = "wasm32-unknown-wasi" INCLDIRSTOMAKE = "/root/code/python-wasi/opt/wasi-python/include /root/code/python-wasi/opt/wasi-python/include /root/code/python-wasi/opt/wasi-python/include/python3.12 /root/code/python-wasi/opt/wasi-python/include/python3.12" INCLUDEDIR = "/root/code/python-wasi/opt/wasi-python/include" INCLUDEPY = "/root/code/python-wasi/opt/wasi-python/include/python3.12" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.12.a" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "" LDFLAGS = "" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.12.a" LDLIBRARYDIR = "" LDSHARED = "" LDVERSION = "3.12" LIBC = "" LIBDEST = "/root/code/python-wasi/opt/wasi-python/lib/python3.12" LIBDIR = "/root/code/python-wasi/opt/wasi-python/lib" LIBEXPAT_A = "Modules/expat/libexpat.a" LIBEXPAT_CFLAGS = "-I./Modules/expat -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" LIBEXPAT_HEADERS = "\" LIBEXPAT_OBJS = "\" LIBM = "-lm" LIBMPDEC_A = "Modules/_decimal/libmpdec/libmpdec.a" LIBMPDEC_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_32=1 -DANSI=1 -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" LIBMPDEC_HEADERS = "\" LIBMPDEC_OBJS = "\" LIBOBJDIR = "Python/" LIBOBJS = "Python/dup2$U.o" LIBPC = "/root/code/python-wasi/opt/wasi-python/lib/pkgconfig" LIBPL = "/root/code/python-wasi/opt/wasi-python/lib/python3.12/config-3.12-wasm32-wasi" LIBPYTHON = "" LIBRARY = "libpython3.12.a" LIBRARY_DEPS = "libpython3.12.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-L/opt/lib -L/root/code/python-wasi/wasix -lwasix -L/opt/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi -lwasi-emulated-signal -L/root/code/python-wasi/docker/lib --sysroot=/opt/wasi-sdk/share/wasi-sysroot -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks -lpthread" LIBSUBDIRS = "asyncio \" LINKCC = "clang --target=wasm32-wasi" LINKFORSHARED = "" LINK_PYTHON_DEPS = "libpython3.12.a" LINK_PYTHON_OBJS = "\" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "yes" LLVM_PROF_FILE = "LLVM_PROFILE_FILE="code-%p.profclangr"" LLVM_PROF_MERGER = "'' merge -output=code.profclangd *.profclangr" LN = "ln" LOCALMODLIBS = "-lm -lm -lm -lm -lm -lm Modules/_decimal/libmpdec/libmpdec.a -lz -lbz2 -llzma -lz -lm Modules/expat/libexpat.a -lsqlite3" MACHDEP = "wasi" MACHDEP_OBJS = "" MACHDESTLIB = "/root/code/python-wasi/opt/wasi-python/lib/python3.12" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "clang --target=wasm32-wasi" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "./Modules/makesetup" MANDIR = "/root/code/python-wasi/opt/wasi-python/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "array _asyncio _bisect _contextvars _csv _heapq _json _lsprof _opcode _pickle _queue _random _struct _typing _zoneinfo audioop math cmath _statistics _datetime _decimal binascii _bz2 _lzma zlib _md5 _sha1 _sha256 _sha512 _sha3 _blake2 pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata _crypt select _socket _sqlite3 xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi atexit faulthandler posix _signal _tracemalloc _codecs _collections errno _io itertools _sre _thread time _weakref _abc _functools _locale _operator _stat _symtable" MODDISABLED_NAMES = "" MODLIBS = "-lm -lm -lm -lm -lm -lm Modules/_decimal/libmpdec/libmpdec.a -lz -lbz2 -llzma -lz -lm Modules/expat/libexpat.a -lsqlite3" MODOBJS = "Modules/arraymodule.o Modules/_asynciomodule.o Modules/_bisectmodule.o Modules/_contextvarsmodule.o Modules/_csv.o Modules/_heapqmodule.o Modules/_json.o Modules/_lsprof.o Modules/rotatingtree.o Modules/_opcode.o Modules/_pickle.o Modules/_queuemodule.o Modules/_randommodule.o Modules/_struct.o Modules/_typingmodule.o Modules/_zoneinfo.o Modules/audioop.o Modules/mathmodule.o Modules/cmathmodule.o Modules/_statisticsmodule.o Modules/_datetimemodule.o Modules/_decimal/_decimal.o Modules/binascii.o Modules/_bz2module.o Modules/_lzmamodule.o Modules/zlibmodule.o Modules/md5module.o Modules/sha1module.o Modules/sha256module.o Modules/sha512module.o Modules/_sha3/sha3module.o Modules/_blake2/blake2module.o Modules/_blake2/blake2b_impl.o Modules/_blake2/blake2s_impl.o Modules/pyexpat.o Modules/_elementtree.o Modules/cjkcodecs/_codecs_cn.o Modules/cjkcodecs/_codecs_hk.o Modules/cjkcodecs/_codecs_iso2022.o Modules/cjkcodecs/_codecs_jp.o Modules/cjkcodecs/_codecs_kr.o Modules/cjkcodecs/_codecs_tw.o Modules/cjkcodecs/multibytecodec.o Modules/unicodedata.o Modules/_cryptmodule.o Modules/selectmodule.o Modules/socketmodule.o Modules/_sqlite/blob.o Modules/_sqlite/connection.o Modules/_sqlite/cursor.o Modules/_sqlite/microprotocols.o Modules/_sqlite/module.o Modules/_sqlite/prepare_protocol.o Modules/_sqlite/row.o Modules/_sqlite/statement.o Modules/_sqlite/util.o Modules/xxsubtype.o Modules/_xxtestfuzz/_xxtestfuzz.o Modules/_xxtestfuzz/fuzzer.o Modules/_testbuffer.o Modules/_testinternalcapi.o Modules/_testcapimodule.o Modules/_testcapi/vectorcall.o Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_threadmodule.o Modules/timemodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o" MODSHARED_NAMES = "" MODULE_ARRAY_LDFLAGS = "" MODULE_ARRAY_STATE = "yes" MODULE_ATEXIT_LDFLAGS = "" MODULE_AUDIOOP_LDFLAGS = "-lm" MODULE_AUDIOOP_STATE = "yes" MODULE_BINASCII_CFLAGS = "-DUSE_ZLIB_CRC32" MODULE_BINASCII_LDFLAGS = "-lz" MODULE_BINASCII_STATE = "yes" MODULE_CMATH_DEPS = "./Modules/_math.h" MODULE_CMATH_LDFLAGS = "-lm" MODULE_CMATH_STATE = "yes" MODULE_ERRNO_LDFLAGS = "" MODULE_FAULTHANDLER_LDFLAGS = "" MODULE_FCNTL_STATE = "n/a" MODULE_GRP_STATE = "n/a" MODULE_ITERTOOLS_LDFLAGS = "" MODULE_MATH_DEPS = "./Modules/_math.h" MODULE_MATH_LDFLAGS = "-lm" MODULE_MATH_STATE = "yes" MODULE_MMAP_STATE = "n/a" MODULE_NIS_STATE = "n/a" MODULE_OBJS = "\" MODULE_OSSAUDIODEV_STATE = "n/a" MODULE_POSIX_LDFLAGS = "" MODULE_PWD_STATE = "n/a" MODULE_PYEXPAT_CFLAGS = "-I./Modules/expat" MODULE_PYEXPAT_DEPS = "\ Modules/expat/libexpat.a" MODULE_PYEXPAT_LDFLAGS = "-lm Modules/expat/libexpat.a" MODULE_PYEXPAT_STATE = "yes" MODULE_READLINE_STATE = "missing" MODULE_RESOURCE_STATE = "n/a" MODULE_SELECT_LDFLAGS = "" MODULE_SELECT_STATE = "yes" MODULE_SPWD_STATE = "n/a" MODULE_SYSLOG_STATE = "n/a" MODULE_TERMIOS_STATE = "n/a" MODULE_TIME_LDFLAGS = "" MODULE_TIME_STATE = "yes" MODULE_UNICODEDATA_DEPS = "./Modules/unicodedata_db.h ./Modules/unicodename_db.h" MODULE_UNICODEDATA_LDFLAGS = "" MODULE_UNICODEDATA_STATE = "yes" MODULE_XXLIMITED_35_STATE = "missing" MODULE_XXLIMITED_STATE = "missing" MODULE_XXSUBTYPE_LDFLAGS = "" MODULE_XXSUBTYPE_STATE = "yes" MODULE_ZLIB_CFLAGS = "" MODULE_ZLIB_LDFLAGS = "-lz" MODULE_ZLIB_STATE = "yes" MODULE__ABC_LDFLAGS = "" MODULE__ASYNCIO_LDFLAGS = "" MODULE__ASYNCIO_STATE = "yes" MODULE__BISECT_LDFLAGS = "" MODULE__BISECT_STATE = "yes" MODULE__BLAKE2_CFLAGS = "" MODULE__BLAKE2_DEPS = "./Modules/_blake2/impl/blake2-config.h ./Modules/_blake2/impl/blake2-impl.h ./Modules/_blake2/impl/blake2.h ./Modules/_blake2/impl/blake2b-load-sse2.h ./Modules/_blake2/impl/blake2b-load-sse41.h ./Modules/_blake2/impl/blake2b-ref.c ./Modules/_blake2/impl/blake2b-round.h ./Modules/_blake2/impl/blake2b.c ./Modules/_blake2/impl/blake2s-load-sse2.h ./Modules/_blake2/impl/blake2s-load-sse41.h ./Modules/_blake2/impl/blake2s-load-xop.h ./Modules/_blake2/impl/blake2s-ref.c ./Modules/_blake2/impl/blake2s-round.h ./Modules/_blake2/impl/blake2s.c ./Modules/_blake2/blake2module.h ./Modules/hashlib.h" MODULE__BLAKE2_LDFLAGS = "" MODULE__BLAKE2_STATE = "yes" MODULE__BZ2_CFLAGS = "" MODULE__BZ2_LDFLAGS = "-lbz2" MODULE__BZ2_STATE = "yes" MODULE__CODECS_CN_LDFLAGS = "" MODULE__CODECS_CN_STATE = "yes" MODULE__CODECS_HK_LDFLAGS = "" MODULE__CODECS_HK_STATE = "yes" MODULE__CODECS_ISO2022_LDFLAGS = "" MODULE__CODECS_ISO2022_STATE = "yes" MODULE__CODECS_JP_LDFLAGS = "" MODULE__CODECS_JP_STATE = "yes" MODULE__CODECS_KR_LDFLAGS = "" MODULE__CODECS_KR_STATE = "yes" MODULE__CODECS_LDFLAGS = "" MODULE__CODECS_TW_LDFLAGS = "" MODULE__CODECS_TW_STATE = "yes" MODULE__COLLECTIONS_LDFLAGS = "" MODULE__CONTEXTVARS_LDFLAGS = "" MODULE__CONTEXTVARS_STATE = "yes" MODULE__CRYPT_CFLAGS = "" MODULE__CRYPT_LDFLAGS = "" MODULE__CRYPT_STATE = "yes" MODULE__CSV_LDFLAGS = "" MODULE__CSV_STATE = "yes" MODULE__CTYPES_DEPS = "./Modules/_ctypes/ctypes.h ./Modules/_ctypes/darwin/dlfcn.h" MODULE__CTYPES_MALLOC_CLOSURE = "" MODULE__CTYPES_STATE = "missing" MODULE__CTYPES_TEST_STATE = "n/a" MODULE__CURSES_PANEL_STATE = "n/a" MODULE__CURSES_STATE = "n/a" MODULE__DATETIME_LDFLAGS = "-lm" MODULE__DATETIME_STATE = "yes" MODULE__DBM_STATE = "n/a" MODULE__DECIMAL_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_32=1 -DANSI=1" MODULE__DECIMAL_DEPS = "./Modules/_decimal/docstrings.h \ Modules/_decimal/libmpdec/libmpdec.a" MODULE__DECIMAL_LDFLAGS = "-lm Modules/_decimal/libmpdec/libmpdec.a" MODULE__DECIMAL_STATE = "yes" MODULE__ELEMENTTREE_CFLAGS = "-I./Modules/expat" MODULE__ELEMENTTREE_DEPS = "./Modules/pyexpat.c \ Modules/expat/libexpat.a" MODULE__ELEMENTTREE_LDFLAGS = "" MODULE__ELEMENTTREE_STATE = "yes" MODULE__FUNCTOOLS_LDFLAGS = "" MODULE__GDBM_STATE = "n/a" MODULE__HASHLIB_DEPS = "./Modules/hashlib.h" MODULE__HASHLIB_STATE = "missing" MODULE__HEAPQ_LDFLAGS = "" MODULE__HEAPQ_STATE = "yes" MODULE__IO_CFLAGS = "-I./Modules/_io" MODULE__IO_DEPS = "./Modules/_io/_iomodule.h" MODULE__IO_LDFLAGS = "" MODULE__IO_STATE = "yes" MODULE__JSON_LDFLAGS = "" MODULE__JSON_STATE = "yes" MODULE__LOCALE_LDFLAGS = "" MODULE__LSPROF_LDFLAGS = "" MODULE__LSPROF_STATE = "yes" MODULE__LZMA_CFLAGS = "" MODULE__LZMA_LDFLAGS = "-llzma" MODULE__LZMA_STATE = "yes" MODULE__MD5_DEPS = "./Modules/hashlib.h" MODULE__MD5_LDFLAGS = "" MODULE__MD5_STATE = "yes" MODULE__MULTIBYTECODEC_LDFLAGS = "" MODULE__MULTIBYTECODEC_STATE = "yes" MODULE__MULTIPROCESSING_STATE = "n/a" MODULE__OPCODE_LDFLAGS = "" MODULE__OPCODE_STATE = "yes" MODULE__OPERATOR_LDFLAGS = "" MODULE__PICKLE_LDFLAGS = "" MODULE__PICKLE_STATE = "yes" MODULE__POSIXSHMEM_STATE = "n/a" MODULE__POSIXSUBPROCESS_STATE = "n/a" MODULE__QUEUE_LDFLAGS = "" MODULE__QUEUE_STATE = "yes" MODULE__RANDOM_LDFLAGS = "" MODULE__RANDOM_STATE = "yes" MODULE__SCPROXY_STATE = "n/a" MODULE__SHA1_DEPS = "./Modules/hashlib.h" MODULE__SHA1_LDFLAGS = "" MODULE__SHA1_STATE = "yes" MODULE__SHA256_DEPS = "./Modules/hashlib.h" MODULE__SHA256_LDFLAGS = "" MODULE__SHA256_STATE = "yes" MODULE__SHA3_DEPS = "./Modules/_sha3/sha3.c ./Modules/_sha3/sha3.h ./Modules/hashlib.h" MODULE__SHA3_LDFLAGS = "" MODULE__SHA3_STATE = "yes" MODULE__SHA512_DEPS = "./Modules/hashlib.h" MODULE__SHA512_LDFLAGS = "" MODULE__SHA512_STATE = "yes" MODULE__SIGNAL_LDFLAGS = "" MODULE__SOCKET_DEPS = "./Modules/socketmodule.h" MODULE__SOCKET_LDFLAGS = "" MODULE__SOCKET_STATE = "yes" MODULE__SQLITE3_CFLAGS = "-I./Modules/_sqlite" MODULE__SQLITE3_DEPS = "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h" MODULE__SQLITE3_LDFLAGS = "-lsqlite3" MODULE__SQLITE3_STATE = "yes" MODULE__SRE_LDFLAGS = "" MODULE__SSL_DEPS = "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data.h ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h" MODULE__SSL_STATE = "missing" MODULE__STATISTICS_LDFLAGS = "-lm" MODULE__STATISTICS_STATE = "yes" MODULE__STAT_LDFLAGS = "" MODULE__STRUCT_LDFLAGS = "" MODULE__STRUCT_STATE = "yes" MODULE__SYMTABLE_LDFLAGS = "" MODULE__TESTBUFFER_LDFLAGS = "" MODULE__TESTBUFFER_STATE = "yes" MODULE__TESTCAPI_DEPS = "./Modules/testcapi_long.h ./Modules/_testcapi/parts.h" MODULE__TESTCAPI_LDFLAGS = "" MODULE__TESTCAPI_STATE = "yes" MODULE__TESTIMPORTMULTIPLE_STATE = "missing" MODULE__TESTINTERNALCAPI_LDFLAGS = "" MODULE__TESTINTERNALCAPI_STATE = "yes" MODULE__TESTMULTIPHASE_STATE = "missing" MODULE__THREAD_LDFLAGS = "" MODULE__TKINTER_STATE = "n/a" MODULE__TRACEMALLOC_LDFLAGS = "" MODULE__TYPING_LDFLAGS = "" MODULE__TYPING_STATE = "yes" MODULE__UUID_STATE = "missing" MODULE__WEAKREF_LDFLAGS = "" MODULE__XXSUBINTERPRETERS_STATE = "n/a" MODULE__XXTESTFUZZ_LDFLAGS = "" MODULE__XXTESTFUZZ_STATE = "yes" MODULE__ZONEINFO_LDFLAGS = "" MODULE__ZONEINFO_STATE = "yes" MULTIARCH = "wasm32-wasi" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"wasm32-wasi\"" MVWDELCH_IS_EXPRESSION = "0" NO_AS_NEEDED = "" OBJECT_OBJS = "\" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-instr-generate" PGO_PROF_USE_FLAG = "-fprofile-instr-use=code.profclangd" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo --timeout=1200" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "0" PURIFY = "" PY3LIBRARY = "" PYLONG_BITS_IN_DIGIT = "30" PYTHON = "python.wasm" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "_PYTHON_HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to /root/code/python-wasi/cpython /root/code/python-wasi/cpython)/$(shell cat pybuilddir.txt):/Lib --mapdir /::. --' _PYTHON_PROJECT_BASE=/root/code/python-wasi/cpython _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo /root/code/python-wasi/cpython/`cat pybuilddir.txt`:)./Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__wasi_wasm32-wasi /root/code/python-wasi/cpython/inst/3.12/bin/python3.12" PYTHON_FOR_BUILD_DEPS = "" PYTHON_FOR_FREEZE = "/root/code/python-wasi/cpython/inst/3.12/bin/python3.12" PYTHON_FOR_REGEN = "" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" PY_CFLAGS_NODIST = "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760" PY_CPPFLAGS = "-I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" PY_ENABLE_SHARED = "0" PY_LDFLAGS = "" PY_LDFLAGS_NODIST = "-z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760" PY_LDFLAGS_NOLTO = "" PY_SQLITE_ENABLE_LOAD_EXTENSION = "0" PY_SQLITE_HAVE_SERIALIZE = "1" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot -g -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -I/opt/include -I/root/code/python-wasi/wasix/include -isystem /root/code/python-wasi/wasix/include -I/opt/wasi-sdk/share/wasi-sysroot/include -I/root/code/python-wasi/docker/include --sysroot=/opt/wasi-sdk/share/wasi-sysroot" PY_SUPPORT_TIER = "0" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" Py_HASH_ALGORITHM = "0" Py_STATS = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "wasm32-wasi-readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "" SCRIPTDIR = "/root/code/python-wasi/opt/wasi-python/lib" SCRIPT_2TO3 = "build/scripts-3.12/2to3-3.12" SCRIPT_IDLE = "build/scripts-3.12/idle3.12" SCRIPT_PYDOC = "build/scripts-3.12/pydoc3.12" SETPGRP_HAVE_ARG = "0" SHELL = "/bin/sh" SHLIBS = "-L/opt/lib -L/root/code/python-wasi/wasix -lwasix -L/opt/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi -lwasi-emulated-signal -L/root/code/python-wasi/docker/lib --sysroot=/opt/wasi-sdk/share/wasi-sysroot -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks -lpthread" SHLIB_SUFFIX = ".so" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "4" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "4" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "4" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "4" SIZEOF_VOID_P = "4" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SOABI = "cpython-312-wasm32-wasi" SRCDIRS = "Modules Modules/_blake2 Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_io Modules/_multiprocessing Modules/_sha3 Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_xxtestfuzz Modules/cjkcodecs Modules/expat Objects Parser Programs Python Python/frozen_modules Python/deepfreeze" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STATIC_LIBPYTHON = "1" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "_PYTHON_HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to /root/code/python-wasi/cpython /root/code/python-wasi/cpython)/$(shell cat pybuilddir.txt):/Lib --mapdir /::. --' _PYTHON_PROJECT_BASE=/root/code/python-wasi/cpython _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo /root/code/python-wasi/cpython/`cat pybuilddir.txt`:)./Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__wasi_wasm32-wasi /root/code/python-wasi/cpython/inst/3.12/bin/python3.12" TESTPYTHONOPTS = "" TESTRUNNER = "_PYTHON_HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to /root/code/python-wasi/cpython /root/code/python-wasi/cpython)/$(shell cat pybuilddir.txt):/Lib --mapdir /::. --' _PYTHON_PROJECT_BASE=/root/code/python-wasi/cpython _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo /root/code/python-wasi/cpython/`cat pybuilddir.txt`:)./Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__wasi_wasm32-wasi /root/code/python-wasi/cpython/inst/3.12/bin/python3.12 ./Tools/scripts/run_tests.py" TESTSUBDIRS = "distutils/tests \" TESTTIMEOUT = "1200" TEST_MODULES = "yes" THREAD_STACK_SIZE = "0" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.12" WASM_ASSETS_DIR = "./root/code/python-wasi/opt/wasi-python" WASM_STDLIB = "./root/code/python-wasi/opt/wasi-python/lib/python3.12/os.py" WHEEL_PKG_DIR = "" WINDOW_HAS_FLAGS = "0" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_EDITLINE = "0" WITH_FREELISTS = "1" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "0" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/root/code/python-wasi/cpython" abs_srcdir = "/root/code/python-wasi/cpython" base = "/root/code/python-wasi/opt/wasi-python" datarootdir = "/root/code/python-wasi/opt/wasi-python/share" exec_prefix = "/root/code/python-wasi/opt/wasi-python" installed_base = "/root/code/python-wasi/opt/wasi-python" installed_platbase = "/root/code/python-wasi/opt/wasi-python" platbase = "/root/code/python-wasi/opt/wasi-python" platlibdir = "lib" prefix = "/root/code/python-wasi/opt/wasi-python" projectbase = "/" py_version = "3.12.0a0" py_version_nodot = "312" py_version_nodot_plat = "" py_version_short = "3.12" srcdir = "/root/code/python-wasi/opt/wasi-python/lib/python3.12/config-3.12-wasm32-wasi"python-maturin_1.3.2.orig/sysconfig/cpython-win-3.7.txt0000644000000000000000000000355213447146220020023 0ustar00Platform: "win-amd64" Python version: "3.7" Current installation scheme: "nt" Paths: data = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" include = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Include" platinclude = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Include" platlib = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Lib\site-packages" platstdlib = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Lib" purelib = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Lib\site-packages" scripts = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Scripts" stdlib = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Lib" Variables: BINDIR = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" BINLIBDEST = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Lib" EXE = ".exe" EXT_SUFFIX = ".pyd" INCLUDEPY = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Include" LIBDEST = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37\Lib" SO = ".pyd" VERSION = "37" abiflags = "" base = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" exec_prefix = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" installed_base = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" installed_platbase = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" platbase = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" prefix = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" projectbase = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" py_version = "3.7.0" py_version_nodot = "37" py_version_short = "3.7" srcdir = "C:\Users\Konstantin\AppData\Local\Programs\Python\Python37" userbase = "C:\Users\Konstantin\AppData\Roaming\Python" python-maturin_1.3.2.orig/sysconfig/cpython-win-3.9-aarch64.txt0000644000000000000000000000316014044742334021250 0ustar00Platform: "win-arm64" Python version: "3.9" Current installation scheme: "nt" Paths: data = "C:\Program Files (Arm)\Python-3.9.1" include = "C:\Program Files (Arm)\Python-3.9.1\Include" platinclude = "C:\Program Files (Arm)\Python-3.9.1\Include" platlib = "C:\Program Files (Arm)\Python-3.9.1\Lib\site-packages" platstdlib = "C:\Program Files (Arm)\Python-3.9.1\Lib" purelib = "C:\Program Files (Arm)\Python-3.9.1\Lib\site-packages" scripts = "C:\Program Files (Arm)\Python-3.9.1\Scripts" stdlib = "C:\Program Files (Arm)\Python-3.9.1\Lib" Variables: BINDIR = "C:\Program Files (Arm)\Python-3.9.1" BINLIBDEST = "C:\Program Files (Arm)\Python-3.9.1\Lib" EXE = ".exe" EXT_SUFFIX = ".pyd" INCLUDEPY = "C:\Program Files (Arm)\Python-3.9.1\Include" LIBDEST = "C:\Program Files (Arm)\Python-3.9.1\Lib" SO = ".pyd" TZPATH = "" VERSION = "39" abiflags = "" base = "C:\Program Files (Arm)\Python-3.9.1" exec_prefix = "C:\Program Files (Arm)\Python-3.9.1" installed_base = "C:\Program Files (Arm)\Python-3.9.1" installed_platbase = "C:\Program Files (Arm)\Python-3.9.1" platbase = "C:\Program Files (Arm)\Python-3.9.1" platlibdir = "lib" prefix = "C:\Program Files (Arm)\Python-3.9.1" projectbase = "C:\Program Files (Arm)\Python-3.9.1" py_version = "3.9.1" py_version_nodot = "39" py_version_short = "3.9" srcdir = "C:\Program Files (Arm)\Python-3.9.1" userbase = "C:\Users\messense\AppData\Roaming\Python" python-maturin_1.3.2.orig/sysconfig/cpython-win-mingw64-3.9.txt0000644000000000000000000007262714144472740021333 0ustar00Platform: "mingw_x86_64" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "C:/msys64/mingw64" include = "C:/msys64/mingw64/include/python3.9" platinclude = "C:/msys64/mingw64/include/python3.9" platlib = "C:/msys64/mingw64/lib/python3.9/site-packages" platstdlib = "C:/msys64/mingw64/lib/python3.9" purelib = "C:/msys64/mingw64/lib/python3.9/site-packages" scripts = "C:/msys64/mingw64/bin" stdlib = "C:/msys64/mingw64/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "-IObjects -IInclude -IPython" BASEMODLIBS = "" BINDIR = "C:/msys64/mingw64/bin" BINLIBDEST = "C:/msys64/mingw64/lib/python3.9" BLDLIBRARY = "-L. -lpython3.9" BLDSHARED = "gcc -shared -Wl,--enable-auto-image-base -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" BUILDEXE = ".exe" BUILDPYTHON = "python.exe" BUILDPYTHONW = "pythonw.exe" BUILDVENVLAUNCHER = "venvlauncher.exe" BUILDVENVWLAUNCHER = "venvwlauncher.exe" BUILD_GNU_TYPE = "x86_64-w64-mingw32" BYTESTR_DEPS = "\" CC = "gcc" CCSHARED = "" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O2 -pipe -march=x86-64 -mtune=generic -O2 -pipe" CFLAGSFORSHARED = "" CFLAGS_ALIASING = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-march=x86-64 -mtune=generic -O2 -pipe" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -D_WIN32_WINNT=0x0601 -DMS_DLL_ID='"3.9"'" CONFIGURE_CPPFLAGS = "-I../Python-3.9.7/PC -D__USE_MINGW_ANSI_STDIO=1 -I." CONFIGURE_LDFLAGS = "-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--prefix=/mingw64' '--host=x86_64-w64-mingw32' '--build=x86_64-w64-mingw32' '--enable-shared' '--with-system-expat' '--with-system-ffi' '--with-system-libmpdec' '--without-ensurepip' '--without-c-locale-coercion' '--enable-loadable-sqlite-extensions' '--with-tzpath=/mingw64/share/zoneinfo' '--enable-optimizations' 'build_alias=x86_64-w64-mingw32' 'host_alias=x86_64-w64-mingw32' 'CC=gcc' 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe' 'LDFLAGS=-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high' 'CPPFLAGS=-D__USE_MINGW_ANSI_STDIO=1' 'PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig'" CONFINCLUDEDIR = "C:/msys64/mingw64/include" CONFINCLUDEPY = "C:/msys64/mingw64/include/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/c/M/mingw-w64-python/src/build-x86_64/coverage.info" COVERAGE_REPORT = "/c/M/mingw-w64-python/src/build-x86_64/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../Python-3.9.7/Include -I../Python-3.9.7/PC -D__USE_MINGW_ANSI_STDIO=1 -I. -D__USE_MINGW_ANSI_STDIO=1" CXX = "g++" DESTDIR = "" DESTDIRFINAL = "/" DESTDIRS = "C:/msys64/mingw64 C:/msys64/mingw64/lib C:/msys64/mingw64/lib/python3.9 C:/msys64/mingw64/lib/python3.9/lib-dynload" DESTLIB = "C:/msys64/mingw64/lib/python3.9" DESTPATH = "" DESTSHARED = "C:/msys64/mingw64/lib/python3.9/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "libpython3.9.dll" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_win.o" ENABLE_IPV6 = "0" ENSUREPIP = "no" EXE = ".exe" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".cp39-mingw_x86_64.pyd" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "0" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "0" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "0" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "0" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "0" HAVE_BLUETOOTH_BLUETOOTH_H = "0" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "0" HAVE_CHROOT = "0" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "0" HAVE_CLOCK_GETTIME = "0" HAVE_CLOCK_SETTIME = "0" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "0" HAVE_CONIO_H = "1" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "0" HAVE_CRYPT_H = "0" HAVE_CRYPT_R = "0" HAVE_CTERMID = "0" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "0" HAVE_DECL_RTLD_GLOBAL = "0" HAVE_DECL_RTLD_LAZY = "0" HAVE_DECL_RTLD_LOCAL = "0" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "0" HAVE_DECL_RTLD_NOLOAD = "0" HAVE_DECL_RTLD_NOW = "0" HAVE_DECL_TZNAME = "1" HAVE_DEVICE_MACROS = "0" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "0" HAVE_DIRECT_H = "1" HAVE_DIRENT_D_TYPE = "0" HAVE_DIRENT_H = "1" HAVE_DIRFD = "0" HAVE_DLFCN_H = "0" HAVE_DLOPEN = "0" HAVE_DUP2 = "1" HAVE_DUP3 = "0" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "0" HAVE_EPOLL = "0" HAVE_EPOLL_CREATE1 = "0" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "0" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "0" HAVE_FCHDIR = "0" HAVE_FCHMOD = "0" HAVE_FCHMODAT = "0" HAVE_FCHOWN = "0" HAVE_FCHOWNAT = "0" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "0" HAVE_FDOPENDIR = "0" HAVE_FDWALK = "0" HAVE_FEXECVE = "0" HAVE_FINITE = "1" HAVE_FLOCK = "0" HAVE_FORK = "0" HAVE_FORKPTY = "0" HAVE_FPATHCONF = "0" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "0" HAVE_FSTATVFS = "0" HAVE_FSYNC = "0" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "0" HAVE_FUTIMENS = "0" HAVE_FUTIMES = "0" HAVE_FUTIMESAT = "0" HAVE_GAI_STRERROR = "0" HAVE_GAMMA = "0" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "0" HAVE_GETC_UNLOCKED = "0" HAVE_GETENTROPY = "0" HAVE_GETGRGID_R = "0" HAVE_GETGRNAM_R = "0" HAVE_GETGROUPLIST = "0" HAVE_GETGROUPS = "0" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "0" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "0" HAVE_GETITIMER = "0" HAVE_GETLOADAVG = "0" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "0" HAVE_GETPAGESIZE = "0" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "0" HAVE_GETPGRP = "0" HAVE_GETPID = "1" HAVE_GETPRIORITY = "0" HAVE_GETPWENT = "0" HAVE_GETPWNAM_R = "0" HAVE_GETPWUID_R = "0" HAVE_GETRANDOM = "0" HAVE_GETRANDOM_SYSCALL = "0" HAVE_GETRESGID = "0" HAVE_GETRESUID = "0" HAVE_GETSID = "0" HAVE_GETSPENT = "0" HAVE_GETSPNAM = "0" HAVE_GETWD = "0" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "0" HAVE_HSTRERROR = "0" HAVE_HTOLE64 = "0" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "1" HAVE_IF_NAMEINDEX = "0" HAVE_INET_ATON = "0" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "0" HAVE_INTTYPES_H = "1" HAVE_IO_H = "1" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "0" HAVE_KILLPG = "0" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "0" HAVE_LARGEFILE_SUPPORT = "1" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "0" HAVE_LGAMMA = "1" HAVE_LIBDL = "0" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "0" HAVE_LINKAT = "0" HAVE_LINUX_CAN_BCM_H = "0" HAVE_LINUX_CAN_H = "0" HAVE_LINUX_CAN_J1939_H = "0" HAVE_LINUX_CAN_RAW_FD_FRAMES = "0" HAVE_LINUX_CAN_RAW_H = "0" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0" HAVE_LINUX_MEMFD_H = "0" HAVE_LINUX_NETLINK_H = "0" HAVE_LINUX_QRTR_H = "0" HAVE_LINUX_RANDOM_H = "0" HAVE_LINUX_TIPC_H = "0" HAVE_LINUX_VM_SOCKETS_H = "0" HAVE_LINUX_WAIT_H = "0" HAVE_LOCKF = "0" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "0" HAVE_LUTIMES = "0" HAVE_MADVISE = "0" HAVE_MAKEDEV = "0" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "0" HAVE_MEMRCHR = "0" HAVE_MINIX_CONFIG_H = "0" HAVE_MKDIRAT = "0" HAVE_MKFIFO = "0" HAVE_MKFIFOAT = "0" HAVE_MKNOD = "0" HAVE_MKNODAT = "0" HAVE_MKTIME = "1" HAVE_MMAP = "0" HAVE_MREMAP = "0" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "0" HAVE_NET_IF_H = "0" HAVE_NICE = "0" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "0" HAVE_OPENPTY = "0" HAVE_PATHCONF = "0" HAVE_PAUSE = "0" HAVE_PIPE2 = "0" HAVE_PLOCK = "0" HAVE_POLL = "0" HAVE_POLL_H = "0" HAVE_POSIX_FADVISE = "0" HAVE_POSIX_FALLOCATE = "0" HAVE_POSIX_SPAWN = "0" HAVE_POSIX_SPAWNP = "0" HAVE_PREAD = "0" HAVE_PREADV = "0" HAVE_PREADV2 = "0" HAVE_PRLIMIT = "0" HAVE_PROCESS_H = "1" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "0" HAVE_PTHREAD_H = "0" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "0" HAVE_PTHREAD_SIGMASK = "0" HAVE_PTY_H = "0" HAVE_PWRITE = "0" HAVE_PWRITEV = "0" HAVE_PWRITEV2 = "0" HAVE_READLINK = "0" HAVE_READLINKAT = "0" HAVE_READV = "0" HAVE_REALPATH = "0" HAVE_RENAMEAT = "0" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "0" HAVE_SCHED_RR_GET_INTERVAL = "0" HAVE_SCHED_SETAFFINITY = "0" HAVE_SCHED_SETPARAM = "0" HAVE_SCHED_SETSCHEDULER = "0" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "0" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "0" HAVE_SETEGID = "0" HAVE_SETEUID = "0" HAVE_SETGID = "0" HAVE_SETGROUPS = "0" HAVE_SETHOSTNAME = "0" HAVE_SETITIMER = "0" HAVE_SETLOCALE = "1" HAVE_SETPGID = "0" HAVE_SETPGRP = "0" HAVE_SETPRIORITY = "0" HAVE_SETREGID = "0" HAVE_SETRESGID = "0" HAVE_SETRESUID = "0" HAVE_SETREUID = "0" HAVE_SETSID = "0" HAVE_SETUID = "0" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "0" HAVE_SHM_OPEN = "0" HAVE_SHM_UNLINK = "0" HAVE_SIGACTION = "0" HAVE_SIGALTSTACK = "0" HAVE_SIGFILLSET = "0" HAVE_SIGINFO_T_SI_BAND = "0" HAVE_SIGINTERRUPT = "0" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "0" HAVE_SIGRELSE = "0" HAVE_SIGTIMEDWAIT = "0" HAVE_SIGWAIT = "0" HAVE_SIGWAITINFO = "0" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "0" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "0" HAVE_SPAWN_H = "0" HAVE_SSIZE_T = "1" HAVE_STATVFS = "0" HAVE_STAT_TV_NSEC = "0" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDIO_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "0" HAVE_STRUCT_PASSWD_PW_GECOS = "0" HAVE_STRUCT_PASSWD_PW_PASSWD = "0" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "0" HAVE_STRUCT_STAT_ST_BLOCKS = "0" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "0" HAVE_SYMLINK = "0" HAVE_SYMLINKAT = "0" HAVE_SYNC = "0" HAVE_SYSCONF = "0" HAVE_SYSEXITS_H = "0" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "0" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "0" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "0" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "0" HAVE_SYS_RANDOM_H = "0" HAVE_SYS_RESOURCE_H = "0" HAVE_SYS_SELECT_H = "0" HAVE_SYS_SENDFILE_H = "0" HAVE_SYS_SOCKET_H = "0" HAVE_SYS_STATVFS_H = "0" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "0" HAVE_SYS_SYSMACROS_H = "0" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "0" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "0" HAVE_SYS_UN_H = "0" HAVE_SYS_UTSNAME_H = "0" HAVE_SYS_WAIT_H = "0" HAVE_SYS_XATTR_H = "0" HAVE_TCGETPGRP = "0" HAVE_TCSETPGRP = "0" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "0" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_THREAD_H = "0" HAVE_TIMEGM = "0" HAVE_TIMES = "0" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "0" HAVE_TM_ZONE = "0" HAVE_TRUNCATE = "0" HAVE_TZNAME = "1" HAVE_UCS4_TCL = "0" HAVE_UNAME = "0" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "0" HAVE_USABLE_WCHAR_T = "1" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "0" HAVE_UTIMES = "0" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "0" HAVE_WAIT4 = "0" HAVE_WAITID = "0" HAVE_WAITPID = "0" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "0" HAVE_WRITEV = "0" HAVE_WS2TCPIP_H = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-w64-mingw32" INCLDIRSTOMAKE = "C:/msys64/mingw64/include C:/msys64/mingw64/include C:/msys64/mingw64/include/python3.9 C:/msys64/mingw64/include/python3.9" INCLUDEDIR = "C:/msys64/mingw64/include" INCLUDEPY = "C:/msys64/mingw64/include/python3.9" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.9.dll.a" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -shared -Wl,--enable-auto-image-base" LDFLAGS = "-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.9.dll.a" LDLIBRARYDIR = "" LDSHARED = "gcc -shared -Wl,--enable-auto-image-base -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" LDVERSION = "3.9" LIBC = "" LIBDEST = "C:/msys64/mingw64/lib/python3.9" LIBDIR = "C:/msys64/mingw64/lib" LIBFFI_INCLUDEDIR = "C:/a/msys64/mingw64/include" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "C:/msys64/mingw64/lib/pkgconfig" LIBPL = "C:/msys64/mingw64/lib/python3.9/config-3.9" LIBPYTHON = "-lpython3.9" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lm -lversion -lshlwapi" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc" LINKFORSHARED = "-Wl,--stack,2000000" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "-lws2_32" MACHDEP = "win32" MACHDEP_OBJS = "PC/dl_nt.o" MACHDESTLIB = "C:/msys64/mingw64/lib/python3.9" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "../Python-3.9.7/Modules/makesetup" MANDIR = "C:/msys64/mingw64/share/man" MKDIR_P = "/usr/bin/mkdir -p" MODBUILT_NAMES = "nt winreg msvcrt _winapi errno _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "-lws2_32" MODOBJS = "Modules/posixmodule.o Modules/winreg.o Modules/msvcrtmodule.o Modules/_winapi.o Modules/errnomodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/winconsoleio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "" MULTIARCH_CPPFLAGS = "" MVWDELCH_IS_EXPRESSION = "1" NCURSESW_INCLUDEDIR = "C:/a/msys64/mingw64/include/ncursesw" NO_AS_NEEDED = "-Wl,--no-as-needed" NT_THREADS = "1" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "-IC:/a/msys64/mingw64/include" OPENSSL_LDFLAGS = "-LC:/a/msys64/mingw64/lib" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "1" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "0" PTHREAD_SYSTEM_SCHED_SUPPORTED = "0" PURIFY = "" PY3LIBRARY = "" PYD_PLATFORM_TAG = "mingw_x86_64" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python.exe" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python.exe -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O2 -pipe -march=x86-64 -mtune=generic -O2 -pipe -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -D_WIN32_WINNT=0x0601 -DMS_DLL_ID='"3.9"' -fprofile-use -fprofile-correction -I../Python-3.9.7/Include/internal -IObjects -IInclude -IPython -I. -I../Python-3.9.7/Include -I../Python-3.9.7/PC -D__USE_MINGW_ANSI_STDIO=1 -I. -D__USE_MINGW_ANSI_STDIO=1 -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O2 -pipe -march=x86-64 -mtune=generic -O2 -pipe" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -D_WIN32_WINNT=0x0601 -DMS_DLL_ID='"3.9"' -fprofile-use -fprofile-correction -I../Python-3.9.7/Include/internal" PY_COERCE_C_LOCALE = "0" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O2 -pipe -march=x86-64 -mtune=generic -O2 -pipe -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -D_WIN32_WINNT=0x0601 -DMS_DLL_ID='"3.9"' -fprofile-use -fprofile-correction -I../Python-3.9.7/Include/internal -IObjects -IInclude -IPython -I. -I../Python-3.9.7/Include -I../Python-3.9.7/PC -D__USE_MINGW_ANSI_STDIO=1 -I. -D__USE_MINGW_ANSI_STDIO=1 -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" PY_CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../Python-3.9.7/Include -I../Python-3.9.7/PC -D__USE_MINGW_ANSI_STDIO=1 -I. -D__USE_MINGW_ANSI_STDIO=1" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O2 -pipe -march=x86-64 -mtune=generic -O2 -pipe -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -D_WIN32_WINNT=0x0601 -DMS_DLL_ID='"3.9"' -fprofile-use -fprofile-correction -I../Python-3.9.7/Include/internal -IObjects -IInclude -IPython -I. -I../Python-3.9.7/Include -I../Python-3.9.7/PC -D__USE_MINGW_ANSI_STDIO=1 -I. -D__USE_MINGW_ANSI_STDIO=1" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" RCFLAGS = "-DFIELD3=7150 -O COFF --target=pe-x86-64" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "" SCRIPTDIR = "C:/msys64/mingw64/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lm -lversion -lshlwapi" SHLIB_SUFFIX = ".pyd" SHM_NEEDS_LIBRT = "0" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "8" SIZEOF_INT = "4" SIZEOF_LONG = "4" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "8" SIZEOF_PTHREAD_KEY_T = "0" SIZEOF_PTHREAD_T = "0" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "2" SIZEOF__BOOL = "1" SO = ".cp39-mingw_x86_64.pyd" SOABI = "cpython-39" SRCDIRS = "Parser Parser/pegen Objects Python Modules Modules/_io Programs PC" SRC_GDB_HOOKS = "../Python-3.9.7/Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "0" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "./python.exe" TESTPYTHONOPTS = "" TESTRUNNER = "./python.exe ../Python-3.9.7/Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "C:/msys64/mingw64/share/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.9 ../Python-3.9.7/Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VENVLAUNCHERDIR = "/mingw64/lib/python3.9/venv/scripts/nt" VERSION = "3.9" VPATH = "C:/M/mingw-w64-python/src/Python-3.9.7" VPATH_b2h = "C:/M/mingw-w64-python/src/Python-3.9.7" WINDOW_HAS_FLAGS = "1" WINDRES = "windres" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "C:/M/mingw-w64-python/src/build-x86_64" abs_builddir_b2h = "C:/M/mingw-w64-python/src/build-x86_64" abs_srcdir = "C:/M/mingw-w64-python/src/Python-3.9.7" abs_srcdir_b2h = "C:/M/mingw-w64-python/src/Python-3.9.7" base = "C:/msys64/mingw64" datarootdir = "C:/msys64/mingw64/share" exec_prefix = "C:/msys64/mingw64" installed_base = "C:/msys64/mingw64" installed_platbase = "C:/msys64/mingw64" platbase = "C:/msys64/mingw64" platlibdir = "lib" prefix = "C:/a/msys64/mingw64" prefix_b2h = "C:/a/msys64/mingw64" projectbase = "C:/msys64/mingw64/bin" py_version = "3.9.7" py_version_nodot = "39" py_version_short = "3.9" srcdir = "C:/msys64/mingw64/lib/python3.9/config-3.9" srcdir_b2h = "C:/M/mingw-w64-python/src/Python-3.9.7" userbase = "C:/Users/user/.local" python-maturin_1.3.2.orig/sysconfig/graalpy-macos-3.8-arm64.txt0000644000000000000000000001031314404735067021233 0ustar00Platform: "darwin-22.3.0-arm64" Python version: "3.8" Current installation scheme: "graalpy" Paths: data = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" include = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/include" platinclude = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/include" platlib = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/lib/python3.8/site-packages" platstdlib = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/lib-python/3" purelib = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/lib/python3.8/site-packages" scripts = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/bin" stdlib = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/lib-python/3" Variables: ABIFLAGS = "" AR = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/ar" ARFLAGS = "rc" CC = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/graalvm-native-clang" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-command-line-argument -stdlib=libc++ -DNDEBUG -DGRAALVM_PYTHON_LLVM -D_GNU_SOURCE=1" CFLAGS_DEFAULT = "-Wno-unused-command-line-argument -stdlib=libc++ -DNDEBUG -DGRAALVM_PYTHON_LLVM" CONFINCLUDEPY = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/include" CPPFLAGS = "-I. -I/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/include" CXX = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/graalvm-native-clang++" EXE = "" EXT_SUFFIX = ".graalpy-38-native-aarch64-darwin.dylib" INCLUDEPY = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/include" LD = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/graalvm-native-ld" LDFLAGS = "-bundle -undefined dynamic_lookup" LDLIBRARY = "libpython.graalpy-38-native-aarch64-darwin.dylib" LDSHARED = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/graalvm-native-clang -bundle -undefined dynamic_lookup" LDSHARED_LINUX = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/graalvm-native-clang -shared -fPIC" LIBDIR = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/lib-graalpython" MULTIARCH = "aarch64-darwin" NM = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/nm" OPT = "-stdlib=libc++ -DNDEBUG" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" Py_HASH_ALGORITHM = "0" RANLIB = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/llvm/native/bin/ranlib" SHLIB_SUFFIX = ".dylib" SO = ".graalpy-38-native-aarch64-darwin.dylib" SOABI = "graalpy-38-native-aarch64-darwin" USE_GNU_SOURCE = "-D_GNU_SOURCE=1" VERSION = "3.8" abiflags = "" base = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" exec_prefix = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" installed_base = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" installed_platbase = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" platbase = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" prefix = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python" projectbase = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/bin" py_version = "3.8.5" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/Library/Java/JavaVirtualMachines/graalvm-ce-java19-22.3.1/Contents/Home/languages/python/lib-python/3/config-3.8-aarch64-darwin" userbase = "/Users/messense/.local"python-maturin_1.3.2.orig/sysconfig/nogil-linux-3.9.txt0000644000000000000000000005132314361661504020015 0ustar00Platform: "linux-x86_64" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/usr/local/include/python3.9" platinclude = "/usr/local/include/python3.9" platlib = "/usr/local/lib/python3.9/site-packages" platstdlib = "/usr/local/lib/python3.9" purelib = "/usr/local/lib/python3.9/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.9" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_BUILDDATE = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "" BASEMODLIBS = "" BINDIR = "/usr/local/bin" BINLIBDEST = "/usr/local/lib/python3.9" BLDLIBRARY = "-L. -lpython3.9" BLDSHARED = "gcc -pthread -shared" BUILDEXE = "" BUILDPYTHON = "python" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "" CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden" CONFIGURE_CPPFLAGS = "" CONFIGURE_LDFLAGS = "" CONFIGURE_LDFLAGS_NODIST = "" CONFIG_ARGS = "'--build=x86_64-linux-gnu' '--enable-loadable-sqlite-extensions' '--enable-optimizations' '--enable-option-checking=fatal' '--enable-shared' '--with-system-expat' '--with-system-ffi' 'build_alias=x86_64-linux-gnu'" CONFINCLUDEDIR = "/usr/local/include" CONFINCLUDEPY = "/usr/local/include/python3.9" COREPYTHONPATH = "" COVERAGE_INFO = "/usr/src/python/coverage.info" COVERAGE_REPORT = "/usr/src/python/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-I. -I./Include" CXX = "g++ -pthread" DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.9 /usr/local/lib/python3.9/lib-dynload" DESTLIB = "/usr/local/lib/python3.9" DESTPATH = "" DESTSHARED = "/usr/local/lib/python3.9/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "upgrade" EXE = "" EXEMODE = "755" EXPORTSFROM = "" EXPORTSYMS = "" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".nogil-39b-x86_64-linux-gnu.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GITBRANCH = "" GITTAG = "" GITVERSION = "" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "1" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LIBUUID = "1" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_J1939_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LINUX_WAIT_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_CLOCKWAIT = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "0" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "1" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "1" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-pc-linux-gnu" INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.9 /usr/local/include/python3.9" INCLUDEDIR = "/usr/local/include" INCLUDEPY = "/usr/local/include/python3.9" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.9.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -pthread -shared" LDFLAGS = "" LDLIBRARY = "libpython3.9.so" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared" LDVERSION = "3.9" LIBC = "" LIBDEST = "/usr/local/lib/python3.9" LIBDIR = "/usr/local/lib" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/local/lib/pkgconfig" LIBPL = "/usr/local/lib/python3.9/config-3.9-x86_64-linux-gnu" LIBPYTHON = "" LIBRARY = "libpython3.9.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/local/lib/python3.9" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "1" MAKESETUP = "./Modules/makesetup" MANDIR = "/usr/local/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _peg_parser _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "x86_64-linux-gnu" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"x86_64-linux-gnu\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ \ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PEGEN_HEADERS = "\" PEGEN_OBJS = "\" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" PLATLIBDIR = "lib" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "-m test --pgo" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpython3.so" PYLONG_BITS_IN_DIGIT = "0" PYTHON = "python" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./python -E" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2"" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -std=gnu11 -I./Include/internal -I./Include/mimalloc -I. -I./Include -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall" PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -std=gnu11 -I./Include/internal -I./Include/mimalloc" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -std=gnu11 -I./Include/internal -I./Include/mimalloc -I. -I./Include -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "" PY_CPPFLAGS = "-I. -I./Include" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "" PY_LDFLAGS_NODIST = "" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -std=gnu11 -I./Include/internal -I./Include/mimalloc -I. -I./Include -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/usr/src/python" SCRIPTDIR = "/usr/local/lib" SETPGRP_HAVE_ARG = "0" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".nogil-39b-x86_64-linux-gnu.so" SOABI = "nogil-39b-x86_64-linux-gnu" SRCDIRS = "Parser Parser/pegen Objects Objects/mimalloc Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "./Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/usr/src/python ./python" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/usr/src/python ./python ./Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3.9 ./Tools/scripts/update_file.py" USE_COMPUTED_GOTOS = "0" VERSION = "3.9" WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/usr/src/python" abs_srcdir = "/usr/src/python" base = "/usr/local" datarootdir = "/usr/local/share" exec_prefix = "/usr/local" installed_base = "/usr/local" installed_platbase = "/usr/local" platbase = "/usr/local" platlibdir = "lib" prefix = "/usr/local" projectbase = "/usr/local/bin" py_version = "3.9.10" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/usr/local/lib/python3.9/config-3.9-x86_64-linux-gnu" userbase = "/root/.local" python-maturin_1.3.2.orig/sysconfig/pypy-linux-3.7-7.3.txt0000644000000000000000000000406214013761000020171 0ustar00Platform: "linux-x86_64" Python version: "3.7" Current installation scheme: "pypy" Paths: data = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" include = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/include" platinclude = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/include" platlib = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/site-packages" platstdlib = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/lib-pypy" purelib = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/site-packages" scripts = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/bin" stdlib = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/lib-pypy" Variables: AR = "ar" ARFLAGS = "rc" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "g++ -pthread" EXE = "" EXT_SUFFIX = ".pypy37-pp73-x86_64-linux-gnu.so" GNULD = "yes" INCLUDEPY = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/include" LDSHARED = "gcc -pthread -shared" LIBDIR = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/bin" LIBRARY = "" OPT = "-DNDEBUG -O2" SHLIB_SUFFIX = ".so" SO = ".pypy37-pp73-x86_64-linux-gnu.so" SOABI = "pypy37-pp73" abiflags = "" base = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" exec_prefix = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" installed_platbase = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" platbase = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" prefix = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3" projectbase = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/bin" py_version = "3.7.9" py_version_nodot = "37" py_version_short = "3.7" srcdir = "/home/konsti/.pyenv/versions/pypy3.7-7.3.3/lib-pypy/config-3.7" userbase = "/home/konsti/.local" User: data = "/home/konsti/.local" include = "/home/konsti/.local/include/pypy3.7" platlib = "/home/konsti/.local/lib/pypy3.7/site-packages" platstdlib = "/home/konsti/.local/lib/pypy3.7" purelib = "/home/konsti/.local/lib/pypy3.7/site-packages" scripts = "/home/konsti/.local/bin" stdlib = "/home/konsti/.local/lib/pypy3.7" python-maturin_1.3.2.orig/sysconfig/pypy-linux-ppc64le-3.7-7.3.txt0000644000000000000000000000337114333145550021461 0ustar00Platform: "linux-ppc64le" Python version: "3.7" Current installation scheme: "pypy" Paths: data = "/usr/lib64/pypy3.7" include = "/usr/lib64/pypy3.7/include" platinclude = "/usr/lib64/pypy3.7/include" platlib = "/usr/lib64/pypy3.7/site-packages" platstdlib = "/usr/lib64/pypy3.7/lib_pypy" purelib = "/usr/lib64/pypy3.7/site-packages" scripts = "/usr/lib64/pypy3.7/bin" stdlib = "/usr/lib64/pypy3.7/lib_pypy" Variables: ABIFLAGS = "" AR = "ar" ARFLAGS = "rc" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "c++ -pthread" EXE = "" EXT_SUFFIX = ".pypy37-pp73-ppc_64-linux-gnu.so" INCLUDEPY = "/usr/lib64/pypy3.7/include" LDLIBRARY = "libpypy3-c.so" LDSHARED = "cc -pthread -shared" LDVERSION = "3.7" LIBDIR = "/usr/lib64/pypy3.7/bin" LIBRARY = "" MULTIARCH = "ppc_64-linux-gnu" OPT = "-DNDEBUG -O2" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" SHLIB_SUFFIX = ".so" SIZEOF_VOID_P = "8" SO = ".pypy37-pp73-ppc_64-linux-gnu.so" SOABI = "pypy37-pp73" VERSION = "3.7" abiflags = "" base = "/usr/lib64/pypy3.7" exec_prefix = "/usr/lib64/pypy3.7" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/usr/lib64/pypy3.7" installed_platbase = "/usr/lib64/pypy3.7" platbase = "/usr/lib64/pypy3.7" prefix = "/usr/lib64/pypy3.7" projectbase = "/usr/lib64/pypy3.7/bin" py_version = "3.7.13" py_version_nodot = "37" py_version_short = "3.7" srcdir = "/usr/lib64/pypy3.7/lib_pypy/config-3.7-ppc_64-linux-gnu" userbase = "/root/.local" User: data = "/root/.local" include = "/root/.local/include/pypy3.7" platlib = "/root/.local/lib/pypy3.7/site-packages" platstdlib = "/root/.local/lib/pypy3.7" purelib = "/root/.local/lib/pypy3.7/site-packages" scripts = "/root/.local/bin" stdlib = "/root/.local/lib/pypy3.7" python-maturin_1.3.2.orig/sysconfig/pypy-linux-ppc64le-3.8-7.3.txt0000644000000000000000000000352514333145550021463 0ustar00Platform: "linux-ppc64le" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/lib64/pypy3.8" include = "/usr/lib64/pypy3.8/include/pypy3.8" platinclude = "/usr/lib64/pypy3.8/include/pypy3.8" platlib = "/usr/lib64/pypy3.8/lib/pypy3.8/site-packages" platstdlib = "/usr/lib64/pypy3.8/lib/pypy3.8" purelib = "/usr/lib64/pypy3.8/lib/pypy3.8/site-packages" scripts = "/usr/lib64/pypy3.8/bin" stdlib = "/usr/lib64/pypy3.8/lib/pypy3.8" Variables: ABIFLAGS = "" AR = "ar" ARFLAGS = "rc" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "c++ -pthread" EXE = "" EXT_SUFFIX = ".pypy38-pp73-ppc_64-linux-gnu.so" INCLUDEPY = "/usr/lib64/pypy3.8/include/pypy3.8" LDFLAGS = "-Wl,-Bsymbolic-functions" LDLIBRARY = "libpypy3-c.so" LDSHARED = "cc -pthread -shared -Wl,-Bsymbolic-functions" LDVERSION = "3.8" LIBDIR = "/usr/lib64/pypy3.8/bin" LIBRARY = "" MULTIARCH = "ppc_64-linux-gnu" OPT = "-DNDEBUG -O2" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" SHLIB_SUFFIX = ".so" SIZEOF_VOID_P = "8" SO = ".pypy38-pp73-ppc_64-linux-gnu.so" SOABI = "pypy38-pp73" VERSION = "3.8" abiflags = "" base = "/usr/lib64/pypy3.8" exec_prefix = "/usr/lib64/pypy3.8" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/usr/lib64/pypy3.8" installed_platbase = "/usr/lib64/pypy3.8" platbase = "/usr/lib64/pypy3.8" prefix = "/usr/lib64/pypy3.8" projectbase = "/usr/lib64/pypy3.8/bin" py_version = "3.8.13" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/lib64/pypy3.8/bin" userbase = "/root/.local" User: data = "/root/.local" include = "/root/.local/include/pypy3.8" platlib = "/root/.local/lib/pypy3.8/site-packages" platstdlib = "/root/.local/lib/pypy3.8" purelib = "/root/.local/lib/pypy3.8/site-packages" scripts = "/root/.local/bin" stdlib = "/root/.local/lib/pypy3.8" python-maturin_1.3.2.orig/sysconfig/pypy-linux-ppc64le-3.9-7.3.txt0000644000000000000000000000333414333145550021462 0ustar00Platform: "linux-ppc64le" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/usr" include = "/usr/include/pypy3.9" platinclude = "/usr/include/pypy3.9" platlib = "/usr/lib64/pypy3.9/site-packages" platstdlib = "/usr/lib64/pypy3.9" purelib = "/usr/lib/pypy3.9/site-packages" scripts = "/usr/bin" stdlib = "/usr/lib64/pypy3.9" Variables: ABIFLAGS = "" AR = "ar" ARFLAGS = "rc" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "c++ -pthread" EXE = "" EXT_SUFFIX = ".pypy39-pp73-ppc_64-linux-gnu.so" INCLUDEPY = "/usr/include/pypy3.9" LDFLAGS = "-Wl,-Bsymbolic-functions" LDLIBRARY = "libpypy3.9-c.so" LDSHARED = "cc -pthread -shared -Wl,-Bsymbolic-functions" LDVERSION = "3.9" LIBDIR = "/usr/bin" LIBRARY = "" MULTIARCH = "ppc_64-linux-gnu" OPT = "-DNDEBUG -O2" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" SHLIB_SUFFIX = ".so" SIZEOF_VOID_P = "8" SO = ".pypy39-pp73-ppc_64-linux-gnu.so" SOABI = "pypy39-pp73" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/usr/../etc/zoneinfo" VERSION = "3.9" abiflags = "" base = "/usr" exec_prefix = "/usr" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/usr" installed_platbase = "/usr" platbase = "/usr" platlibdir = "lib64" prefix = "/usr" projectbase = "/usr/bin" py_version = "3.9.12" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/usr/bin" userbase = "/root/.local" User: data = "/root/.local" include = "/root/.local/include/pypy3.9" platlib = "/root/.local/lib64/pypy3.9/site-packages" platstdlib = "/root/.local/lib64/pypy3.9" purelib = "/root/.local/lib/pypy3.9/site-packages" scripts = "/root/.local/bin" stdlib = "/root/.local/lib64/pypy3.9" python-maturin_1.3.2.orig/sysconfig/pypy-linux-s390x-3.7-7.3.txt0000644000000000000000000000336314333134025021066 0ustar00Platform: "linux-s390x" Python version: "3.7" Current installation scheme: "pypy" Paths: data = "/usr/lib64/pypy3.7" include = "/usr/lib64/pypy3.7/include" platinclude = "/usr/lib64/pypy3.7/include" platlib = "/usr/lib64/pypy3.7/site-packages" platstdlib = "/usr/lib64/pypy3.7/lib_pypy" purelib = "/usr/lib64/pypy3.7/site-packages" scripts = "/usr/lib64/pypy3.7/bin" stdlib = "/usr/lib64/pypy3.7/lib_pypy" Variables: ABIFLAGS = "" AR = "ar" ARFLAGS = "rc" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "c++ -pthread" EXE = "" EXT_SUFFIX = ".pypy37-pp73-s390x-linux-gnu.so" INCLUDEPY = "/usr/lib64/pypy3.7/include" LDLIBRARY = "libpypy3-c.so" LDSHARED = "cc -pthread -shared" LDVERSION = "3.7" LIBDIR = "/usr/lib64/pypy3.7/bin" LIBRARY = "" MULTIARCH = "s390x-linux-gnu" OPT = "-DNDEBUG -O2" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" SHLIB_SUFFIX = ".so" SIZEOF_VOID_P = "8" SO = ".pypy37-pp73-s390x-linux-gnu.so" SOABI = "pypy37-pp73" VERSION = "3.7" abiflags = "" base = "/usr/lib64/pypy3.7" exec_prefix = "/usr/lib64/pypy3.7" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/usr/lib64/pypy3.7" installed_platbase = "/usr/lib64/pypy3.7" platbase = "/usr/lib64/pypy3.7" prefix = "/usr/lib64/pypy3.7" projectbase = "/usr/lib64/pypy3.7/bin" py_version = "3.7.13" py_version_nodot = "37" py_version_short = "3.7" srcdir = "/usr/lib64/pypy3.7/lib_pypy/config-3.7-s390x-linux-gnu" userbase = "/root/.local" User: data = "/root/.local" include = "/root/.local/include/pypy3.7" platlib = "/root/.local/lib/pypy3.7/site-packages" platstdlib = "/root/.local/lib/pypy3.7" purelib = "/root/.local/lib/pypy3.7/site-packages" scripts = "/root/.local/bin" stdlib = "/root/.local/lib/pypy3.7" python-maturin_1.3.2.orig/sysconfig/pypy-linux-s390x-3.8-7.3.txt0000644000000000000000000000352014333134025021062 0ustar00Platform: "linux-s390x" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/usr/lib64/pypy3.8" include = "/usr/lib64/pypy3.8/include/pypy3.8" platinclude = "/usr/lib64/pypy3.8/include/pypy3.8" platlib = "/usr/lib64/pypy3.8/lib/pypy3.8/site-packages" platstdlib = "/usr/lib64/pypy3.8/lib/pypy3.8" purelib = "/usr/lib64/pypy3.8/lib/pypy3.8/site-packages" scripts = "/usr/lib64/pypy3.8/bin" stdlib = "/usr/lib64/pypy3.8/lib/pypy3.8" Variables: ABIFLAGS = "" AR = "ar" ARFLAGS = "rc" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "c++ -pthread" EXE = "" EXT_SUFFIX = ".pypy38-pp73-s390x-linux-gnu.so" INCLUDEPY = "/usr/lib64/pypy3.8/include/pypy3.8" LDFLAGS = "-Wl,-Bsymbolic-functions" LDLIBRARY = "libpypy3-c.so" LDSHARED = "cc -pthread -shared -Wl,-Bsymbolic-functions" LDVERSION = "3.8" LIBDIR = "/usr/lib64/pypy3.8/bin" LIBRARY = "" MULTIARCH = "s390x-linux-gnu" OPT = "-DNDEBUG -O2" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" SHLIB_SUFFIX = ".so" SIZEOF_VOID_P = "8" SO = ".pypy38-pp73-s390x-linux-gnu.so" SOABI = "pypy38-pp73" VERSION = "3.8" abiflags = "" base = "/usr/lib64/pypy3.8" exec_prefix = "/usr/lib64/pypy3.8" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/usr/lib64/pypy3.8" installed_platbase = "/usr/lib64/pypy3.8" platbase = "/usr/lib64/pypy3.8" prefix = "/usr/lib64/pypy3.8" projectbase = "/usr/lib64/pypy3.8/bin" py_version = "3.8.13" py_version_nodot = "38" py_version_short = "3.8" srcdir = "/usr/lib64/pypy3.8/bin" userbase = "/root/.local" User: data = "/root/.local" include = "/root/.local/include/pypy3.8" platlib = "/root/.local/lib/pypy3.8/site-packages" platstdlib = "/root/.local/lib/pypy3.8" purelib = "/root/.local/lib/pypy3.8/site-packages" scripts = "/root/.local/bin" stdlib = "/root/.local/lib/pypy3.8" python-maturin_1.3.2.orig/sysconfig/pypy-linux-s390x-3.9-7.3.txt0000644000000000000000000000332614333134025021067 0ustar00Platform: "linux-s390" Python version: "3.9" Current installation scheme: "posix_prefix" Paths: data = "/usr" include = "/usr/include/pypy3.9" platinclude = "/usr/include/pypy3.9" platlib = "/usr/lib64/pypy3.9/site-packages" platstdlib = "/usr/lib64/pypy3.9" purelib = "/usr/lib/pypy3.9/site-packages" scripts = "/usr/bin" stdlib = "/usr/lib64/pypy3.9" Variables: ABIFLAGS = "" AR = "ar" ARFLAGS = "rc" CC = "cc -pthread" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "c++ -pthread" EXE = "" EXT_SUFFIX = ".pypy39-pp73-s390x-linux-gnu.so" INCLUDEPY = "/usr/include/pypy3.9" LDFLAGS = "-Wl,-Bsymbolic-functions" LDLIBRARY = "libpypy3.9-c.so" LDSHARED = "cc -pthread -shared -Wl,-Bsymbolic-functions" LDVERSION = "3.9" LIBDIR = "/usr/bin" LIBRARY = "" MULTIARCH = "s390x-linux-gnu" OPT = "-DNDEBUG -O2" Py_DEBUG = "0" Py_ENABLE_SHARED = "0" SHLIB_SUFFIX = ".so" SIZEOF_VOID_P = "8" SO = ".pypy39-pp73-s390x-linux-gnu.so" SOABI = "pypy39-pp73" TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/usr/../etc/zoneinfo" VERSION = "3.9" abiflags = "" base = "/usr" exec_prefix = "/usr" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/usr" installed_platbase = "/usr" platbase = "/usr" platlibdir = "lib64" prefix = "/usr" projectbase = "/usr/bin" py_version = "3.9.12" py_version_nodot = "39" py_version_short = "3.9" srcdir = "/usr/bin" userbase = "/root/.local" User: data = "/root/.local" include = "/root/.local/include/pypy3.9" platlib = "/root/.local/lib64/pypy3.9/site-packages" platstdlib = "/root/.local/lib64/pypy3.9" purelib = "/root/.local/lib/pypy3.9/site-packages" scripts = "/root/.local/bin" stdlib = "/root/.local/lib64/pypy3.9" python-maturin_1.3.2.orig/sysconfig/pypy-macos-3.7-7.3.txt0000644000000000000000000000436014113673567020162 0ustar00Platform: "macosx-10.7-x86_64" Python version: "3.7" Current installation scheme: "pypy" Paths: data = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" include = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/include" platinclude = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/include" platlib = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/site-packages" platstdlib = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/lib-pypy" purelib = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/site-packages" scripts = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/bin" stdlib = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/lib-pypy" Variables: AR = "ar" ARFLAGS = "rc" CC = "gcc -pthread -arch x86_64" CCSHARED = "-fPIC" CFLAGS = "-DNDEBUG -O2" CXX = "g++ -pthread -arch x86_64" EXE = "" EXT_SUFFIX = ".pypy37-pp73-darwin.so" GNULD = "yes" INCLUDEPY = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/include" LDLIBRARY = "libpypy3-c.so" LDSHARED = "gcc -pthread -arch x86_64 -shared -undefined dynamic_lookup" LIBDIR = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/bin" LIBRARY = "" MACOSX_DEPLOYMENT_TARGET = "10.7" OPT = "-DNDEBUG -O2" SHLIB_SUFFIX = ".so" SO = ".pypy37-pp73-darwin.so" SOABI = "pypy37-pp73" abiflags = "" base = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" exec_prefix = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" implementation = "PyPy" implementation_lower = "pypy" installed_base = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" installed_platbase = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" platbase = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" prefix = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5" projectbase = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/bin" py_version = "3.7.10" py_version_nodot = "37" py_version_short = "3.7" srcdir = "/Users/messense/.pyenv/versions/pypy3.7-7.3.5/lib-pypy/config-3.7" userbase = "/Users/messense/.local" User: data = "/Users/messense/.local" include = "/Users/messense/.local/include/pypy3.7" platlib = "/Users/messense/.local/lib/pypy3.7/site-packages" platstdlib = "/Users/messense/.local/lib/pypy3.7" purelib = "/Users/messense/.local/lib/pypy3.7/site-packages" scripts = "/Users/messense/.local/bin" stdlib = "/Users/messense/.local/lib/pypy3.7"python-maturin_1.3.2.orig/sysconfig/pypy-windows-3.7-7.3.txt0000644000000000000000000000562614113671161020544 0ustar00Platform: "win-amd64" Python version: "3.7" Current installation scheme: "pypy_nt" Paths: data = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" include = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\include" platinclude = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\include" platlib = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\site-packages" platstdlib = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\lib-pypy" purelib = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\site-packages" scripts = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\Scripts" stdlib = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\lib-pypy" Variables: BINDIR = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" BINLIBDEST = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\lib-pypy" EXE = ".exe" EXT_SUFFIX = ".pypy37-pp73-win_amd64.pyd" INCLUDEPY = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\include" LIBDEST = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64\lib-pypy" LIBRARY = "" SO = ".pypy37-pp73-win_amd64.pyd" SOABI = "pypy37-pp73" VERSION = "37" abiflags = "" base = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" exec_prefix = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" implementation = "PyPy" implementation_lower = "pypy" installed_base = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" installed_platbase = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" platbase = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" prefix = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" projectbase = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" py_version = "3.7.10" py_version_nodot = "37" py_version_short = "3.7" srcdir = "C:\Users\messense\Downloads\pypy3.7-v7.3.5-win64\pypy3.7-v7.3.5-win64" userbase = "C:\Users\messense\AppData\Roaming\PyPy" User: data = "C:\Users\messense\AppData\Roaming\PyPy" include = "C:\Users\messense\AppData\Roaming\PyPy\PyPy37\Include" platlib = "C:\Users\messense\AppData\Roaming\PyPy\PyPy37\site-packages" platstdlib = "C:\Users\messense\AppData\Roaming\PyPy\PyPy37" purelib = "C:\Users\messense\AppData\Roaming\PyPy\PyPy37\site-packages" scripts = "C:\Users\messense\AppData\Roaming\PyPy\PyPy37\Scripts" stdlib = "C:\Users\messense\AppData\Roaming\PyPy\PyPy37" python-maturin_1.3.2.orig/sysconfig/pyston-3.8.txt0000644000000000000000000006407214330141150017072 0ustar00Platform: "linux-x86_64" Python version: "3.8" Current installation scheme: "posix_prefix" Paths: data = "/root/pyston_2.3.5" include = "/root/pyston_2.3.5/include/python3.8-pyston2.3" platinclude = "/root/pyston_2.3.5/include/python3.8-pyston2.3" platlib = "/root/pyston_2.3.5/lib/python3.8-pyston2.3/site-packages" platstdlib = "/root/pyston_2.3.5/lib/python3.8-pyston2.3" purelib = "/root/pyston_2.3.5/lib/python3.8-pyston2.3/site-packages" scripts = "/root/pyston_2.3.5/bin" stdlib = "/root/pyston_2.3.5/lib/python3.8-pyston2.3" Variables: ABIFLAGS = "" AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" ALT_SOABI = "0" ANDROID_API_LEVEL = "0" AOT_DIR = "../aot_pic" AR = "ar" ARFLAGS = "rcs" BASECFLAGS = "-Wno-unused-result -Wsign-compare" BASECPPFLAGS = "-IObjects -IInclude -IPython" BASEMODLIBS = "" BINDIR = "/usr/bin" BINLIBDEST = "/usr/lib/python3.8-pyston2.3" BLDLIBRARY = "-L. -lpython3.8-pyston2.3" BLDSHARED = "gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro" BUILDEXE = "" BUILDPYTHON = "pyston" BUILD_GNU_TYPE = "x86_64-pc-linux-gnu" BYTESTR_DEPS = "\" CC = "gcc -pthread" CCSHARED = "-fPIC" CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -DENABLE_AOT -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security" CFLAGSFORSHARED = "-fPIC" CFLAGS_ALIASING = "" CFLAGS_NODIST = "" CLANG_RT_PROFILE = "$(shell /src/build/build/Release/llvm/bin/clang --print-resource-dir)/lib/linux/libclang_rt.profile-$(shell uname -m).a" CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" CONFIGURE_CFLAGS = "-g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -DENABLE_AOT" CONFIGURE_CFLAGS_NODIST = "-fstack-protector -specs=/src/build/pyston/tools/no-pie-compile.specs -D_FORTIFY_SOURCE=2 -fno-reorder-blocks-and-partition -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration" CONFIGURE_CPPFLAGS = "-Wdate-time -D_FORTIFY_SOURCE=2" CONFIGURE_LDFLAGS = "-Wl,-Bsymbolic-functions -Wl,-z,relro" CONFIGURE_LDFLAGS_NODIST = "-specs=/src/build/pyston/tools/no-pie-link.specs -Wl,-z,relro -Wl,--emit-relocs -fno-semantic-interposition -fsemantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" CONFIG_ARGS = "'--prefix=/usr' '--enable-optimizations' '--with-lto' '--disable-debugging-features' '--enable-shared' '--enable-configure' 'CFLAGS=-g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'PROFILE_TASK=../../Lib/test/regrtest.py -j 0 -unone,decimal -x test_posix test_asyncio test_cmd_line_script test_compiler test_concurrent_futures test_ctypes test_dbm_dumb test_dbm_ndbm test_distutils test_ensurepip test_ftplib test_gdb test_httplib test_imaplib test_ioctl test_linuxaudiodev test_multiprocessing test_nntplib test_ossaudiodev test_poplib test_pydoc test_signal test_socket test_socketserver test_ssl test_subprocess test_sundry test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_venv test_zipimport_support || true'" CONFINCLUDEDIR = "/usr/include" CONFINCLUDEPY = "/usr/include/python3.8-pyston2.3" COREPYTHONPATH = "" COVERAGE_INFO = "/src/build/build/releaseshared_build/coverage.info" COVERAGE_REPORT = "/src/build/build/releaseshared_build/lcov-report" COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report"" CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../../Include -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2" CXX = "g++ -pthread" DESTDIRS = "/usr /usr/lib /usr/lib/python3.8-pyston2.3 /usr/lib/python3.8-pyston2.3/lib-dynload" DESTLIB = "/usr/lib/python3.8-pyston2.3" DESTPATH = "" DESTSHARED = "/usr/lib/python3.8-pyston2.3/lib-dynload" DFLAGS = "" DIRMODE = "755" DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy" DISTDIRS = "Include Lib Misc Ext-dummy" DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in" DLINCLDIR = "." DLLLIBRARY = "" DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0" DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0" DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1" DTRACE = "" DTRACE_DEPS = "\" DTRACE_HEADERS = "" DTRACE_OBJS = "" DYNLOADFILE = "dynload_shlib.o" ENABLE_IPV6 = "1" ENSUREPIP = "upgrade" EXE = "" EXEMODE = "755" EXTRATESTOPTS = "" EXTRA_CFLAGS = "" EXT_SUFFIX = ".pyston-23-x86_64-linux-gnu.so" FILEMODE = "644" FLOAT_WORDS_BIGENDIAN = "0" FLOCK_NEEDS_LIBBSD = "0" GETPGRP_HAVE_ARG = "0" GETTIMEOFDAY_NO_TZ = "0" GITBRANCH = "git --git-dir ../../.git name-rev --name-only HEAD" GITTAG = "git --git-dir ../../.git describe --all --always" GITVERSION = "git --git-dir ../../.git rev-parse --short HEAD" GNULD = "yes" HAVE_ACCEPT4 = "1" HAVE_ACOSH = "1" HAVE_ADDRINFO = "1" HAVE_ALARM = "1" HAVE_ALIGNED_REQUIRED = "0" HAVE_ALLOCA_H = "1" HAVE_ALTZONE = "0" HAVE_ASINH = "1" HAVE_ASM_TYPES_H = "1" HAVE_ATANH = "1" HAVE_BIND_TEXTDOMAIN_CODESET = "1" HAVE_BLUETOOTH_BLUETOOTH_H = "1" HAVE_BLUETOOTH_H = "0" HAVE_BROKEN_MBSTOWCS = "0" HAVE_BROKEN_NICE = "0" HAVE_BROKEN_PIPE_BUF = "0" HAVE_BROKEN_POLL = "0" HAVE_BROKEN_POSIX_SEMAPHORES = "0" HAVE_BROKEN_PTHREAD_SIGMASK = "0" HAVE_BROKEN_SEM_GETVALUE = "0" HAVE_BROKEN_UNSETENV = "0" HAVE_BUILTIN_ATOMIC = "1" HAVE_CHFLAGS = "0" HAVE_CHOWN = "1" HAVE_CHROOT = "1" HAVE_CLOCK = "1" HAVE_CLOCK_GETRES = "1" HAVE_CLOCK_GETTIME = "1" HAVE_CLOCK_SETTIME = "1" HAVE_COMPUTED_GOTOS = "1" HAVE_CONFSTR = "1" HAVE_CONIO_H = "0" HAVE_COPYSIGN = "1" HAVE_COPY_FILE_RANGE = "1" HAVE_CRYPT_H = "1" HAVE_CRYPT_R = "1" HAVE_CTERMID = "1" HAVE_CTERMID_R = "0" HAVE_CURSES_FILTER = "1" HAVE_CURSES_H = "1" HAVE_CURSES_HAS_KEY = "1" HAVE_CURSES_IMMEDOK = "1" HAVE_CURSES_IS_PAD = "1" HAVE_CURSES_IS_TERM_RESIZED = "1" HAVE_CURSES_RESIZETERM = "1" HAVE_CURSES_RESIZE_TERM = "1" HAVE_CURSES_SYNCOK = "1" HAVE_CURSES_TYPEAHEAD = "1" HAVE_CURSES_USE_ENV = "1" HAVE_CURSES_WCHGAT = "1" HAVE_DECL_ISFINITE = "1" HAVE_DECL_ISINF = "1" HAVE_DECL_ISNAN = "1" HAVE_DECL_RTLD_DEEPBIND = "1" HAVE_DECL_RTLD_GLOBAL = "1" HAVE_DECL_RTLD_LAZY = "1" HAVE_DECL_RTLD_LOCAL = "1" HAVE_DECL_RTLD_MEMBER = "0" HAVE_DECL_RTLD_NODELETE = "1" HAVE_DECL_RTLD_NOLOAD = "1" HAVE_DECL_RTLD_NOW = "1" HAVE_DECL_TZNAME = "0" HAVE_DEVICE_MACROS = "1" HAVE_DEV_PTC = "0" HAVE_DEV_PTMX = "1" HAVE_DIRECT_H = "0" HAVE_DIRENT_D_TYPE = "1" HAVE_DIRENT_H = "1" HAVE_DIRFD = "1" HAVE_DLFCN_H = "1" HAVE_DLOPEN = "1" HAVE_DUP2 = "1" HAVE_DUP3 = "1" HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0" HAVE_DYNAMIC_LOADING = "1" HAVE_ENDIAN_H = "1" HAVE_EPOLL = "1" HAVE_EPOLL_CREATE1 = "1" HAVE_ERF = "1" HAVE_ERFC = "1" HAVE_ERRNO_H = "1" HAVE_EXECV = "1" HAVE_EXPLICIT_BZERO = "1" HAVE_EXPLICIT_MEMSET = "0" HAVE_EXPM1 = "1" HAVE_FACCESSAT = "1" HAVE_FCHDIR = "1" HAVE_FCHMOD = "1" HAVE_FCHMODAT = "1" HAVE_FCHOWN = "1" HAVE_FCHOWNAT = "1" HAVE_FCNTL_H = "1" HAVE_FDATASYNC = "1" HAVE_FDOPENDIR = "1" HAVE_FDWALK = "0" HAVE_FEXECVE = "1" HAVE_FINITE = "1" HAVE_FLOCK = "1" HAVE_FORK = "1" HAVE_FORKPTY = "1" HAVE_FPATHCONF = "1" HAVE_FSEEK64 = "0" HAVE_FSEEKO = "1" HAVE_FSTATAT = "1" HAVE_FSTATVFS = "1" HAVE_FSYNC = "1" HAVE_FTELL64 = "0" HAVE_FTELLO = "1" HAVE_FTIME = "1" HAVE_FTRUNCATE = "1" HAVE_FUTIMENS = "1" HAVE_FUTIMES = "1" HAVE_FUTIMESAT = "1" HAVE_GAI_STRERROR = "1" HAVE_GAMMA = "1" HAVE_GCC_ASM_FOR_MC68881 = "0" HAVE_GCC_ASM_FOR_X64 = "1" HAVE_GCC_ASM_FOR_X87 = "1" HAVE_GCC_UINT128_T = "1" HAVE_GETADDRINFO = "1" HAVE_GETC_UNLOCKED = "1" HAVE_GETENTROPY = "1" HAVE_GETGRGID_R = "1" HAVE_GETGRNAM_R = "1" HAVE_GETGROUPLIST = "1" HAVE_GETGROUPS = "1" HAVE_GETHOSTBYNAME = "0" HAVE_GETHOSTBYNAME_R = "1" HAVE_GETHOSTBYNAME_R_3_ARG = "0" HAVE_GETHOSTBYNAME_R_5_ARG = "0" HAVE_GETHOSTBYNAME_R_6_ARG = "1" HAVE_GETITIMER = "1" HAVE_GETLOADAVG = "1" HAVE_GETLOGIN = "1" HAVE_GETNAMEINFO = "1" HAVE_GETPAGESIZE = "1" HAVE_GETPEERNAME = "1" HAVE_GETPGID = "1" HAVE_GETPGRP = "1" HAVE_GETPID = "1" HAVE_GETPRIORITY = "1" HAVE_GETPWENT = "1" HAVE_GETPWNAM_R = "1" HAVE_GETPWUID_R = "1" HAVE_GETRANDOM = "1" HAVE_GETRANDOM_SYSCALL = "1" HAVE_GETRESGID = "1" HAVE_GETRESUID = "1" HAVE_GETSID = "1" HAVE_GETSPENT = "1" HAVE_GETSPNAM = "1" HAVE_GETTIMEOFDAY = "1" HAVE_GETWD = "1" HAVE_GLIBC_MEMMOVE_BUG = "0" HAVE_GRP_H = "1" HAVE_HSTRERROR = "1" HAVE_HTOLE64 = "1" HAVE_HYPOT = "1" HAVE_IEEEFP_H = "0" HAVE_IF_NAMEINDEX = "1" HAVE_INET_ATON = "1" HAVE_INET_PTON = "1" HAVE_INITGROUPS = "1" HAVE_INTTYPES_H = "1" HAVE_IO_H = "0" HAVE_IPA_PURE_CONST_BUG = "0" HAVE_KILL = "1" HAVE_KILLPG = "1" HAVE_KQUEUE = "0" HAVE_LANGINFO_H = "1" HAVE_LARGEFILE_SUPPORT = "0" HAVE_LCHFLAGS = "0" HAVE_LCHMOD = "0" HAVE_LCHOWN = "1" HAVE_LGAMMA = "1" HAVE_LIBDL = "1" HAVE_LIBDLD = "0" HAVE_LIBIEEE = "0" HAVE_LIBINTL_H = "1" HAVE_LIBREADLINE = "1" HAVE_LIBRESOLV = "0" HAVE_LIBSENDFILE = "0" HAVE_LIBUTIL_H = "0" HAVE_LINK = "1" HAVE_LINKAT = "1" HAVE_LINUX_CAN_BCM_H = "1" HAVE_LINUX_CAN_H = "1" HAVE_LINUX_CAN_RAW_FD_FRAMES = "1" HAVE_LINUX_CAN_RAW_H = "1" HAVE_LINUX_MEMFD_H = "1" HAVE_LINUX_NETLINK_H = "1" HAVE_LINUX_QRTR_H = "1" HAVE_LINUX_RANDOM_H = "1" HAVE_LINUX_TIPC_H = "1" HAVE_LINUX_VM_SOCKETS_H = "1" HAVE_LOCKF = "1" HAVE_LOG1P = "1" HAVE_LOG2 = "1" HAVE_LONG_DOUBLE = "1" HAVE_LSTAT = "1" HAVE_LUTIMES = "1" HAVE_MADVISE = "1" HAVE_MAKEDEV = "1" HAVE_MBRTOWC = "1" HAVE_MEMFD_CREATE = "1" HAVE_MEMORY_H = "1" HAVE_MEMRCHR = "1" HAVE_MKDIRAT = "1" HAVE_MKFIFO = "1" HAVE_MKFIFOAT = "1" HAVE_MKNOD = "1" HAVE_MKNODAT = "1" HAVE_MKTIME = "1" HAVE_MMAP = "1" HAVE_MREMAP = "1" HAVE_NCURSES_H = "1" HAVE_NDIR_H = "0" HAVE_NETPACKET_PACKET_H = "1" HAVE_NET_IF_H = "1" HAVE_NICE = "1" HAVE_OPENAT = "1" HAVE_OPENPTY = "1" HAVE_PATHCONF = "1" HAVE_PAUSE = "1" HAVE_PIPE2 = "1" HAVE_PLOCK = "0" HAVE_POLL = "1" HAVE_POLL_H = "1" HAVE_POSIX_FADVISE = "1" HAVE_POSIX_FALLOCATE = "1" HAVE_POSIX_SPAWN = "1" HAVE_POSIX_SPAWNP = "1" HAVE_PREAD = "1" HAVE_PREADV = "1" HAVE_PREADV2 = "1" HAVE_PRLIMIT = "1" HAVE_PROCESS_H = "0" HAVE_PROTOTYPES = "1" HAVE_PTHREAD_CONDATTR_SETCLOCK = "1" HAVE_PTHREAD_DESTRUCTOR = "0" HAVE_PTHREAD_GETCPUCLOCKID = "1" HAVE_PTHREAD_H = "1" HAVE_PTHREAD_INIT = "0" HAVE_PTHREAD_KILL = "1" HAVE_PTHREAD_SIGMASK = "1" HAVE_PTY_H = "1" HAVE_PUTENV = "1" HAVE_PWRITE = "1" HAVE_PWRITEV = "1" HAVE_PWRITEV2 = "1" HAVE_READLINK = "1" HAVE_READLINKAT = "1" HAVE_READV = "1" HAVE_REALPATH = "1" HAVE_RENAMEAT = "1" HAVE_RL_APPEND_HISTORY = "1" HAVE_RL_CATCH_SIGNAL = "1" HAVE_RL_COMPLETION_APPEND_CHARACTER = "1" HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1" HAVE_RL_COMPLETION_MATCHES = "1" HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1" HAVE_RL_PRE_INPUT_HOOK = "1" HAVE_RL_RESIZE_TERMINAL = "1" HAVE_ROUND = "1" HAVE_RTPSPAWN = "0" HAVE_SCHED_GET_PRIORITY_MAX = "1" HAVE_SCHED_H = "1" HAVE_SCHED_RR_GET_INTERVAL = "1" HAVE_SCHED_SETAFFINITY = "1" HAVE_SCHED_SETPARAM = "1" HAVE_SCHED_SETSCHEDULER = "1" HAVE_SEM_GETVALUE = "1" HAVE_SEM_OPEN = "1" HAVE_SEM_TIMEDWAIT = "1" HAVE_SEM_UNLINK = "1" HAVE_SENDFILE = "1" HAVE_SETEGID = "1" HAVE_SETEUID = "1" HAVE_SETGID = "1" HAVE_SETGROUPS = "1" HAVE_SETHOSTNAME = "1" HAVE_SETITIMER = "1" HAVE_SETLOCALE = "1" HAVE_SETPGID = "1" HAVE_SETPGRP = "1" HAVE_SETPRIORITY = "1" HAVE_SETREGID = "1" HAVE_SETRESGID = "1" HAVE_SETRESUID = "1" HAVE_SETREUID = "1" HAVE_SETSID = "1" HAVE_SETUID = "1" HAVE_SETVBUF = "1" HAVE_SHADOW_H = "1" HAVE_SHM_OPEN = "1" HAVE_SHM_UNLINK = "1" HAVE_SIGACTION = "1" HAVE_SIGALTSTACK = "1" HAVE_SIGFILLSET = "1" HAVE_SIGINFO_T_SI_BAND = "1" HAVE_SIGINTERRUPT = "1" HAVE_SIGNAL_H = "1" HAVE_SIGPENDING = "1" HAVE_SIGRELSE = "1" HAVE_SIGTIMEDWAIT = "1" HAVE_SIGWAIT = "1" HAVE_SIGWAITINFO = "1" HAVE_SNPRINTF = "1" HAVE_SOCKADDR_ALG = "1" HAVE_SOCKADDR_SA_LEN = "0" HAVE_SOCKADDR_STORAGE = "1" HAVE_SOCKETPAIR = "1" HAVE_SPAWN_H = "1" HAVE_SSIZE_T = "1" HAVE_STATVFS = "1" HAVE_STAT_TV_NSEC = "1" HAVE_STAT_TV_NSEC2 = "0" HAVE_STDARG_PROTOTYPES = "1" HAVE_STDINT_H = "1" HAVE_STDLIB_H = "1" HAVE_STD_ATOMIC = "1" HAVE_STRDUP = "1" HAVE_STRFTIME = "1" HAVE_STRINGS_H = "1" HAVE_STRING_H = "1" HAVE_STRLCPY = "0" HAVE_STROPTS_H = "1" HAVE_STRSIGNAL = "1" HAVE_STRUCT_PASSWD_PW_GECOS = "1" HAVE_STRUCT_PASSWD_PW_PASSWD = "1" HAVE_STRUCT_STAT_ST_BIRTHTIME = "0" HAVE_STRUCT_STAT_ST_BLKSIZE = "1" HAVE_STRUCT_STAT_ST_BLOCKS = "1" HAVE_STRUCT_STAT_ST_FLAGS = "0" HAVE_STRUCT_STAT_ST_GEN = "0" HAVE_STRUCT_STAT_ST_RDEV = "1" HAVE_STRUCT_TM_TM_ZONE = "1" HAVE_SYMLINK = "1" HAVE_SYMLINKAT = "1" HAVE_SYNC = "1" HAVE_SYSCONF = "1" HAVE_SYSEXITS_H = "1" HAVE_SYS_AUDIOIO_H = "0" HAVE_SYS_BSDTTY_H = "0" HAVE_SYS_DEVPOLL_H = "0" HAVE_SYS_DIR_H = "0" HAVE_SYS_ENDIAN_H = "0" HAVE_SYS_EPOLL_H = "1" HAVE_SYS_EVENT_H = "0" HAVE_SYS_FILE_H = "1" HAVE_SYS_IOCTL_H = "1" HAVE_SYS_KERN_CONTROL_H = "0" HAVE_SYS_LOADAVG_H = "0" HAVE_SYS_LOCK_H = "0" HAVE_SYS_MEMFD_H = "0" HAVE_SYS_MKDEV_H = "0" HAVE_SYS_MMAN_H = "1" HAVE_SYS_MODEM_H = "0" HAVE_SYS_NDIR_H = "0" HAVE_SYS_PARAM_H = "1" HAVE_SYS_POLL_H = "1" HAVE_SYS_RANDOM_H = "1" HAVE_SYS_RESOURCE_H = "1" HAVE_SYS_SELECT_H = "1" HAVE_SYS_SENDFILE_H = "1" HAVE_SYS_SOCKET_H = "1" HAVE_SYS_STATVFS_H = "1" HAVE_SYS_STAT_H = "1" HAVE_SYS_SYSCALL_H = "1" HAVE_SYS_SYSMACROS_H = "1" HAVE_SYS_SYS_DOMAIN_H = "0" HAVE_SYS_TERMIO_H = "0" HAVE_SYS_TIMES_H = "1" HAVE_SYS_TIME_H = "1" HAVE_SYS_TYPES_H = "1" HAVE_SYS_UIO_H = "1" HAVE_SYS_UN_H = "1" HAVE_SYS_UTSNAME_H = "1" HAVE_SYS_WAIT_H = "1" HAVE_SYS_XATTR_H = "1" HAVE_TCGETPGRP = "1" HAVE_TCSETPGRP = "1" HAVE_TEMPNAM = "1" HAVE_TERMIOS_H = "1" HAVE_TERM_H = "1" HAVE_TGAMMA = "1" HAVE_TIMEGM = "1" HAVE_TIMES = "1" HAVE_TMPFILE = "1" HAVE_TMPNAM = "1" HAVE_TMPNAM_R = "1" HAVE_TM_ZONE = "1" HAVE_TRUNCATE = "1" HAVE_TZNAME = "0" HAVE_UCS4_TCL = "0" HAVE_UNAME = "1" HAVE_UNISTD_H = "1" HAVE_UNLINKAT = "1" HAVE_UNSETENV = "1" HAVE_USABLE_WCHAR_T = "0" HAVE_UTIL_H = "0" HAVE_UTIMENSAT = "1" HAVE_UTIMES = "1" HAVE_UTIME_H = "1" HAVE_UUID_CREATE = "0" HAVE_UUID_ENC_BE = "0" HAVE_UUID_GENERATE_TIME_SAFE = "0" HAVE_UUID_H = "0" HAVE_UUID_UUID_H = "0" HAVE_WAIT3 = "1" HAVE_WAIT4 = "1" HAVE_WAITID = "1" HAVE_WAITPID = "1" HAVE_WCHAR_H = "1" HAVE_WCSCOLL = "1" HAVE_WCSFTIME = "1" HAVE_WCSXFRM = "1" HAVE_WMEMCMP = "1" HAVE_WORKING_TZSET = "1" HAVE_WRITEV = "1" HAVE_X509_VERIFY_PARAM_SET1_HOST = "1" HAVE_ZLIB_COPY = "1" HAVE__GETPTY = "0" HOST_GNU_TYPE = "x86_64-pc-linux-gnu" IMPLEMENTATION_NAME = ""pyston"" INCLDIRSTOMAKE = "/usr/include /usr/include /usr/include/python3.8-pyston2.3 /usr/include/python3.8-pyston2.3" INCLUDEDIR = "/usr/include" INCLUDEPY = "/usr/include/python3.8-pyston2.3" INSTALL = "/usr/bin/install -c" INSTALL_DATA = "/usr/bin/install -c -m 644" INSTALL_PROGRAM = "/usr/bin/install -c" INSTALL_SCRIPT = "/usr/bin/install -c" INSTALL_SHARED = "/usr/bin/install -c -m 755" INSTSONAME = "libpython3.8-pyston2.3.so.1.0" IO_H = "Modules/_io/_iomodule.h" IO_OBJS = "\" LDCXXSHARED = "g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions" LDFLAGS = "-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro" LDFLAGS_NODIST = "" LDLIBRARY = "libpython3.8-pyston2.3.so" LDLIBRARYDIR = "" LDSHARED = "gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro" LDVERSION = "3.8-pyston2.3" LIBC = "" LIBDEST = "/usr/lib/python3.8-pyston2.3" LIBDIR = "/root/pyston_2.3.5/lib" LIBFFI_INCLUDEDIR = "" LIBM = "-lm" LIBOBJDIR = "Python/" LIBOBJS = "" LIBPC = "/usr/lib/pkgconfig" LIBPL = "/usr/lib/python3.8-pyston2.3/config-3.8-pyston2.3-x86_64-linux-gnu" LIBPYTHON = "" LIBRARY = "libpython3.8-pyston2.3.a" LIBRARY_OBJS = "\" LIBRARY_OBJS_OMIT_FROZEN = "\" LIBS = "-lcrypt -lpthread -ldl -lutil -lm" LIBSUBDIRS = "tkinter tkinter/test tkinter/test/test_tkinter \" LINKCC = "gcc -pthread" LINKFORSHARED = "-Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions" LIPO_32BIT_FLAGS = "" LIPO_INTEL64_FLAGS = "" LLVM_PROF_ERR = "no" LLVM_PROF_FILE = "" LLVM_PROF_MERGER = "true" LN = "ln" LOCALMODLIBS = "" MACHDEP = "linux" MACHDEP_OBJS = "" MACHDESTLIB = "/usr/lib/python3.8-pyston2.3" MACOSX_DEPLOYMENT_TARGET = "" MAINCC = "gcc -pthread" MAJOR_IN_MKDEV = "0" MAJOR_IN_SYSMACROS = "0" MAKESETUP = "../../Modules/makesetup" MANDIR = "/usr/share/man" MKDIR_P = "/bin/mkdir -p" MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype" MODDISABLED_NAMES = "" MODLIBS = "" MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o" MODULE_OBJS = "\" MULTIARCH = "x86_64-linux-gnu" MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"x86_64-linux-gnu\"" MVWDELCH_IS_EXPRESSION = "1" NO_AS_NEEDED = "-Wl,--no-as-needed" OBJECT_OBJS = "\" OPENSSL_INCLUDES = "" OPENSSL_LDFLAGS = "" OPENSSL_LIBS = "-lssl -lcrypto" OPT = "-DNDEBUG -g -fwrapv -O3 -Wall" OTHER_LIBTOOL_OPT = "" PACKAGE_BUGREPORT = "0" PACKAGE_NAME = "0" PACKAGE_STRING = "0" PACKAGE_TARNAME = "0" PACKAGE_URL = "0" PACKAGE_VERSION = "0" PARSER_HEADERS = "\" PARSER_OBJS = "\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o" PGO_PROF_GEN_FLAG = "-fprofile-generate" PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction" POBJS = "\" POSIX_SEMAPHORES_NOT_ENABLED = "0" PROFILE_TASK = "../../Lib/test/regrtest.py -j 0 -unone,decimal -x test_posix test_asyncio test_cmd_line_script test_compiler test_concurrent_futures test_ctypes test_dbm_dumb test_dbm_ndbm test_distutils test_ensurepip test_ftplib test_gdb test_httplib test_imaplib test_ioctl test_linuxaudiodev test_multiprocessing test_nntplib test_ossaudiodev test_poplib test_pydoc test_signal test_socket test_socketserver test_ssl test_subprocess test_sundry test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_venv test_zipimport_support || true" PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1" PTHREAD_SYSTEM_SCHED_SUPPORTED = "1" PURIFY = "" PY3LIBRARY = "libpyston3.so" PYLONG_BITS_IN_DIGIT = "0" PYSTON_SPEEDUPS = "1" PYTHON = "pyston" PYTHONFRAMEWORK = "" PYTHONFRAMEWORKDIR = "no-framework" PYTHONFRAMEWORKINSTALLDIR = "" PYTHONFRAMEWORKPREFIX = "" PYTHONPATH = "" PYTHON_FOR_BUILD = "./pyston -E" PYTHON_FOR_REGEN = "python3" PYTHON_HEADERS = "\" PYTHON_OBJS = "\" PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -DENABLE_AOT -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -fstack-protector -specs=/src/build/pyston/tools/no-pie-compile.specs -D_FORTIFY_SOURCE=2 -fno-reorder-blocks-and-partition -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I../../Include/internal -IObjects -IInclude -IPython -I. -I../../Include -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE_BUILTIN" PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -DENABLE_AOT -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security" PY_CFLAGS_NODIST = "-fstack-protector -specs=/src/build/pyston/tools/no-pie-compile.specs -D_FORTIFY_SOURCE=2 -fno-reorder-blocks-and-partition -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I../../Include/internal" PY_COERCE_C_LOCALE = "1" PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -DENABLE_AOT -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -fstack-protector -specs=/src/build/pyston/tools/no-pie-compile.specs -D_FORTIFY_SOURCE=2 -fno-reorder-blocks-and-partition -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I../../Include/internal -IObjects -IInclude -IPython -I. -I../../Include -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE" PY_CORE_LDFLAGS = "-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -specs=/src/build/pyston/tools/no-pie-link.specs -Wl,-z,relro -Wl,--emit-relocs -fno-semantic-interposition -fsemantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" PY_CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../../Include -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2" PY_DEBUGGING_FEATURES = "0" PY_FORMAT_SIZE_T = ""z"" PY_LDFLAGS = "-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro" PY_LDFLAGS_NODIST = "-specs=/src/build/pyston/tools/no-pie-link.specs -Wl,-z,relro -Wl,--emit-relocs -fno-semantic-interposition -fsemantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g" PY_SSL_DEFAULT_CIPHERS = "1" PY_SSL_DEFAULT_CIPHER_STRING = "0" PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -DENABLE_AOT -g -O2 -fdebug-prefix-map=/src/build/pyston=. -fstack-protector-strong -Wformat -Werror=format-security -fstack-protector -specs=/src/build/pyston/tools/no-pie-compile.specs -D_FORTIFY_SOURCE=2 -fno-reorder-blocks-and-partition -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -I../../Include/internal -IObjects -IInclude -IPython -I. -I../../Include -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC" Py_DEBUG = "0" Py_ENABLE_SHARED = "1" Py_HASH_ALGORITHM = "0" Py_TRACE_REFS = "0" QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \" READELF = "readelf" RESSRCDIR = "Mac/Resources/framework" RETSIGTYPE = "void" RUNSHARED = "LD_LIBRARY_PATH=/src/build/build/releaseshared_build" SCRIPTDIR = "/usr/lib" SETPGRP_HAVE_ARG = "0" SGI_ABI = "@SGI_ABI@" SHELL = "/bin/sh" SHLIBS = "-lcrypt -lpthread -ldl -lutil -lm" SHLIB_SUFFIX = ".so" SHM_NEEDS_LIBRT = "1" SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0" SITEPATH = "" SIZEOF_DOUBLE = "8" SIZEOF_FLOAT = "4" SIZEOF_FPOS_T = "16" SIZEOF_INT = "4" SIZEOF_LONG = "8" SIZEOF_LONG_DOUBLE = "16" SIZEOF_LONG_LONG = "8" SIZEOF_OFF_T = "8" SIZEOF_PID_T = "4" SIZEOF_PTHREAD_KEY_T = "4" SIZEOF_PTHREAD_T = "8" SIZEOF_SHORT = "2" SIZEOF_SIZE_T = "8" SIZEOF_TIME_T = "8" SIZEOF_UINTPTR_T = "8" SIZEOF_VOID_P = "8" SIZEOF_WCHAR_T = "4" SIZEOF__BOOL = "1" SO = ".pyston-23-x86_64-linux-gnu.so" SOABI = "pyston-23-x86_64-linux-gnu" SRCDIRS = "Parser Objects Python Modules Modules/_io Programs" SRC_GDB_HOOKS = "../../Tools/gdb/libpython.py" STDC_HEADERS = "1" STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */" STRIPFLAG = "-s" SUBDIRS = "" SUBDIRSTOO = "Include Lib Misc" SYSLIBS = "-lm" SYS_SELECT_WITH_SYS_TIME = "1" TCLTK_INCLUDES = "" TCLTK_LIBS = "" TESTOPTS = "" TESTPATH = "" TESTPYTHON = "LD_LIBRARY_PATH=/src/build/build/releaseshared_build ./pyston" TESTPYTHONOPTS = "" TESTRUNNER = "LD_LIBRARY_PATH=/src/build/build/releaseshared_build ./pyston ../../Tools/scripts/run_tests.py" TESTTIMEOUT = "1200" TIMEMODULE_LIB = "0" TIME_WITH_SYS_TIME = "1" TM_IN_SYS_TIME = "0" UNICODE_DEPS = "\" UNIVERSALSDK = "" UPDATE_FILE = "python3 ../../Tools/scripts/update_file.py" USE_AOT = "true" USE_COMPUTED_GOTOS = "0" VERSION = "3.8-pyston2.3" VPATH = "../.." WINDOW_HAS_FLAGS = "1" WITH_DECIMAL_CONTEXTVAR = "1" WITH_DOC_STRINGS = "1" WITH_DTRACE = "0" WITH_DYLD = "0" WITH_LIBINTL = "0" WITH_NEXT_FRAMEWORK = "0" WITH_PYMALLOC = "1" WITH_VALGRIND = "0" X87_DOUBLE_ROUNDING = "0" XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax" abiflags = "" abs_builddir = "/src/build/build/releaseshared_build" abs_srcdir = "/src/build/build/releaseshared_build/../.." base = "/root/pyston_2.3.5" datarootdir = "/usr/share" exec_prefix = "/usr" installed_base = "/root/pyston_2.3.5" installed_platbase = "/root/pyston_2.3.5" platbase = "/root/pyston_2.3.5" prefix = "/usr" projectbase = "/root/pyston_2.3.5/bin" py_version = "3.8.12" py_version_nodot = "38" py_version_short = "3.8" pyston_version = "3.8-pyston2.3" srcdir = "/root/pyston_2.3.5/lib/python3.8-pyston2.3/config-3.8-pyston2.3-x86_64-linux-gnu" userbase = "/root/.local" python-maturin_1.3.2.orig/test-crates/cargo-mock/0000755000000000000000000000000013512427056016747 5ustar00python-maturin_1.3.2.orig/test-crates/cargo-update.sh0000755000000000000000000000027414525221045017635 0ustar00#!/usr/bin/env bash for d in ./*; do if [ -d "$d" ]; then if [ -f "$d/Cargo.lock" ]; then cargo update --manifest-path "$d/Cargo.toml" echo "$d updated" fi fi done python-maturin_1.3.2.orig/test-crates/cffi-mixed/0000755000000000000000000000000013502206615016733 5ustar00python-maturin_1.3.2.orig/test-crates/cffi-pure/0000755000000000000000000000000013502206615016600 5ustar00python-maturin_1.3.2.orig/test-crates/hello-world/0000755000000000000000000000000013502206615017150 5ustar00python-maturin_1.3.2.orig/test-crates/lib_with_disallowed_lib/0000755000000000000000000000000014020203517021550 5ustar00python-maturin_1.3.2.orig/test-crates/lib_with_path_dep/0000755000000000000000000000000013623517340020371 5ustar00python-maturin_1.3.2.orig/test-crates/license-test/0000755000000000000000000000000014221614457017325 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-abi3-without-version/0000755000000000000000000000000013777031315021621 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-bin/0000755000000000000000000000000014244316203016357 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-feature/0000755000000000000000000000000013541625100017240 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/0000755000000000000000000000000014200655124017324 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/0000755000000000000000000000000014525221045020526 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/0000755000000000000000000000000014332477061021775 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/0000755000000000000000000000000014103202202020614 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/0000755000000000000000000000000014321003640017474 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/0000755000000000000000000000000014040032435020706 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/0000755000000000000000000000000014525221045020712 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/0000755000000000000000000000000013502206615016716 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-no-extension-module/0000755000000000000000000000000013776412051021527 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-pure/0000755000000000000000000000000013502206615016563 5ustar00python-maturin_1.3.2.orig/test-crates/sdist_with_path_dep/0000755000000000000000000000000014154664273020761 5ustar00python-maturin_1.3.2.orig/test-crates/sdist_with_target_path_dep/0000755000000000000000000000000014420254654022321 5ustar00python-maturin_1.3.2.orig/test-crates/some_path_dep/0000755000000000000000000000000013623517340017533 5ustar00python-maturin_1.3.2.orig/test-crates/transitive_path_dep/0000755000000000000000000000000014017270415020755 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-mixed/0000755000000000000000000000000014335330135017304 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/0000755000000000000000000000000014525221045021211 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-pure/0000755000000000000000000000000014335330135017151 5ustar00python-maturin_1.3.2.orig/test-crates/update_readme.py0000644000000000000000000000212114525221045020065 0ustar00#!/usr/bin/env python3 import re import subprocess from pathlib import Path FILES = [ "README.md", "guide/src/develop.md", "guide/src/tutorial.md", "guide/src/distribution.md", ] def main(): root = Path(subprocess.check_output(["git", "rev-parse", "--show-toplevel"], text=True).strip()) for path in FILES: content = root.joinpath(path).read_text() matcher = re.compile(r"```\nUsage: maturin (\w+) (.*?)```", re.MULTILINE | re.DOTALL) replaces = {} for command, old in matcher.findall(content): command_output = subprocess.check_output(["cargo", "run", "--", command.lower(), "--help"], text=True) new = "Usage:" + command_output.strip().split("Usage:")[1] + "\n" # Remove trailing whitespace new = re.sub(" +\n", "\n", new) old = "Usage: maturin " + command + " " + old replaces[old] = new for old, new in replaces.items(): content = content.replace(old, new) root.joinpath(path).write_text(content) if __name__ == "__main__": main() python-maturin_1.3.2.orig/test-crates/with-data/0000755000000000000000000000000014236453425016612 5ustar00python-maturin_1.3.2.orig/test-crates/workspace-inheritance/0000755000000000000000000000000014313743026021210 5ustar00python-maturin_1.3.2.orig/test-crates/workspace/0000755000000000000000000000000014025667425016731 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/0000755000000000000000000000000014151667163021627 5ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/0000755000000000000000000000000014427641577020712 5ustar00python-maturin_1.3.2.orig/test-crates/cargo-mock/Cargo.lock0000644000000000000000000001032014525221045020643 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "cargo-mock" version = "0.1.0" dependencies = [ "anyhow", "cargo_metadata", "serde_json", ] [[package]] name = "cargo-platform" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714a157da7991e23d90686b9524b9e12e0407a108647f52e9328f4b3d51ac7f" dependencies = [ "cargo-platform", "semver", "semver-parser", "serde", "serde_json", ] [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "pest" version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" dependencies = [ "thiserror", "ucd-trie", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ "semver-parser", "serde", ] [[package]] name = "semver-parser" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" dependencies = [ "pest", ] [[package]] name = "serde" version = "1.0.182" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdb30a74471f5b7a1fa299f40b4bf1be93af61116df95465b2b5fc419331e430" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.182" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f4c2c6ea4bc09b5c419012eafcdb0fcef1d9119d626c8f3a0708a5b92d38a70" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_json" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", "serde", ] [[package]] name = "syn" version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "thiserror" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "ucd-trie" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" python-maturin_1.3.2.orig/test-crates/cargo-mock/Cargo.toml0000644000000000000000000000035414357373401020703 0ustar00[package] name = "cargo-mock" version = "0.1.0" authors = ["konstin "] edition = "2021" [[bin]] name = "cargo" path = "src/main.rs" [dependencies] anyhow = "1.0.38" cargo_metadata = "0.12.3" serde_json = "1.0.62" python-maturin_1.3.2.orig/test-crates/cargo-mock/src/0000755000000000000000000000000013512427056017536 5ustar00python-maturin_1.3.2.orig/test-crates/cargo-mock/src/main.rs0000644000000000000000000001404314446366340021037 0ustar00//! Caches cargo invocations to make maturin's tests faster //! //! For each invocation, a directory inside `target/test-cache` is created with the //! name ` ... ` with some args //! stripped for path length constrains. It contains a `cargo.stdout`, a `cargo.stderr` and all //! non-rlib artifacts. use anyhow::{bail, format_err, Context, Result}; use cargo_metadata::Message; use std::env; use std::fs; use std::fs::File; use std::io; use std::io::{BufRead, BufReader, BufWriter, Write}; use std::path::Path; use std::process::Command; fn run() -> Result<()> { let base_cache_path = Path::new("target").join("test-cache"); fs::create_dir_all(&base_cache_path).context("Couldn't create cache dir")?; let env_args_os_str = env::var_os("PYTHON_SYS_EXECUTABLE").unwrap_or_default(); let env_args = env_args_os_str .into_string() .map_err(|e| format_err!("PYTHON_SYS_EXECUTABLE is not valid unicode: {:?}", e))?; let cargo_args = env::args().skip(1).collect::>().join(" "); // Assumption: Slash is the only character in the cli args that we must not use for directory names let cwd = env::current_dir().unwrap().to_string_lossy().to_string(); let env_key = env_args.replace(" ", "-").replace("/", "-"); let cargo_key = cargo_args .replace("--message-format json", "") .replace("--target-dir test-crates/targets/", "") .replace("--quiet", "") .replace(&cwd, "") .replace(" ", "-") .replace("/", "-") .replace("-----C-link-arg=-s", ""); let cache_path = base_cache_path.join(&env_key).join(&cargo_key); let stdout_path = cache_path.join("cargo.stdout"); let stderr_path = cache_path.join("cargo.stderr"); let is_cached = stderr_path.is_file(); if is_cached { let context_message: &'static str = "Failed to read from capture file"; // Write the capture stdout and stderr back out let mut stdout_file = File::open(&stdout_path).context(context_message)?; let mut stdout = io::stdout(); io::copy(&mut stdout_file, &mut stdout).context(context_message)?; let mut stderr_file = File::open(stderr_path).context(context_message)?; let mut stderr = io::stderr(); io::copy(&mut stderr_file, &mut stderr).context(context_message)?; } else { fs::create_dir_all(&cache_path).context(format!( "Failed to create cache path {}", cache_path.display() ))?; // Unmock to run the real cargo let old_path = env::var_os("PATH").expect("PATH must be set"); let mut path_split = env::split_paths(&old_path); let first_path = path_split.next().expect("PATH must have a first entry"); if !first_path.join("cargo").is_file() && !first_path.join("cargo.exe").is_file() { bail!("The first part of PATH hasn't overwritten cargo"); } let remainder = env::join_paths(path_split).expect("Expected to be able to re-join PATH"); let output = Command::new("cargo") .args(env::args().skip(1)) .env("PATH", remainder) .output() .context("Starting cargo failed")?; if !output.status.success() { std::process::exit(output.status.code().unwrap()); } let mut stdout_writer = BufWriter::new(File::create(&stdout_path).context("Failed to create stdout path")?); for line in output.stdout.lines() { let line = line.context("Failed to read line from stdout")?; println!("{}", line); stdout_writer .write_all(line.as_bytes()) .context("Failed to write to stdout file")?; stdout_writer .write_all(b"\n") .context("Failed to write to stdout file")?; } File::create(stderr_path) .and_then(|mut file| file.write_all(&output.stderr)) .context("Failed to write to stderr file")?; } copy_artifacts(&cache_path, &stdout_path, is_cached).context("Copying the artifacts failed")?; Ok(()) } /// Copy over the compiler artifacts (binaries and .so) /// If this is a new run, copy it to the cache, otherwise copy it back to its original location fn copy_artifacts(cache_path: &Path, stdout_path: &Path, is_cached: bool) -> Result<()> { // Re-reading the file makes the code a lot easier let reader = BufReader::new(File::open(&stdout_path).context("Failed to create stdout path")?); for message in Message::parse_stream(reader) { match message.context("Failed to parse message coming from cargo")? { cargo_metadata::Message::CompilerArtifact(artifact) => { let artifacts = artifact .target .crate_types .clone() .into_iter() .zip(artifact.filenames.clone()); for (artifact_type, original_path) in artifacts { if artifact_type == "lib" { continue; } let cached_path = cache_path.join( original_path .file_name() .expect("Path from cargo should have a filename"), ); if is_cached { if !original_path.is_file() { fs::copy(cached_path, original_path) .context("Failed to copy the artifact from the cache")?; } } else { fs::copy(original_path, cached_path) .context("Failed to copy the artifact to the cache")?; }; } } _ => {} } } Ok(()) } fn main() { if let Err(e) = run() { eprintln!("💥 Cargo mock failed"); for cause in e.chain() { eprintln!(" Caused by: {}", cause); } std::process::exit(1); } } python-maturin_1.3.2.orig/test-crates/cffi-mixed/.gitignore0000644000000000000000000000002614525221045020721 0ustar00cffi_mixed/cffi_mixed python-maturin_1.3.2.orig/test-crates/cffi-mixed/Cargo.lock0000644000000000000000000000021514525221045020636 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "cffi-mixed" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/cffi-mixed/Cargo.toml0000644000000000000000000000025714357373401020676 0ustar00[package] name = "cffi-mixed" version = "0.1.0" authors = ["Armin Ronacher "] edition = "2021" [lib] name = "cffi_mixed" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/cffi-mixed/Readme.md0000644000000000000000000000137613532262575020473 0ustar00# cffi-mixed A package for testing maturin with a cffi wrapper with a rust backend and a python wrapper. Read the [cffi guide](https://cffi.readthedocs.io/en/latest/index.html) to learn how to use the generated `ffi` and `lib` objects. The package contains a `Point` type implemented in rust and a `Line` class consisting of two points implemented in python ## Usage ```bash pip install . ``` ```python import cffi_mixed from cffi_mixed import Line point = cffi_mixed.lib.get_origin() point.x = 10 point.y = 10 assert cffi_mixed.lib.is_in_range(point, 15) assert Line(2, 5, 6, 8).length() == 5 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `test_cffi_mixed.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/cffi-mixed/cffi_mixed/0000755000000000000000000000000013502206615021030 5ustar00python-maturin_1.3.2.orig/test-crates/cffi-mixed/check_installed/0000755000000000000000000000000013502206615022047 5ustar00python-maturin_1.3.2.orig/test-crates/cffi-mixed/pyproject.toml0000644000000000000000000000024314525221045021646 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "cffi-mixed" dependencies = ["cffi"] [tool.maturin] bindings = "cffi" python-maturin_1.3.2.orig/test-crates/cffi-mixed/requirements_test.txt0000644000000000000000000000001414525221045023251 0ustar00pytest cffi python-maturin_1.3.2.orig/test-crates/cffi-mixed/src/0000755000000000000000000000000013502206615017522 5ustar00python-maturin_1.3.2.orig/test-crates/cffi-mixed/test_cffi_mixed.py0000644000000000000000000000101713515145114022440 0ustar00#!/usr/bin/env python3 import cffi_mixed from cffi_mixed import Line def test_in_range(): point = cffi_mixed.lib.get_origin() point.x = 10 point.y = 10 assert not cffi_mixed.lib.is_in_range(point, 14) assert cffi_mixed.lib.is_in_range(point, 15) def test_ffi(): point = cffi_mixed.ffi.new("Point *", (10, 20)) assert point.x == 10 assert point.y == 20 def test_line(): line = Line(2, 5, 6, 8) assert line.length() == 5 assert str(line) == "Line from (2.0,5.0) to (6.0,8.0)" python-maturin_1.3.2.orig/test-crates/cffi-mixed/tox.ini0000644000000000000000000000014014525221045020241 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest python-maturin_1.3.2.orig/test-crates/cffi-mixed/cffi_mixed/__init__.py0000644000000000000000000000013214357373401023144 0ustar00from .cffi_mixed import ffi, lib from .line import Line __all__ = ["ffi", "lib", "Line"] python-maturin_1.3.2.orig/test-crates/cffi-mixed/cffi_mixed/line.py0000644000000000000000000000115314525221045022331 0ustar00import math from .cffi_mixed import ffi class Line: def __init__(self, x1: float, y1: float, x2: float, y2: float): # You can pass a tuple/list or a dict as value for a public rust struct self.start = ffi.new("Point *", {"x": x1, "y": y1}) self.end = ffi.new("Point *", (x2, y2)) def length(self) -> float: """Returns the length of the line.""" return math.sqrt((self.end.x - self.start.x) ** 2 + (self.end.y - self.start.y) ** 2) def __str__(self) -> str: return "Line from ({},{}) to ({},{})".format(self.start.x, self.start.y, self.end.x, self.end.y) python-maturin_1.3.2.orig/test-crates/cffi-mixed/check_installed/check_installed.py0000644000000000000000000000035413515145114025537 0ustar00#!/usr/bin/env python3 import cffi_mixed from cffi_mixed import Line point = cffi_mixed.lib.get_origin() point.x = 10 point.y = 10 assert cffi_mixed.lib.is_in_range(point, 15) assert Line(2, 5, 6, 8).length() == 5 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/cffi-mixed/src/lib.rs0000644000000000000000000000132713515145114020641 0ustar00#[repr(C)] pub struct Point { pub x: f32, pub y: f32, } #[repr(u32)] pub enum Foo { A = 1, B, C, } #[no_mangle] pub unsafe extern "C" fn get_origin() -> Point { Point { x: 0.0, y: 0.0 } } #[no_mangle] pub unsafe extern "C" fn add_points(p1: Point, p2: Point) -> Point { Point { x: p1.x + p2.x, y: p1.y + p2.y, } } #[no_mangle] pub unsafe extern "C" fn is_in_range(point: Point, range: f32) -> bool { (point.x.powi(2) + point.y.powi(2)).sqrt() <= range } #[no_mangle] pub unsafe extern "C" fn print_foo(foo: *const Foo) { println!( "{}", match *foo { Foo::A => "a", Foo::B => "b", Foo::C => "c", } ); } python-maturin_1.3.2.orig/test-crates/cffi-pure/.gitignore0000644000000000000000000000002414525221045020564 0ustar00cffi_pure/cffi_pure python-maturin_1.3.2.orig/test-crates/cffi-pure/Cargo.lock0000644000000000000000000000021414525221045020502 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "cffi-pure" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/cffi-pure/Cargo.toml0000644000000000000000000000025514357373401020541 0ustar00[package] name = "cffi-pure" version = "0.1.0" authors = ["Armin Ronacher "] edition = "2021" [lib] name = "cffi_pure" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/cffi-pure/Readme.md0000644000000000000000000000103513532262575020330 0ustar00# cffi-pure A package for testing a crate with cffi bindings with maturin. Read the [cffi guide](https://cffi.readthedocs.io/en/latest/index.html) to learn how to use the generated `ffi` and `lib` objects. ## Usage ```bash pip install . ``` ```python import cffi_pure point = cffi_pure.lib.get_origin() point.x = 10 point.y = 10 assert cffi_pure.lib.is_in_range(point, 15) ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `test_cffi_pure.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/cffi-pure/check_installed/0000755000000000000000000000000013502206615021714 5ustar00python-maturin_1.3.2.orig/test-crates/cffi-pure/pyproject.toml0000644000000000000000000000024214525221045021512 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "cffi-pure" dependencies = ["cffi"] [tool.maturin] bindings = "cffi" python-maturin_1.3.2.orig/test-crates/cffi-pure/requirements_test.txt0000644000000000000000000000001414525221045023116 0ustar00pytest cffi python-maturin_1.3.2.orig/test-crates/cffi-pure/src/0000755000000000000000000000000013502206615017367 5ustar00python-maturin_1.3.2.orig/test-crates/cffi-pure/test_cffi_pure.py0000644000000000000000000000054213515145114022154 0ustar00#!/usr/bin/env python3 import cffi_pure def test_range(): point = cffi_pure.lib.get_origin() point.x = 10 point.y = 10 assert not cffi_pure.lib.is_in_range(point, 14) assert cffi_pure.lib.is_in_range(point, 15) def test_ffi(): point = cffi_pure.ffi.new("Point *", (10, 20)) assert point.x == 10 assert point.y == 20 python-maturin_1.3.2.orig/test-crates/cffi-pure/tox.ini0000644000000000000000000000014014525221045020106 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest python-maturin_1.3.2.orig/test-crates/cffi-pure/check_installed/check_installed.py0000644000000000000000000000024513515145114025403 0ustar00#!/usr/bin/env python3 import cffi_pure point = cffi_pure.lib.get_origin() point.x = 10 point.y = 10 assert cffi_pure.lib.is_in_range(point, 15) print("SUCCESS") python-maturin_1.3.2.orig/test-crates/cffi-pure/src/lib.rs0000644000000000000000000000110013502206615020473 0ustar00#[repr(C)] pub struct Point { pub x: f32, pub y: f32, } #[repr(u32)] pub enum Foo { A = 1, B, C, } #[no_mangle] pub unsafe extern "C" fn get_origin() -> Point { Point { x: 0.0, y: 0.0 } } #[no_mangle] pub unsafe extern "C" fn is_in_range(point: Point, range: f32) -> bool { (point.x.powi(2) + point.y.powi(2)).sqrt() <= range } #[no_mangle] pub unsafe extern "C" fn print_foo(foo: *const Foo) { println!( "{}", match *foo { Foo::A => "a", Foo::B => "b", Foo::C => "c", } ); } python-maturin_1.3.2.orig/test-crates/hello-world/Cargo.lock0000644000000000000000000000021614525221045021054 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "hello-world" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/hello-world/Cargo.toml0000644000000000000000000000033714357373401021112 0ustar00[package] name = "hello-world" version = "0.1.0" authors = ["konstin "] edition = "2021" # Test references to out-of-project files readme = "../../README.md" default-run = "hello-world" [dependencies] python-maturin_1.3.2.orig/test-crates/hello-world/check_installed/0000755000000000000000000000000013502206615022264 5ustar00python-maturin_1.3.2.orig/test-crates/hello-world/pyproject.toml0000644000000000000000000000032214525221045022061 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [tool.maturin] bindings = "bin" [[tool.maturin.targets]] name = "hello-world" bindings = "bin" [[tool.maturin.targets]] name = "foo" python-maturin_1.3.2.orig/test-crates/hello-world/src/0000755000000000000000000000000013502206615017737 5ustar00python-maturin_1.3.2.orig/test-crates/hello-world/check_installed/check_installed.py0000644000000000000000000000060414323740255025757 0ustar00from subprocess import check_output def main(): output = check_output(["hello-world"]).decode("utf-8").strip() if not output == "Hello, world!": raise Exception(output) output = check_output(["foo"]).decode("utf-8").strip() if not output == "🦀 Hello, world! 🦀": raise Exception(output) print("SUCCESS") if __name__ == "__main__": main() python-maturin_1.3.2.orig/test-crates/hello-world/src/bin/0000755000000000000000000000000014247567646020534 5ustar00python-maturin_1.3.2.orig/test-crates/hello-world/src/main.rs0000644000000000000000000000005513502206615021231 0ustar00fn main() { println!("Hello, world!"); } python-maturin_1.3.2.orig/test-crates/hello-world/src/bin/foo.rs0000644000000000000000000000006714320510640021636 0ustar00fn main() { println!("🦀 Hello, world! 🦀"); } python-maturin_1.3.2.orig/test-crates/lib_with_disallowed_lib/Cargo.lock0000644000000000000000000002014714525221045023467 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cc" version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c6b2562119bf28c3439f7f02db99faf0aa1a8cdfe5772a2ee155d32227239f0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "lib_with_disallowed_lib" version = "0.1.0" dependencies = [ "libz-sys", "pyo3", ] [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libz-sys" version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "pkg-config", "vcpkg", ] [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "pkg-config" version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "vcpkg" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/lib_with_disallowed_lib/Cargo.toml0000644000000000000000000000044414446366340023522 0ustar00[package] name = "lib_with_disallowed_lib" version = "0.1.0" authors = ["messense "] edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] libz-sys = { version = "1.1.2", default-features = false } pyo3 = { version = "0.19.0", features = ["extension-module"] } python-maturin_1.3.2.orig/test-crates/lib_with_disallowed_lib/pyproject.toml0000644000000000000000000000011214525221045024464 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/lib_with_disallowed_lib/src/0000755000000000000000000000000014020203517022337 5ustar00python-maturin_1.3.2.orig/test-crates/lib_with_disallowed_lib/src/lib.rs0000644000000000000000000000066314121272122023460 0ustar00use std::os::raw::c_ulong; use pyo3::prelude::*; #[link(name = "z")] extern "C" { fn gzflags() -> c_ulong; } #[pyfunction] fn add(x: usize, y: usize) -> usize { let _version = unsafe { libz_sys::zlibVersion() }; let _flags = unsafe { gzflags() }; let sum = x + y; sum } #[pymodule] fn lib_with_disallowed_lib(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(add))?; Ok(()) } python-maturin_1.3.2.orig/test-crates/lib_with_path_dep/Cargo.toml0000644000000000000000000000055614446366340022335 0ustar00[package] name = "lib_with_path_dep" version = "0.1.0" authors = ["konstin "] edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] # Don't use the macros feature, which makes compilation much faster pyo3 = { version = "0.19.0", default-features = false, features = ["extension-module"] } some_path_dep = { path = "../some_path_dep" } python-maturin_1.3.2.orig/test-crates/lib_with_path_dep/pyproject.toml0000644000000000000000000000011214525221045023273 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/lib_with_path_dep/src/0000755000000000000000000000000013623517340021160 5ustar00python-maturin_1.3.2.orig/test-crates/lib_with_path_dep/test.sh0000644000000000000000000000213114017270415021676 0ustar00#!/bin/bash set -ex # The problem with testing this is that we need to go through the PEP 517 so we need a wheel of maturin, # which makes everything complex and slow cd "$(git rev-parse --show-toplevel)" # Go to project root pip uninstall -y lib_with_path_dep 2> /dev/null # Make sure it's actually removed python -c "from lib_with_path_dep import add; assert add(2,2)==4" 2> /dev/null && exit 1 || true # Build maturin wheel cargo run -- build -b bin --strip --manylinux off cargo run -- pep517 write-sdist --manifest-path test-crates/lib_with_path_dep/Cargo.toml --sdist-directory test-crates/lib_with_path_dep/target/wheels # Slower alternative: cargo run -- build -m test-crates/lib_with_path_dep/Cargo.toml -i python # See https://github.com/pypa/pip/issues/6041 # First, use the maturin wheel we just build # Then install lib_with_path_dep from the sdist we build pip install \ --find-links target/wheels/ \ --force-reinstall --no-binary lib_with_path_dep --find-links test-crates/lib_with_path_dep/target/wheels lib_with_path_dep python -c "from lib_with_path_dep import add; assert add(2,2)==4" python-maturin_1.3.2.orig/test-crates/lib_with_path_dep/src/lib.rs0000644000000000000000000001243114017270415022272 0ustar00/// We speed up compilation by using the expanded output and then deselecting the macro feature /// of pyo3, removing syn and proc macros from the dependencies use pyo3::prelude::*; fn add(x: usize, y: usize) -> usize { let sum = some_path_dep::add(x, y); debug_assert!(some_path_dep::is_sum(x, y, sum)); sum } unsafe extern "C" fn __pyo3_raw_add( _slf: *mut pyo3::ffi::PyObject, _args: *mut pyo3::ffi::PyObject, _kwargs: *mut pyo3::ffi::PyObject, ) -> *mut pyo3::ffi::PyObject { const _LOCATION: &'static str = "add()"; let pool = ::pyo3::GILPool::new(); let unwind_safe_py = std::panic::AssertUnwindSafe(pool.python()); let result = match std::panic::catch_unwind(move || -> ::pyo3::PyResult<_> { let _py = *unwind_safe_py; ::pyo3::callback::convert(_py, { let _args = _py.from_borrowed_ptr::(_args); let _kwargs: Option<&pyo3::types::PyDict> = _py.from_borrowed_ptr_or_opt(_kwargs); { const PARAMS: &'static [pyo3::derive_utils::ParamDescription] = &[ pyo3::derive_utils::ParamDescription { name: "x", is_optional: false, kw_only: false, }, pyo3::derive_utils::ParamDescription { name: "y", is_optional: false, kw_only: false, }, ]; let mut output = [None; 2usize]; let mut _args = _args; let mut _kwargs = _kwargs; let (_args, _kwargs) = pyo3::derive_utils::parse_fn_args( Some(_LOCATION), PARAMS, _args, _kwargs, false, false, &mut output, )?; let arg0 = match output[0usize] { Some(_obj) => _obj .extract() .map_err(|e| pyo3::derive_utils::argument_extraction_error(_py, "x", e))?, None => { panic!("Failed to extract required method argument") } }; let arg1 = match output[1usize] { Some(_obj) => _obj .extract() .map_err(|e| pyo3::derive_utils::argument_extraction_error(_py, "y", e))?, None => { panic!("Failed to extract required method argument") } }; add(arg0, arg1) } }) }) { Ok(result) => result, Err(e) => { if let Some(string) = e.downcast_ref::() { Err(::pyo3::panic::PanicException::new_err((string.clone(),))) } else if let Some(s) = e.downcast_ref::<&str>() { Err(::pyo3::panic::PanicException::new_err((s.to_string(),))) } else { Err(::pyo3::panic::PanicException::new_err(( "panic from Rust code", ))) } } }; result.unwrap_or_else(|e| { e.restore(pool.python()); ::pyo3::callback::callback_error() }) } pub(crate) fn __pyo3_get_function_add<'a>( args: impl Into>, ) -> pyo3::PyResult<&'a pyo3::types::PyCFunction> { let name = "add\u{0}"; let name = std::ffi::CStr::from_bytes_with_nul(name.as_bytes()).unwrap(); let doc = std::ffi::CStr::from_bytes_with_nul(b"\x00").unwrap(); pyo3::types::PyCFunction::internal_new( name, doc, pyo3::class::PyMethodType::PyCFunctionWithKeywords(__pyo3_raw_add), pyo3::ffi::METH_VARARGS | pyo3::ffi::METH_KEYWORDS, args.into(), ) } fn pyo3_pure(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(&__pyo3_get_function_add)?; Ok(()) } #[no_mangle] #[allow(non_snake_case)] #[doc = r" This autogenerated function is called by the python interpreter when importing"] #[doc = r" the module."] pub unsafe extern "C" fn PyInit_lib_with_path_dep() -> *mut pyo3::ffi::PyObject { use pyo3::derive_utils::ModuleDef; const NAME: &'static str = "pyo3_pure\u{0}"; static MODULE_DEF: ModuleDef = unsafe { ModuleDef::new(NAME) }; let pool = ::pyo3::GILPool::new(); let unwind_safe_py = std::panic::AssertUnwindSafe(pool.python()); let result = match std::panic::catch_unwind(move || -> ::pyo3::PyResult<_> { let _py = *unwind_safe_py; ::pyo3::callback::convert(_py, MODULE_DEF.make_module("", pyo3_pure)) }) { Ok(result) => result, Err(e) => { if let Some(string) = e.downcast_ref::() { Err(::pyo3::panic::PanicException::new_err((string.clone(),))) } else if let Some(s) = e.downcast_ref::<&str>() { Err(::pyo3::panic::PanicException::new_err((s.to_string(),))) } else { Err(::pyo3::panic::PanicException::new_err(( "panic from Rust code", ))) } } }; result.unwrap_or_else(|e| { e.restore(pool.python()); ::pyo3::callback::callback_error() }) } python-maturin_1.3.2.orig/test-crates/license-test/AUTHORS.txt0000644000000000000000000000001014525221045021174 0ustar00AUTHORS python-maturin_1.3.2.orig/test-crates/license-test/Cargo.lock0000644000000000000000000000021714525221045021224 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "license-test" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/license-test/Cargo.toml0000644000000000000000000000021714357373401021256 0ustar00[package] name = "license-test" version = "0.1.0" authors = ["konstin "] edition = "2021" license = "MIT" [dependencies] python-maturin_1.3.2.orig/test-crates/license-test/LICENCE.txt0000644000000000000000000000001014525221045021111 0ustar00LICENCE python-maturin_1.3.2.orig/test-crates/license-test/LICENSE0000644000000000000000000000001014525221045020313 0ustar00LICENSE python-maturin_1.3.2.orig/test-crates/license-test/NOTICE.md0000644000000000000000000000001114525221045020612 0ustar00# NOTICE python-maturin_1.3.2.orig/test-crates/license-test/_vendor/0000755000000000000000000000000014221614457020761 5ustar00python-maturin_1.3.2.orig/test-crates/license-test/check_installed/0000755000000000000000000000000014221614457022441 5ustar00python-maturin_1.3.2.orig/test-crates/license-test/pyproject.toml0000644000000000000000000000025714525221045022237 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "license-test" license = { file = "LICENCE.txt" } [tool.maturin] bindings = "bin" python-maturin_1.3.2.orig/test-crates/license-test/src/0000755000000000000000000000000014221614457020114 5ustar00python-maturin_1.3.2.orig/test-crates/license-test/_vendor/AUTHORS.txt0000644000000000000000000000001014221614457022636 0ustar00AUTHORS python-maturin_1.3.2.orig/test-crates/license-test/_vendor/COPYING.md0000644000000000000000000000001214221614457022404 0ustar00# COPYING python-maturin_1.3.2.orig/test-crates/license-test/_vendor/LICENCE0000644000000000000000000000001014221614457021735 0ustar00LICENCE python-maturin_1.3.2.orig/test-crates/license-test/_vendor/LICENSE-APACHE.txt0000644000000000000000000000001714221614457023521 0ustar00LICENSE-APACHE python-maturin_1.3.2.orig/test-crates/license-test/_vendor/NOTICE0000644000000000000000000000000714525221045021654 0ustar00NOTICE python-maturin_1.3.2.orig/test-crates/license-test/_vendor/nested/0000755000000000000000000000000014221614457022243 5ustar00python-maturin_1.3.2.orig/test-crates/license-test/_vendor/nested/LICENSE-BSD0000644000000000000000000000001414221614457023651 0ustar00LICENSE-BSD python-maturin_1.3.2.orig/test-crates/license-test/_vendor/nested/NOTICE.md0000644000000000000000000000001114221614457023536 0ustar00# NOTICE python-maturin_1.3.2.orig/test-crates/license-test/check_installed/check_installed.py0000644000000000000000000000037014221614457026127 0ustar00from subprocess import check_output def main(): output = check_output(["hello-world"]).decode("utf-8").strip() if not output == "Hello, world!": raise Exception(output) print("SUCCESS") if __name__ == "__main__": main() python-maturin_1.3.2.orig/test-crates/license-test/src/main.rs0000644000000000000000000000005514221614457021406 0ustar00fn main() { println!("Hello, world!"); } python-maturin_1.3.2.orig/test-crates/pyo3-abi3-without-version/Cargo.lock0000644000000000000000000001642014525221045023522 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-abi3-without-version" version = "0.1.0" dependencies = [ "pyo3", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-abi3-without-version/Cargo.toml0000644000000000000000000000042514446366340023555 0ustar00[package] name = "pyo3-abi3-without-version" version = "0.1.0" authors = ["konstin "] edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = ["abi3", "extension-module"] } [lib] name = "pyo3_abi3_without_version" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-abi3-without-version/src/0000755000000000000000000000000013777031315022410 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-abi3-without-version/src/lib.rs0000644000000000000000000000000014525221045023503 0ustar00python-maturin_1.3.2.orig/test-crates/pyo3-bin/Cargo.lock0000644000000000000000000001637714525221045020303 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-bin" version = "0.1.0" dependencies = [ "pyo3", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-bin/Cargo.toml0000644000000000000000000000035714446366340020327 0ustar00[package] name = "pyo3-bin" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] pyo3 = { version = "0.19.0", features = ["auto-initialize"] } python-maturin_1.3.2.orig/test-crates/pyo3-bin/check_installed/0000755000000000000000000000000014244316203021473 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-bin/src/0000755000000000000000000000000014244316203017146 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-bin/check_installed/check_installed.py0000644000000000000000000000111414244316203025156 0ustar00import os import platform import sys from subprocess import check_output def main(): if platform.system().lower() == "windows": # Add sys.base_prefix which contains python3y.dll to PATH # otherwise running `pyo3-bin` might return exit code 3221225781 path = os.environ["PATH"] path = path + os.pathsep + sys.base_prefix os.environ["PATH"] = path output = check_output(["pyo3-bin"]).decode("utf-8").strip() if not output == "Hello, world!": raise Exception(output) print("SUCCESS") if __name__ == "__main__": main() python-maturin_1.3.2.orig/test-crates/pyo3-bin/src/main.rs0000644000000000000000000000047114525221045020443 0ustar00use pyo3::prelude::*; fn main() -> PyResult<()> { Python::with_gil(|py| { let builtins = PyModule::import(py, "builtins")?; let total: i32 = builtins.getattr("sum")?.call1((vec![1, 2, 3],))?.extract()?; assert_eq!(total, 6); println!("Hello, world!"); Ok(()) }) } python-maturin_1.3.2.orig/test-crates/pyo3-feature/Cargo.lock0000644000000000000000000001640314525221045021154 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-feature" version = "0.7.3" dependencies = [ "pyo3", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-feature/Cargo.toml0000644000000000000000000000025614446366340021210 0ustar00[package] authors = ["konstin "] name = "pyo3-feature" version = "0.7.3" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", optional = true } python-maturin_1.3.2.orig/test-crates/pyo3-feature/Readme.md0000644000000000000000000000005214525221045020757 0ustar00A crate where pyo3 is an optional feature python-maturin_1.3.2.orig/test-crates/pyo3-feature/src/0000755000000000000000000000000013541625100020027 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-feature/src/lib.rs0000644000000000000000000000000013541625100021131 0ustar00python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/Cargo.lock0000644000000000000000000000236614525221045021241 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "pyo3-build-config" version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cb946f5ac61bb61a5014924910d936ebd2b23b705f7a4a3c40b05c720b079a3" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd4d7c5337821916ea2a1d21d1092e8443cf34879e53a0ac653fbb98f44ff65c" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-ffi-pure" version = "1.0.0" dependencies = [ "pyo3-ffi", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/Cargo.toml0000644000000000000000000000033214446366340021265 0ustar00[package] name = "pyo3-ffi-pure" version = "1.0.0" edition = "2021" [dependencies] pyo3-ffi = { version = "0.18.1", features = ["abi3-py37", "extension-module"] } [lib] name = "pyo3_ffi_pure" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/LICENSE0000644000000000000000000000206014200655124020327 0ustar00Copyright (c) 2022-present maturin contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/README.md0000644000000000000000000000035714327433517020622 0ustar00# pyo3-ffi-pure A package with pyo3-ffi bindings for testing maturin. ## Usage ```python import pyo3_ffi_pure assert pyo3_ffi_pure.sum(2, 40) == 42 ``` ## Testing Install `pytest` and run: ```bash pytest -v test_pyo3_ffi_pure.py ``` python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/check_installed/0000755000000000000000000000000014200655124022440 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/pyproject.toml0000644000000000000000000000054414525221045022244 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-ffi-pure" classifiers = [ "Programming Language :: Rust" ] description = "Tests compilation of packages using pyo3-ffi bindings" readme = "README.md" maintainers = [ {name = "messense", email = "messense@icloud.com"} ] license = { file = "LICENSE" } python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/src/0000755000000000000000000000000014200655124020113 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/test_pyo3_ffi_pure.py0000644000000000000000000000015414200655124023506 0ustar00#!/usr/bin/env python3 import pyo3_ffi_pure def test_static(): assert pyo3_ffi_pure.sum(2, 40) == 42 python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/check_installed/check_installed.py0000755000000000000000000000014514200655124026131 0ustar00#!/usr/bin/env python3 import pyo3_ffi_pure assert pyo3_ffi_pure.sum(2, 40) == 42 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-ffi-pure/src/lib.rs0000644000000000000000000000277314207045341021241 0ustar00use pyo3_ffi::*; use std::os::raw::c_char; #[allow(non_snake_case)] #[no_mangle] pub unsafe extern "C" fn PyInit_pyo3_ffi_pure() -> *mut PyObject { let module_name = "pyo3_ffi_pure\0".as_ptr() as *const c_char; let init = PyModuleDef { m_base: PyModuleDef_HEAD_INIT, m_name: module_name, m_doc: std::ptr::null(), m_size: 0, m_methods: std::ptr::null_mut(), m_slots: std::ptr::null_mut(), m_traverse: None, m_clear: None, m_free: None, }; let mptr = PyModule_Create(Box::into_raw(Box::new(init))); let wrapped_sum = PyMethodDef { ml_name: "sum\0".as_ptr() as *const c_char, ml_meth: PyMethodDefPointer { PyCFunctionWithKeywords: sum, }, ml_flags: METH_VARARGS | METH_KEYWORDS, ml_doc: std::ptr::null_mut(), }; PyModule_AddObject( mptr, "sum\0".as_ptr() as *const c_char, PyCFunction_NewEx( Box::into_raw(Box::new(wrapped_sum)), std::ptr::null_mut(), PyUnicode_InternFromString(module_name), ), ); mptr } #[no_mangle] pub unsafe extern "C" fn sum( _self: *mut PyObject, args: *mut PyObject, _kwds: *mut PyObject, ) -> *mut PyObject { // this is a minimal test of compilation, not good example code let val_a = PyTuple_GetItem(args, 0); let val_b = PyTuple_GetItem(args, 1); let res: i64 = PyLong_AsLongLong(val_a) + PyLong_AsLongLong(val_b); PyLong_FromLongLong(res) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/Cargo.lock0000644000000000000000000001641214525221045022437 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed-implicit" version = "2.1.3" dependencies = [ "pyo3", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/Cargo.toml0000644000000000000000000000055414525221045022462 0ustar00[package] authors = ["Kevin Patterson "] name = "pyo3-mixed-implicit" version = "2.1.3" description = "Implements a dummy function combining rust and python" readme = "README.md" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module"] } [lib] name = "pyo3_mixed_implicit" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/README.md0000644000000000000000000000067614525221045022016 0ustar00# pyo3-mixed-implicit A package for testing maturin with a mixed pyo3/python project with an implicit namespace package and Rust submodule. ## Usage ```bash pip install . ``` ```python import pyo3_mixed_implicit assert pyo3_mixed_implicit.some_rust.get_22() == 22 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `tests/test_pyo3_mixed_implicit.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/check_installed/0000755000000000000000000000000014525221045023642 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/pyproject.toml0000644000000000000000000000051614525221045023444 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3_mixed_implicit" classifiers = [ "Programming Language :: Python", "Programming Language :: Rust" ] [tool.maturin] features = ["pyo3/extension-module"] module-name = "pyo3_mixed_implicit.some_rust.rust" python-source = "python" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/0000755000000000000000000000000014525221045022047 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/src/0000755000000000000000000000000014525221045021315 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/tests/0000755000000000000000000000000014525221045021670 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/tox.ini0000644000000000000000000000014714525221045022043 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest tests/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/check_installed/check_installed.py0000644000000000000000000000024514525221045027331 0ustar00#!/usr/bin/env python3 import pyo3_mixed_implicit.some_rust as some_rust assert some_rust.get_22() == 22 assert some_rust.double(lambda: 4) == 8 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/pyo3_mixed_implicit/0000755000000000000000000000000014525221045026021 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/pyo3_mixed_implicit/some_rust/0000755000000000000000000000000014525221045030041 5ustar00././@PaxHeader0000000000000000000000000000016400000000000010216 xustar00116 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/pyo3_mixed_implicit/some_rust/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/pyo3_mixed_implicit/some_rust/__ini0000644000000000000000000000012414525221045031036 0ustar00from .rust import get_22 from .double import double __all__ = ["get_22", "double"] ././@PaxHeader0000000000000000000000000000016200000000000010214 xustar00114 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/pyo3_mixed_implicit/some_rust/double.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/python/pyo3_mixed_implicit/some_rust/doubl0000644000000000000000000000013414525221045031067 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/src/lib.rs0000644000000000000000000000030314525221045022425 0ustar00use pyo3::prelude::*; #[pyfunction] fn get_22() -> usize { 22 } #[pymodule] fn rust(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(get_22))?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-implicit/tests/test_pyo3_mixed_implicit.py0000644000000000000000000000031714525221045027254 0ustar00#!/usr/bin/env python3 import pyo3_mixed_implicit.some_rust as some_rust def test_get_rust_and_python(): assert some_rust.get_22() == 22 assert some_rust.double(lambda: 4) == 8 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/Cargo.lock0000644000000000000000000001733114525221045023700 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cc" version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c6b2562119bf28c3439f7f02db99faf0aa1a8cdfe5772a2ee155d32227239f0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "python3-dll-a", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed-include-exclude" version = "2.1.3" dependencies = [ "pyo3", ] [[package]] name = "python3-dll-a" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f07cd4412be8fa09a721d40007c483981bbe072cd6a21f2e83e04ec8f8343f" dependencies = [ "cc", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/Cargo.toml0000644000000000000000000000052414446366340023731 0ustar00[package] authors = [] name = "pyo3-mixed-include-exclude" version = "2.1.3" description = "Implements a dummy function combining rust and python" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = [ "extension-module", "generate-import-lib", ] } [lib] name = "pyo3_mixed_include_exclude" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/README.md0000644000000000000000000000067414332477061023263 0ustar00# pyo3-mixed-include-exclude A package for testing maturin with a mixed pyo3/python project with include and exclude configurations. ## Usage ```bash pip install . ``` ```python import pyo3_mixed_include_exclude assert pyo3_mixed_include_exclude.get_42() == 42 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `test_pyo3_mixed_include_exclude.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/check_installed/0000755000000000000000000000000014332477061025111 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/0000755000000000000000000000000014332477061027271 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyproject.toml0000644000000000000000000000102714525221045024702 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-mixed-include-exclude" classifiers = ["Programming Language :: Python", "Programming Language :: Rust"] requires-python = ">=3.7" [project.scripts] get_42 = "pyo3_mixed_include_exclude:get_42" [tool.maturin] include = [ "pyo3_mixed_include_exclude/include_this_file", "missing", "README.md", ] exclude = [ "pyo3_mixed_include_exclude/exclude_this_file", "pyo3_mixed_include_exclude/.gitignore", "tests/**/*", "unused", ] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/src/0000755000000000000000000000000014332477061022564 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/tests/0000755000000000000000000000000014332477061023137 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/tox.ini0000644000000000000000000000014714332477061023312 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest tests/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/check_installed/check_installed.py0000755000000000000000000000017614332664715030612 0ustar00#!/usr/bin/env python3 import pyo3_mixed_include_exclude assert pyo3_mixed_include_exclude.get_42() == 42 print("SUCCESS") ././@PaxHeader0000000000000000000000000000016000000000000010212 xustar00112 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/.gitignore python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/.gitigno0000644000000000000000000000002214332536737030732 0ustar00include_this_file ././@PaxHeader0000000000000000000000000000016100000000000010213 xustar00113 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/__init__0000644000000000000000000000021114332477061030745 0ustar00from .python_module.double import double from .pyo3_mixed_include_exclude import get_21 def get_42() -> int: return double(get_21) ././@PaxHeader0000000000000000000000000000016700000000000010221 xustar00119 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/exclude_this_file python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/exclude_0000644000000000000000000000000014332536737031000 0ustar00././@PaxHeader0000000000000000000000000000016700000000000010221 xustar00119 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/include_this_file python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/include_0000644000000000000000000000000014332536737030772 0ustar00././@PaxHeader0000000000000000000000000000016400000000000010216 xustar00116 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/python_module/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/python_m0000755000000000000000000000000014332477061031047 5ustar00././@PaxHeader0000000000000000000000000000017700000000000010222 xustar00127 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/python_module/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/python_m0000644000000000000000000000000014332477061031037 0ustar00././@PaxHeader0000000000000000000000000000017500000000000010220 xustar00125 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/python_module/double.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/pyo3_mixed_include_exclude/python_m0000644000000000000000000000013414332477061031047 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/src/lib.rs0000644000000000000000000000033114332477061023675 0ustar00use pyo3::prelude::*; #[pyfunction] fn get_21() -> usize { 21 } #[pymodule] fn pyo3_mixed_include_exclude(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(get_21))?; Ok(()) } ././@PaxHeader0000000000000000000000000000016300000000000010215 xustar00115 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/tests/test_pyo3_mixed_include_exclude.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-include-exclude/tests/test_pyo3_mixed_include_exclu0000644000000000000000000000020414332477061031100 0ustar00#!/usr/bin/env python3 import pyo3_mixed_include_exclude def test_get_42(): assert pyo3_mixed_include_exclude.get_42() == 42 python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/Cargo.lock0000644000000000000000000001641314525221045022544 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed-py-subdir" version = "2.1.3" dependencies = [ "pyo3", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/Cargo.toml0000644000000000000000000000053614446366340022600 0ustar00[package] authors = ["konstin "] name = "pyo3-mixed-py-subdir" version = "2.1.3" description = "Implements a dummy function combining rust and python" readme = "README.md" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module"] } [lib] name = "pyo3_mixed_py_subdir" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/README.md0000644000000000000000000000052414327433517022123 0ustar00# pyo3-mixed A package for testing maturin with a mixed pyo3/python project. ## Usage ```bash pip install . ``` ```python import pyo3_mixed assert pyo3_mixed.get_42() == 42 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `test_pyo3_mixed.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/check_installed/0000755000000000000000000000000014103202202023730 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/pyproject.toml0000644000000000000000000000057414525221045023554 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-mixed-py-subdir" classifiers = [ "Programming Language :: Python", "Programming Language :: Rust" ] requires-python = ">=3.6" [project.scripts] get_42 = "pyo3_mixed_py_subdir:get_42" [tool.maturin] module-name = "pyo3_mixed_py_subdir._pyo3_mixed" python-source = "python" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/0000755000000000000000000000000014103202202022135 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/src/0000755000000000000000000000000014103202202021403 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/test_pyo3_mixed.py0000644000000000000000000000017414103202202024307 0ustar00#!/usr/bin/env python3 import pyo3_mixed_py_subdir as pyo3_mixed def test_get_42(): assert pyo3_mixed.get_42() == 42 python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/tox.ini0000644000000000000000000000014014525221045022140 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/check_installed/check_installed.py0000755000000000000000000000016614103202202027424 0ustar00#!/usr/bin/env python3 import pyo3_mixed_py_subdir as pyo3_mixed assert pyo3_mixed.get_42() == 42 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/0000755000000000000000000000000014103202202026275 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/__init__.py0000644000000000000000000000017214323740255030431 0ustar00from .python_module.double import double from ._pyo3_mixed import get_21 def get_42() -> int: return double(get_21) ././@PaxHeader0000000000000000000000000000015700000000000010220 xustar00111 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/python_module/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/python_module0000755000000000000000000000000014103202202031104 5ustar00././@PaxHeader0000000000000000000000000000017200000000000010215 xustar00122 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/python_module/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/python_module0000644000000000000000000000000014103202202031074 0ustar00././@PaxHeader0000000000000000000000000000017000000000000010213 xustar00120 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/python_module/double.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/python/pyo3_mixed_py_subdir/python_module0000644000000000000000000000013414103202202031104 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() python-maturin_1.3.2.orig/test-crates/pyo3-mixed-py-subdir/src/lib.rs0000644000000000000000000000031214323740255022536 0ustar00use pyo3::prelude::*; #[pyfunction] fn get_21() -> usize { 21 } #[pymodule] fn _pyo3_mixed(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(get_21))?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/README.md0000644000000000000000000000032314321003640020751 0ustar00# pyo3-mixed src layout A package for testing maturin with a src layout mixed pyo3/python project. ## Usage ```bash pip install . ``` ```python import pyo3_mixed_src assert pyo3_mixed_src.get_42() == 42 ``` python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/check_installed/0000755000000000000000000000000014321003640022610 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/pyproject.toml0000644000000000000000000000052414525221045022420 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-mixed-src" classifiers = [ "Programming Language :: Python", "Programming Language :: Rust" ] requires-python = ">=3.7" [project.scripts] get_42 = "pyo3_mixed_src:get_42" [tool.maturin] python-packages = ["pyo3_mixed_src", "tests"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/rust/0000755000000000000000000000000014321003640020471 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/0000755000000000000000000000000014321003640020263 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/tox.ini0000644000000000000000000000015314321003640021006 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest src/tests/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/check_installed/check_installed.py0000755000000000000000000000016014321003640026276 0ustar00#!/usr/bin/env python3 import pyo3_mixed_src as pyo3_mixed assert pyo3_mixed.get_42() == 42 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/rust/Cargo.lock0000644000000000000000000001632114446366340022422 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cc" version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" [[package]] name = "libc" version = "0.2.134" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" [[package]] name = "lock_api" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-sys", ] [[package]] name = "proc-macro2" version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cffef52f74ec3b1a1baf295d9b8fcc3070327aefc39a6d00656b13c1d0b8885c" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "713eccf888fb05f1a96eb78c0dbc51907fee42b3377272dc902eb38985f418d5" dependencies = [ "once_cell", "python3-dll-a", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b2ecbdcfb01cbbf56e179ce969a048fd7305a66d4cdf3303e0da09d69afe4c3" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b78fdc0899f2ea781c463679b20cb08af9247febc8d052de941951024cd8aea0" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60da7b84f1227c3e2fe7593505de274dcf4c8928b4e0a1c23d551a14e4e80a0f" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed-src" version = "2.1.3" dependencies = [ "pyo3", ] [[package]] name = "python3-dll-a" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a915bd72824962bf190bbd3e8a044cccb695d1409f73ff5493712eda5136c7a8" dependencies = [ "cc", ] [[package]] name = "quote" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "smallvec" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "syn" version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" [[package]] name = "unicode-ident" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unindent" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112" [[package]] name = "windows-sys" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_i686_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_x86_64_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/rust/Cargo.toml0000644000000000000000000000052414446366340022443 0ustar00[package] authors = ["konstin "] name = "pyo3-mixed-src" version = "2.1.3" description = "Implements a dummy function combining rust and python" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module", "generate-import-lib"] } [lib] name = "pyo3_mixed_src" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/rust/src/0000755000000000000000000000000014321003640021260 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/rust/src/lib.rs0000644000000000000000000000031514321003640022373 0ustar00use pyo3::prelude::*; #[pyfunction] fn get_21() -> usize { 21 } #[pymodule] fn pyo3_mixed_src(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(get_21))?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/pyo3_mixed_src/0000755000000000000000000000000014321003640023212 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/tests/0000755000000000000000000000000014321003640021425 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/pyo3_mixed_src/__init__.py0000644000000000000000000000017514321003640025326 0ustar00from .python_module.double import double from .pyo3_mixed_src import get_21 def get_42() -> int: return double(get_21) python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/pyo3_mixed_src/python_module/0000755000000000000000000000000014321003640026100 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/pyo3_mixed_src/python_module/__init__.py0000644000000000000000000000000014321003640030177 0ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/pyo3_mixed_src/python_module/double.py0000644000000000000000000000013414321003640027722 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() python-maturin_1.3.2.orig/test-crates/pyo3-mixed-src/src/tests/test_pyo3_mixed.py0000644000000000000000000000016614321003640025121 0ustar00#!/usr/bin/env python3 import pyo3_mixed_src as pyo3_mixed def test_get_42(): assert pyo3_mixed.get_42() == 42 python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/Cargo.lock0000644000000000000000000001641314525221045022625 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed-submodule" version = "2.1.3" dependencies = [ "pyo3", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/Cargo.toml0000644000000000000000000000053614446366340022661 0ustar00[package] authors = ["konstin "] name = "pyo3-mixed-submodule" version = "2.1.3" description = "Implements a dummy function combining rust and python" readme = "README.md" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module"] } [lib] name = "pyo3_mixed_submodule" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/README.md0000644000000000000000000000062614327433517022207 0ustar00# pyo3-mixed-submodule A package for testing maturin with a mixed pyo3/python project with Rust submodule. ## Usage ```bash pip install . ``` ```python import pyo3_mixed_submodule assert pyo3_mixed_submodule.get_42() == 42 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `tests/test_pyo3_mixed_submodule.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/check_installed/0000755000000000000000000000000014040032435024022 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/0000755000000000000000000000000014040032435025045 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyproject.toml0000644000000000000000000000042414525221045023627 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-mixed-submodule" classifiers = [ "Programming Language :: Python", "Programming Language :: Rust" ] [tool.maturin] module-name = "pyo3_mixed_submodule.rust_module.rust" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/src/0000755000000000000000000000000014040032435021475 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/tests/0000755000000000000000000000000014114074430022053 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/tox.ini0000644000000000000000000000014714114162624022231 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest tests/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/check_installed/check_installed.py0000755000000000000000000000016214040032435027512 0ustar00#!/usr/bin/env python3 import pyo3_mixed_submodule assert pyo3_mixed_submodule.get_42() == 42 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/__init__.py0000644000000000000000000000017714040032435027163 0ustar00from .python_module.double import double from .rust_module.rust import get_21 def get_42() -> int: return double(get_21) python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/python_module/0000755000000000000000000000000014040032435027733 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/rust_module/0000755000000000000000000000000014040032435027407 5ustar00././@PaxHeader0000000000000000000000000000016300000000000010215 xustar00115 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/python_module/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/python_module/__init0000644000000000000000000000000014040032435031105 0ustar00././@PaxHeader0000000000000000000000000000016100000000000010213 xustar00113 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/python_module/double.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/python_module/double0000644000000000000000000000013414040032435031126 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() ././@PaxHeader0000000000000000000000000000016100000000000010213 xustar00113 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/rust_module/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/pyo3_mixed_submodule/rust_module/__init__0000644000000000000000000000000014040032435031057 0ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/src/lib.rs0000644000000000000000000000030314070255024022611 0ustar00use pyo3::prelude::*; #[pyfunction] fn get_21() -> usize { 21 } #[pymodule] fn rust(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(get_21))?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-submodule/tests/test_pyo3_mixed_submodule.py0000644000000000000000000000017014114074430027621 0ustar00#!/usr/bin/env python3 import pyo3_mixed_submodule def test_get_42(): assert pyo3_mixed_submodule.get_42() == 42 python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/README.md0000644000000000000000000000031314525221045022166 0ustar00# pyo3-mixed src layout A package for testing maturin with a nested workspace. ## Usage ```bash pip install . ``` ```python import pyo3_mixed_workspace assert pyo3_mixed_workspace.get_42() == 42 ``` python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/check_installed/0000755000000000000000000000000014525221045024026 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/pyproject.toml0000644000000000000000000000074414525221045023633 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-mixed-workspace" classifiers = [ "Programming Language :: Python", "Programming Language :: Rust" ] requires-python = ">=3.7" [project.scripts] get_42 = "pyo3_mixed_workspace:get_42" [tool.maturin] python-packages = ["pyo3_mixed_workspace", "tests"] module-name = "pyo3_mixed_workspace.pyo3_mixed_workspace_py" manifest-path = "rust/python/pyo3-mixed-workspace-py/Cargo.toml" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/0000755000000000000000000000000014525221045021707 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/0000755000000000000000000000000014525221045021501 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/tox.ini0000644000000000000000000000015314525221045022224 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest src/tests/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/check_installed/check_installed.py0000755000000000000000000000016614525221045027522 0ustar00#!/usr/bin/env python3 import pyo3_mixed_workspace as pyo3_mixed assert pyo3_mixed.get_42() == 42 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/Cargo.lock0000644000000000000000000001745414525221045023627 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cc" version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "lock_api" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "python3-dll-a", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed-workspace" version = "2.1.3" [[package]] name = "pyo3-mixed-workspace-py" version = "2.1.3" dependencies = [ "pyo3", "pyo3-mixed-workspace", ] [[package]] name = "python3-dll-a" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f07cd4412be8fa09a721d40007c483981bbe072cd6a21f2e83e04ec8f8343f" dependencies = [ "cc", ] [[package]] name = "quote" version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/Cargo.toml0000644000000000000000000000015314525221045023636 0ustar00[workspace] resolver = "2" members = [ "pyo3-mixed-workspace", "python/pyo3-mixed-workspace-py", ] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/pyo3-mixed-workspace/0000755000000000000000000000000014525221045025701 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/0000755000000000000000000000000014525221045023230 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/pyo3-mixed-workspace/Cargo.toml0000644000000000000000000000024114525221045027626 0ustar00[package] name = "pyo3-mixed-workspace" version = "2.1.3" description = "Implements a dummy function combining rust and python" edition = "2021" [dependencies] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/pyo3-mixed-workspace/src/0000755000000000000000000000000014525221045026470 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/pyo3-mixed-workspace/src/lib.rs0000644000000000000000000000005014525221045027577 0ustar00pub fn get_21_lib() -> usize { 21 } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py/0000755000000000000000000000000014525221045027650 5ustar00././@PaxHeader0000000000000000000000000000016300000000000010215 xustar00115 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py/Cargo.toml python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py/Cargo0000644000000000000000000000064514525221045030633 0ustar00[package] authors = ["konstin "] name = "pyo3-mixed-workspace-py" version = "2.1.3" description = "Implements a dummy function combining rust and python" edition = "2021" [dependencies] pyo3-mixed-workspace = { path = "../../pyo3-mixed-workspace" } pyo3 = { version = "0.19.0", features = ["extension-module", "generate-import-lib"] } [lib] name = "pyo3_mixed_workspace_py" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py/src/0000755000000000000000000000000014525221045030437 5ustar00././@PaxHeader0000000000000000000000000000016300000000000010215 xustar00115 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py/src/lib.rs python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py/src/l0000644000000000000000000000041414525221045030614 0ustar00use pyo3::prelude::*; use pyo3_mixed_workspace::get_21_lib; #[pyfunction] fn get_21() -> usize { get_21_lib() } #[pymodule] fn pyo3_mixed_workspace_py(_py: Python, m: &PyModule) -> PyResult<()> { m.add_function(wrap_pyfunction!(get_21, m)?)?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/0000755000000000000000000000000014525221045025637 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/tests/0000755000000000000000000000000014525221045022643 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/__init__.py0000644000000000000000000000020614525221045027746 0ustar00from .python_module.double import double from .pyo3_mixed_workspace_py import get_21 def get_42() -> int: return double(get_21) python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/python_module/0000755000000000000000000000000014525221045030525 5ustar00././@PaxHeader0000000000000000000000000000016700000000000010221 xustar00119 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/python_module/__init__.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/python_module/__0000644000000000000000000000000014525221045031013 0ustar00././@PaxHeader0000000000000000000000000000016500000000000010217 xustar00117 path=python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/python_module/double.py python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/pyo3_mixed_workspace/python_module/do0000644000000000000000000000013414525221045031050 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() python-maturin_1.3.2.orig/test-crates/pyo3-mixed-workspace/src/tests/test_pyo3_mixed.py0000644000000000000000000000017414525221045026336 0ustar00#!/usr/bin/env python3 import pyo3_mixed_workspace as pyo3_mixed def test_get_42(): assert pyo3_mixed.get_42() == 42 python-maturin_1.3.2.orig/test-crates/pyo3-mixed/Cargo.lock0000644000000000000000000001731114525221045020626 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cc" version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c6b2562119bf28c3439f7f02db99faf0aa1a8cdfe5772a2ee155d32227239f0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "python3-dll-a", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-mixed" version = "2.1.3" dependencies = [ "pyo3", ] [[package]] name = "python3-dll-a" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f07cd4412be8fa09a721d40007c483981bbe072cd6a21f2e83e04ec8f8343f" dependencies = [ "cc", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-mixed/Cargo.toml0000644000000000000000000000051414446366340020660 0ustar00[package] authors = ["konstin "] name = "pyo3-mixed" version = "2.1.3" description = "Implements a dummy function combining rust and python" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module", "generate-import-lib"] } [lib] name = "pyo3_mixed" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-mixed/README.md0000644000000000000000000000052414157766024020212 0ustar00# pyo3-mixed A package for testing maturin with a mixed pyo3/python project. ## Usage ```bash pip install . ``` ```python import pyo3_mixed assert pyo3_mixed.get_42() == 42 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `test_pyo3_mixed.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/pyo3-mixed/check_installed/0000755000000000000000000000000013502206615022032 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyo3-config.txt0000644000000000000000000000016314234730506021620 0ustar00implementation=CPython version=3.10 shared=true abi3=false suppress_build_script_link_lines=false pointer_width=64 python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyo3_mixed/0000755000000000000000000000000013502206615020776 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyproject.toml0000644000000000000000000000052614525221045021635 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "pyo3-mixed" classifiers = [ "Programming Language :: Python", "Programming Language :: Rust" ] requires-python = ">=3.7" dependencies = ["boltons"] [project.scripts] get_42 = "pyo3_mixed:get_42" print_cli_args = "pyo3_mixed:print_cli_args" python-maturin_1.3.2.orig/test-crates/pyo3-mixed/src/0000755000000000000000000000000013502206615017505 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/tests/0000755000000000000000000000000014253604210020055 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/tox.ini0000644000000000000000000000014714323740255020240 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest tests/ python-maturin_1.3.2.orig/test-crates/pyo3-mixed/check_installed/check_installed.py0000755000000000000000000000410514446366340025535 0ustar00#!/usr/bin/env python3 import json import os.path import platform import sys from pathlib import Path from subprocess import check_output from boltons.strutils import slugify import pyo3_mixed assert pyo3_mixed.get_42() == 42 assert slugify("First post! Hi!!!!~1 ") == "first_post_hi_1" script_name = "print_cli_args" args = ["a", "b", "c"] [rust_args, python_args] = check_output([script_name, *args], text=True).splitlines() # The rust vec debug format is also valid json rust_args = json.loads(rust_args) python_args = json.loads(python_args) # On alpine/musl, rust_args is empty so we skip all tests on musl if len(rust_args) > 0: # On linux we get sys.executable, windows resolve the path and mac os gives us a third # path ( # {prefix}/Python.framework/Versions/3.10/Resources/Python.app/Contents/MacOS/Python # vs # {prefix}/Python.framework/Versions/3.10/bin/python3.10 # on cirrus ci) # On windows, cpython resolves while pypy doesn't. # The script for cpython is actually a distinct file from the system interpreter for # windows and mac if platform.system() == "Linux": assert os.path.samefile(rust_args[0], sys.executable), ( rust_args, sys.executable, os.path.realpath(rust_args[0]), os.path.realpath(sys.executable), ) # Windows can't decide if it's with or without .exe, FreeBSB just doesn't work for some reason if platform.system() in ["Darwin", "Linux"]: # Unix venv layout (and hopefully also on more exotic platforms) print_cli_args = str(Path(sys.prefix).joinpath("bin").joinpath(script_name)) assert rust_args[1] == print_cli_args, (rust_args, print_cli_args) assert python_args[0] == print_cli_args, (python_args, print_cli_args) # FreeBSB just doesn't work for some reason if platform.system() in ["Darwin", "Linux", "Windows"]: # Rust contains the python executable as first argument but python does not assert rust_args[2:] == args, rust_args assert python_args[1:] == args, python_args print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyo3_mixed/__init__.py0000644000000000000000000000022714446366340023122 0ustar00from .pyo3_mixed import get_21, print_cli_args # noqa: F401 from .python_module.double import double def get_42() -> int: return double(get_21) python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyo3_mixed/python_module/0000755000000000000000000000000013502206615023664 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyo3_mixed/python_module/__init__.py0000644000000000000000000000000013502206615025763 0ustar00python-maturin_1.3.2.orig/test-crates/pyo3-mixed/pyo3_mixed/python_module/double.py0000644000000000000000000000013413502206615025506 0ustar00from typing import Callable def double(fn: Callable[[], int]) -> int: return 2 * fn() python-maturin_1.3.2.orig/test-crates/pyo3-mixed/src/lib.rs0000644000000000000000000000166714446366340020645 0ustar00use pyo3::prelude::*; use std::env; #[pyfunction] fn get_21() -> usize { 21 } /// Prints the CLI arguments, once from Rust's point of view and once from Python's point of view. #[pyfunction] fn print_cli_args(py: Python) -> PyResult<()> { // This one includes Python and the name of the wrapper script itself, e.g. // `["/home/ferris/.venv/bin/python", "/home/ferris/.venv/bin/print_cli_args", "a", "b", "c"]` println!("{:?}", env::args().collect::>()); // This one includes only the name of the wrapper script itself, e.g. // `["/home/ferris/.venv/bin/print_cli_args", "a", "b", "c"])` println!( "{:?}", py.import("sys")? .getattr("argv")? .extract::>()? ); Ok(()) } #[pymodule] fn pyo3_mixed(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(get_21))?; m.add_wrapped(wrap_pyfunction!(print_cli_args))?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-mixed/tests/test_pyo3_mixed.py0000644000000000000000000000014414253604210023545 0ustar00#!/usr/bin/env python3 import pyo3_mixed def test_get_42(): assert pyo3_mixed.get_42() == 42 python-maturin_1.3.2.orig/test-crates/pyo3-no-extension-module/Cargo.lock0000644000000000000000000001271414525221045023433 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-no-extension-module" version = "2.1.0" dependencies = [ "pyo3", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-no-extension-module/Cargo.toml0000644000000000000000000000054214446366340023464 0ustar00[package] authors = ["konstin "] name = "pyo3-no-extension-module" version = "2.1.0" description = "Does not use the extension-module feature, thus erroneously linking libpython" edition = "2021" [dependencies] pyo3 = { version = "0.19.0", default-features = false } [lib] name = "pyo3_no_extension_module" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/pyo3-no-extension-module/src/0000755000000000000000000000000013776412051022316 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-no-extension-module/src/lib.rs0000644000000000000000000000030513776412051023430 0ustar00use pyo3::ffi::{PyDict_New, PyObject}; #[no_mangle] #[allow(non_snake_case)] pub unsafe extern "C" fn PyInit_pyo3_pure() -> *mut PyObject { PyDict_New() // Make sure an ffi function is used } python-maturin_1.3.2.orig/test-crates/pyo3-pure/Cargo.lock0000644000000000000000000001737314525221045020503 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cc" version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c6b2562119bf28c3439f7f02db99faf0aa1a8cdfe5772a2ee155d32227239f0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "local-test" version = "0.1.0" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "python3-dll-a", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "pyo3-pure" version = "2.1.2" dependencies = [ "pyo3", ] [[package]] name = "python3-dll-a" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f07cd4412be8fa09a721d40007c483981bbe072cd6a21f2e83e04ec8f8343f" dependencies = [ "cc", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/pyo3-pure/Cargo.toml0000644000000000000000000000064314446366340020530 0ustar00[package] authors = ["konstin "] name = "pyo3-pure" version = "2.1.2" edition = "2021" description = "Implements a dummy function (get_fortytwo.DummyClass.get_42()) in rust" license = "MIT" [dependencies] pyo3 = { version = "0.19.0", features = ["abi3-py37", "extension-module", "generate-import-lib"] } [lib] name = "pyo3_pure" crate-type = ["cdylib"] [workspace] members = [".", "local-test"] python-maturin_1.3.2.orig/test-crates/pyo3-pure/LICENSE0000644000000000000000000000204314073605702017573 0ustar00Copyright (c) 2018-present konstin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. python-maturin_1.3.2.orig/test-crates/pyo3-pure/README.md0000644000000000000000000000052114327433517020051 0ustar00# Get fourtytwo A package with pyo3 bindings for testing maturin. ## Usage ```bash pip install . ``` ```python import pyo3_pure assert pyo3_pure.DummyClass.get_42() == 42 ``` ## Testing Install tox: ```bash pip install tox ``` Run it: ```bash tox ``` The tests are in `test_pyo3_pure.py`, while the configuration is in tox.ini python-maturin_1.3.2.orig/test-crates/pyo3-pure/check_installed/0000755000000000000000000000000013502206615021677 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-pure/local-test/0000755000000000000000000000000014327426306020641 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-pure/pyo3_pure.pyi0000644000000000000000000000012114323740255021232 0ustar00class DummyClass: @staticmethod def get_42() -> int: ... fourtytwo: int python-maturin_1.3.2.orig/test-crates/pyo3-pure/pyproject.toml0000644000000000000000000000156614525221045021507 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [tool.maturin] bindings = "pyo3" [tool.maturin.target."x86_64-apple-darwin"] macos-deployment-target = "10.12" [tool.maturin.target."aarch64-apple-darwin"] macos-deployment-target = "11.0" [project] # The name pyo3_pure instead of pyo3-pure is intentional, # it's used as a crate name resolution regression test name = "pyo3_pure" version = "0.1.0+abc123de" classifiers = [ "Programming Language :: Rust" ] description = "Implements a dummy function in Rust" readme = "README.md" maintainers = [ {name = "messense", email = "messense@icloud.com"} ] license = { file = "LICENSE" } [project.optional-dependencies] test = [ "attrs", "boltons; sys_platform == 'win32'" ] [project.scripts] get_42 = "pyo3_pure:DummyClass.get_42" [project.gui-scripts] get_42_gui = "pyo3_pure:DummyClass.get_42" python-maturin_1.3.2.orig/test-crates/pyo3-pure/src/0000755000000000000000000000000013502206615017352 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-pure/tests/0000755000000000000000000000000014254066323017732 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-pure/tox.ini0000644000000000000000000000014714323740255020105 0ustar00[tox] envlist = py36,py37,py38 isolated_build = True [testenv] deps = pytest commands = pytest tests/ python-maturin_1.3.2.orig/test-crates/pyo3-pure/check_installed/check_installed.py0000755000000000000000000000063714123120036025366 0ustar00#!/usr/bin/env python3 import os import subprocess import pyo3_pure assert pyo3_pure.DummyClass.get_42() == 42 # Check type stub install_path = os.path.join(os.path.dirname(pyo3_pure.__file__)) assert os.path.exists(os.path.join(install_path, "__init__.pyi")) assert os.path.exists(os.path.join(install_path, "py.typed")) # Check entrypoints assert subprocess.run(["get_42"]).returncode == 42 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/pyo3-pure/local-test/Cargo.toml0000644000000000000000000000026314330650427022567 0ustar00[package] name = "local-test" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] python-maturin_1.3.2.orig/test-crates/pyo3-pure/local-test/src/0000755000000000000000000000000014327426306021430 5ustar00python-maturin_1.3.2.orig/test-crates/pyo3-pure/local-test/src/lib.rs0000644000000000000000000000033014327426306022540 0ustar00pub fn add(left: usize, right: usize) -> usize { left + right } #[cfg(test)] mod tests { use super::*; #[test] fn it_works() { let result = add(2, 2); assert_eq!(result, 4); } } python-maturin_1.3.2.orig/test-crates/pyo3-pure/src/lib.rs0000644000000000000000000000052714125532256020477 0ustar00use pyo3::prelude::*; #[pyclass] struct DummyClass {} #[pymethods] impl DummyClass { #[staticmethod] fn get_42() -> PyResult { Ok(42) } } /// module level doc string #[pymodule] fn pyo3_pure(_py: Python, m: &PyModule) -> PyResult<()> { m.add_class::()?; m.add("fourtytwo", 42)?; Ok(()) } python-maturin_1.3.2.orig/test-crates/pyo3-pure/tests/test_pyo3_pure.py0000644000000000000000000000043614254066323023273 0ustar00#!/usr/bin/env python3 import pyo3_pure import pytest def test_static(): assert pyo3_pure.fourtytwo == 42 def test_class(): assert pyo3_pure.DummyClass.get_42() == 42 def test_function(): with pytest.raises(AssertionError): assert pyo3_pure.DummyClass == 42 python-maturin_1.3.2.orig/test-crates/sdist_with_path_dep/Cargo.lock0000644000000000000000000001316614525221045022661 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdist_with_path_dep" version = "0.1.0" dependencies = [ "pyo3", "some_path_dep", ] [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "some_path_dep" version = "0.1.0" dependencies = [ "transitive_path_dep", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "transitive_path_dep" version = "0.1.0" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/sdist_with_path_dep/Cargo.toml0000644000000000000000000000056014446366340022710 0ustar00[package] name = "sdist_with_path_dep" version = "0.1.0" authors = ["konstin "] edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] # Don't use the macros feature, which makes compilation much faster pyo3 = { version = "0.19.0", default-features = false, features = ["extension-module"] } some_path_dep = { path = "../some_path_dep" } python-maturin_1.3.2.orig/test-crates/sdist_with_path_dep/pyproject.toml0000644000000000000000000000011214525221045023653 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/sdist_with_path_dep/src/0000755000000000000000000000000014154664273021550 5ustar00python-maturin_1.3.2.orig/test-crates/sdist_with_path_dep/src/lib.rs0000644000000000000000000001243314154664273022667 0ustar00/// We speed up compilation by using the expanded output and then deselecting the macro feature /// of pyo3, removing syn and proc macros from the dependencies use pyo3::prelude::*; fn add(x: usize, y: usize) -> usize { let sum = some_path_dep::add(x, y); debug_assert!(some_path_dep::is_sum(x, y, sum)); sum } unsafe extern "C" fn __pyo3_raw_add( _slf: *mut pyo3::ffi::PyObject, _args: *mut pyo3::ffi::PyObject, _kwargs: *mut pyo3::ffi::PyObject, ) -> *mut pyo3::ffi::PyObject { const _LOCATION: &'static str = "add()"; let pool = ::pyo3::GILPool::new(); let unwind_safe_py = std::panic::AssertUnwindSafe(pool.python()); let result = match std::panic::catch_unwind(move || -> ::pyo3::PyResult<_> { let _py = *unwind_safe_py; ::pyo3::callback::convert(_py, { let _args = _py.from_borrowed_ptr::(_args); let _kwargs: Option<&pyo3::types::PyDict> = _py.from_borrowed_ptr_or_opt(_kwargs); { const PARAMS: &'static [pyo3::derive_utils::ParamDescription] = &[ pyo3::derive_utils::ParamDescription { name: "x", is_optional: false, kw_only: false, }, pyo3::derive_utils::ParamDescription { name: "y", is_optional: false, kw_only: false, }, ]; let mut output = [None; 2usize]; let mut _args = _args; let mut _kwargs = _kwargs; let (_args, _kwargs) = pyo3::derive_utils::parse_fn_args( Some(_LOCATION), PARAMS, _args, _kwargs, false, false, &mut output, )?; let arg0 = match output[0usize] { Some(_obj) => _obj .extract() .map_err(|e| pyo3::derive_utils::argument_extraction_error(_py, "x", e))?, None => { panic!("Failed to extract required method argument") } }; let arg1 = match output[1usize] { Some(_obj) => _obj .extract() .map_err(|e| pyo3::derive_utils::argument_extraction_error(_py, "y", e))?, None => { panic!("Failed to extract required method argument") } }; add(arg0, arg1) } }) }) { Ok(result) => result, Err(e) => { if let Some(string) = e.downcast_ref::() { Err(::pyo3::panic::PanicException::new_err((string.clone(),))) } else if let Some(s) = e.downcast_ref::<&str>() { Err(::pyo3::panic::PanicException::new_err((s.to_string(),))) } else { Err(::pyo3::panic::PanicException::new_err(( "panic from Rust code", ))) } } }; result.unwrap_or_else(|e| { e.restore(pool.python()); ::pyo3::callback::callback_error() }) } pub(crate) fn __pyo3_get_function_add<'a>( args: impl Into>, ) -> pyo3::PyResult<&'a pyo3::types::PyCFunction> { let name = "add\u{0}"; let name = std::ffi::CStr::from_bytes_with_nul(name.as_bytes()).unwrap(); let doc = std::ffi::CStr::from_bytes_with_nul(b"\x00").unwrap(); pyo3::types::PyCFunction::internal_new( name, doc, pyo3::class::PyMethodType::PyCFunctionWithKeywords(__pyo3_raw_add), pyo3::ffi::METH_VARARGS | pyo3::ffi::METH_KEYWORDS, args.into(), ) } fn pyo3_pure(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(&__pyo3_get_function_add)?; Ok(()) } #[no_mangle] #[allow(non_snake_case)] #[doc = r" This autogenerated function is called by the python interpreter when importing"] #[doc = r" the module."] pub unsafe extern "C" fn PyInit_sdist_with_path_dep() -> *mut pyo3::ffi::PyObject { use pyo3::derive_utils::ModuleDef; const NAME: &'static str = "pyo3_pure\u{0}"; static MODULE_DEF: ModuleDef = unsafe { ModuleDef::new(NAME) }; let pool = ::pyo3::GILPool::new(); let unwind_safe_py = std::panic::AssertUnwindSafe(pool.python()); let result = match std::panic::catch_unwind(move || -> ::pyo3::PyResult<_> { let _py = *unwind_safe_py; ::pyo3::callback::convert(_py, MODULE_DEF.make_module("", pyo3_pure)) }) { Ok(result) => result, Err(e) => { if let Some(string) = e.downcast_ref::() { Err(::pyo3::panic::PanicException::new_err((string.clone(),))) } else if let Some(s) = e.downcast_ref::<&str>() { Err(::pyo3::panic::PanicException::new_err((s.to_string(),))) } else { Err(::pyo3::panic::PanicException::new_err(( "panic from Rust code", ))) } } }; result.unwrap_or_else(|e| { e.restore(pool.python()); ::pyo3::callback::callback_error() }) } python-maturin_1.3.2.orig/test-crates/sdist_with_target_path_dep/Cargo.lock0000644000000000000000000001317514525221045024227 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdist_with_target_path_dep" version = "0.1.0" dependencies = [ "pyo3", "some_path_dep", ] [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "some_path_dep" version = "0.1.0" dependencies = [ "transitive_path_dep", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "transitive_path_dep" version = "0.1.0" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/sdist_with_target_path_dep/Cargo.toml0000644000000000000000000000067714440765716024273 0ustar00[package] name = "sdist_with_target_path_dep" version = "0.1.0" authors = ["konstin "] edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] # Don't use the macros feature, which makes compilation much faster pyo3 = { version = "0.19.0", default-features = false, features = ["extension-module"] } [target.'cfg(not(target_endian = "all-over-the-place"))'.dependencies] some_path_dep = { path = "../some_path_dep" } python-maturin_1.3.2.orig/test-crates/sdist_with_target_path_dep/pyproject.toml0000644000000000000000000000011214525221045025221 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/sdist_with_target_path_dep/src/0000755000000000000000000000000014420254654023110 5ustar00python-maturin_1.3.2.orig/test-crates/sdist_with_target_path_dep/src/lib.rs0000644000000000000000000001243314420254654024227 0ustar00/// We speed up compilation by using the expanded output and then deselecting the macro feature /// of pyo3, removing syn and proc macros from the dependencies use pyo3::prelude::*; fn add(x: usize, y: usize) -> usize { let sum = some_path_dep::add(x, y); debug_assert!(some_path_dep::is_sum(x, y, sum)); sum } unsafe extern "C" fn __pyo3_raw_add( _slf: *mut pyo3::ffi::PyObject, _args: *mut pyo3::ffi::PyObject, _kwargs: *mut pyo3::ffi::PyObject, ) -> *mut pyo3::ffi::PyObject { const _LOCATION: &'static str = "add()"; let pool = ::pyo3::GILPool::new(); let unwind_safe_py = std::panic::AssertUnwindSafe(pool.python()); let result = match std::panic::catch_unwind(move || -> ::pyo3::PyResult<_> { let _py = *unwind_safe_py; ::pyo3::callback::convert(_py, { let _args = _py.from_borrowed_ptr::(_args); let _kwargs: Option<&pyo3::types::PyDict> = _py.from_borrowed_ptr_or_opt(_kwargs); { const PARAMS: &'static [pyo3::derive_utils::ParamDescription] = &[ pyo3::derive_utils::ParamDescription { name: "x", is_optional: false, kw_only: false, }, pyo3::derive_utils::ParamDescription { name: "y", is_optional: false, kw_only: false, }, ]; let mut output = [None; 2usize]; let mut _args = _args; let mut _kwargs = _kwargs; let (_args, _kwargs) = pyo3::derive_utils::parse_fn_args( Some(_LOCATION), PARAMS, _args, _kwargs, false, false, &mut output, )?; let arg0 = match output[0usize] { Some(_obj) => _obj .extract() .map_err(|e| pyo3::derive_utils::argument_extraction_error(_py, "x", e))?, None => { panic!("Failed to extract required method argument") } }; let arg1 = match output[1usize] { Some(_obj) => _obj .extract() .map_err(|e| pyo3::derive_utils::argument_extraction_error(_py, "y", e))?, None => { panic!("Failed to extract required method argument") } }; add(arg0, arg1) } }) }) { Ok(result) => result, Err(e) => { if let Some(string) = e.downcast_ref::() { Err(::pyo3::panic::PanicException::new_err((string.clone(),))) } else if let Some(s) = e.downcast_ref::<&str>() { Err(::pyo3::panic::PanicException::new_err((s.to_string(),))) } else { Err(::pyo3::panic::PanicException::new_err(( "panic from Rust code", ))) } } }; result.unwrap_or_else(|e| { e.restore(pool.python()); ::pyo3::callback::callback_error() }) } pub(crate) fn __pyo3_get_function_add<'a>( args: impl Into>, ) -> pyo3::PyResult<&'a pyo3::types::PyCFunction> { let name = "add\u{0}"; let name = std::ffi::CStr::from_bytes_with_nul(name.as_bytes()).unwrap(); let doc = std::ffi::CStr::from_bytes_with_nul(b"\x00").unwrap(); pyo3::types::PyCFunction::internal_new( name, doc, pyo3::class::PyMethodType::PyCFunctionWithKeywords(__pyo3_raw_add), pyo3::ffi::METH_VARARGS | pyo3::ffi::METH_KEYWORDS, args.into(), ) } fn pyo3_pure(_py: Python, m: &PyModule) -> PyResult<()> { m.add_wrapped(&__pyo3_get_function_add)?; Ok(()) } #[no_mangle] #[allow(non_snake_case)] #[doc = r" This autogenerated function is called by the python interpreter when importing"] #[doc = r" the module."] pub unsafe extern "C" fn PyInit_sdist_with_path_dep() -> *mut pyo3::ffi::PyObject { use pyo3::derive_utils::ModuleDef; const NAME: &'static str = "pyo3_pure\u{0}"; static MODULE_DEF: ModuleDef = unsafe { ModuleDef::new(NAME) }; let pool = ::pyo3::GILPool::new(); let unwind_safe_py = std::panic::AssertUnwindSafe(pool.python()); let result = match std::panic::catch_unwind(move || -> ::pyo3::PyResult<_> { let _py = *unwind_safe_py; ::pyo3::callback::convert(_py, MODULE_DEF.make_module("", pyo3_pure)) }) { Ok(result) => result, Err(e) => { if let Some(string) = e.downcast_ref::() { Err(::pyo3::panic::PanicException::new_err((string.clone(),))) } else if let Some(s) = e.downcast_ref::<&str>() { Err(::pyo3::panic::PanicException::new_err((s.to_string(),))) } else { Err(::pyo3::panic::PanicException::new_err(( "panic from Rust code", ))) } } }; result.unwrap_or_else(|e| { e.restore(pool.python()); ::pyo3::callback::callback_error() }) } python-maturin_1.3.2.orig/test-crates/some_path_dep/Cargo.toml0000644000000000000000000000043414357373401021467 0ustar00[package] name = "some_path_dep" version = "0.1.0" authors = ["konstin "] edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] transitive_path_dep = { path = "../transitive_path_dep" } python-maturin_1.3.2.orig/test-crates/some_path_dep/src/0000755000000000000000000000000013623517340020322 5ustar00python-maturin_1.3.2.orig/test-crates/some_path_dep/src/lib.rs0000644000000000000000000000030014017270415021424 0ustar00pub use transitive_path_dep::is_sum; pub fn add(x: usize, y: usize) -> usize { x + y } #[cfg(test)] mod tests { #[test] fn it_works() { assert_eq!(add(2, 2), 4); } } python-maturin_1.3.2.orig/test-crates/transitive_path_dep/Cargo.toml0000644000000000000000000000035014357373401022711 0ustar00[package] name = "transitive_path_dep" version = "0.1.0" authors = ["konstin "] edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] python-maturin_1.3.2.orig/test-crates/transitive_path_dep/src/0000755000000000000000000000000014017270415021544 5ustar00python-maturin_1.3.2.orig/test-crates/transitive_path_dep/src/lib.rs0000644000000000000000000000025314017270415022660 0ustar00pub fn is_sum(x: usize, y: usize, sum: usize) -> bool { x + y == sum } #[cfg(test)] mod tests { #[test] fn it_works() { assert_eq!(2 + 2, 4); } } python-maturin_1.3.2.orig/test-crates/uniffi-mixed/.gitignore0000644000000000000000000000003214335330135021267 0ustar00uniffi_mixed/uniffi_mixed python-maturin_1.3.2.orig/test-crates/uniffi-mixed/Cargo.lock0000644000000000000000000005223614525221045021221 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "aho-corasick" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "askama" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47cbc3cf73fa8d9833727bbee4835ba5c421a0d65b72daf9a7b5d0e0f9cfb57e" dependencies = [ "askama_derive", "askama_escape", ] [[package]] name = "askama_derive" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c22fbe0413545c098358e56966ff22cdd039e10215ae213cfbd65032b119fc94" dependencies = [ "basic-toml", "mime", "mime_guess", "nom", "proc-macro2", "quote", "serde", "syn", ] [[package]] name = "askama_escape" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" [[package]] name = "basic-toml" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" dependencies = [ "serde", ] [[package]] name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" dependencies = [ "serde", ] [[package]] name = "bytes" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "camino" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-platform" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", "semver", "serde", "serde_json", "thiserror", ] [[package]] name = "cc" version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "fs-err" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "generator" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ "cc", "libc", "log", "rustversion", "windows", ] [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "goblin" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68" dependencies = [ "log", "plain", "scroll", ] [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "log" version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "loom" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" dependencies = [ "cfg-if", "generator", "pin-utils", "scoped-tls", "tracing", "tracing-subscriber", ] [[package]] name = "matchers" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata 0.1.10", ] [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ "mime", "unicase", ] [[package]] name = "minimal-lexical" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", "winapi", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "oneshot" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f6640c6bda7731b1fdbab747981a0f896dd1fedaf9f4a53fa237a04a84431f4" dependencies = [ "loom", ] [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "paste" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pin-project-lite" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "plain" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "regex" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" dependencies = [ "aho-corasick", "memchr", "regex-automata 0.3.7", "regex-syntax 0.7.5", ] [[package]] name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ "regex-syntax 0.6.29", ] [[package]] name = "regex-automata" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" dependencies = [ "aho-corasick", "memchr", "regex-syntax 0.7.5", ] [[package]] name = "regex-syntax" version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "rustversion" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "scoped-tls" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scroll" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] [[package]] name = "serde" version = "1.0.182" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdb30a74471f5b7a1fa299f40b4bf1be93af61116df95465b2b5fc419331e430" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.182" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f4c2c6ea4bc09b5c419012eafcdb0fcef1d9119d626c8f3a0708a5b92d38a70" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_json" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", "serde", ] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "siphasher" version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "smallvec" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "syn" version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "thiserror" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "thread_local" version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", "once_cell", ] [[package]] name = "toml" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] [[package]] name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "tracing-core" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", ] [[package]] name = "tracing-log" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ "log", "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", ] [[package]] name = "unicase" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ "version_check", ] [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "uniffi" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f8995f4440e0e8e27435016e2bdec264445a830a3af91a40fe3ba34b69075c5" dependencies = [ "anyhow", "uniffi_build", "uniffi_core", "uniffi_macros", ] [[package]] name = "uniffi-mixed" version = "0.1.0" dependencies = [ "uniffi", ] [[package]] name = "uniffi_bindgen" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb3dfb794733803cdfeff4c09cb4e2bcecb91df6928343a18c8ee679a5772a4" dependencies = [ "anyhow", "askama", "camino", "cargo_metadata", "fs-err", "glob", "goblin", "heck", "once_cell", "paste", "serde", "toml", "uniffi_meta", "uniffi_testing", "uniffi_udl", ] [[package]] name = "uniffi_build" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2334eb7cf951fb80e4883593ac8d4f09f4df522f7703fc929ae34af2cf9487b" dependencies = [ "anyhow", "camino", "uniffi_bindgen", ] [[package]] name = "uniffi_checksum_derive" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819bd46e5afff09738fbd493e58c26dca0b38bca8f206ffc9a7bc2dfd7e1c11d" dependencies = [ "quote", "syn", ] [[package]] name = "uniffi_core" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "883166644d32c2e5c615c7917c8065eee1dd6ce00286b57d5ac0b362a0790422" dependencies = [ "anyhow", "bytes", "camino", "log", "once_cell", "oneshot", "paste", "static_assertions", ] [[package]] name = "uniffi_macros" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44b8de841c6b746e03e59b8476b2fa265c52f10cdad24906ec32503efe9a2421" dependencies = [ "bincode", "camino", "fs-err", "once_cell", "proc-macro2", "quote", "serde", "syn", "toml", "uniffi_build", "uniffi_meta", ] [[package]] name = "uniffi_meta" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc021ae8f8c12f69022f1502537687df59045e1c16f5d1eafdb657ecdb7cdf1" dependencies = [ "anyhow", "bytes", "siphasher", "uniffi_checksum_derive", ] [[package]] name = "uniffi_testing" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40fe383aca04dfbdf6a5039a9e76bb21ebb13e03e38cf1459f17c62eedee7b6c" dependencies = [ "anyhow", "camino", "cargo_metadata", "fs-err", "once_cell", ] [[package]] name = "uniffi_udl" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6040dd1410fcb1a2795ef426f698107c12e295cc11e44a2b040934f786a35d82" dependencies = [ "anyhow", "uniffi_meta", "uniffi_testing", "weedle2", ] [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "weedle2" version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e79c5206e1f43a2306fd64bdb95025ee4228960f2e6c5a8b173f3caaf807741" dependencies = [ "nom", ] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" python-maturin_1.3.2.orig/test-crates/uniffi-mixed/Cargo.toml0000644000000000000000000000051014525221045021230 0ustar00[package] name = "uniffi-mixed" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "uniffi_mixed" crate-type = ["cdylib"] [dependencies] uniffi = "0.25.0" [build-dependencies] uniffi = { version = "0.25.0", features = ["build"] } python-maturin_1.3.2.orig/test-crates/uniffi-mixed/build.rs0000644000000000000000000000011314446366340020756 0ustar00fn main() { uniffi::generate_scaffolding("./src/math.udl").unwrap(); } python-maturin_1.3.2.orig/test-crates/uniffi-mixed/check_installed/0000755000000000000000000000000014335330135022420 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-mixed/pyproject.toml0000644000000000000000000000011214525221045022212 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/uniffi-mixed/src/0000755000000000000000000000000014335330135020073 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-mixed/test_uniffi_mixed.py0000644000000000000000000000011514335330135023360 0ustar00import uniffi_mixed def test_add(): assert uniffi_mixed.add(1, 2) == 3 python-maturin_1.3.2.orig/test-crates/uniffi-mixed/uniffi_mixed/0000755000000000000000000000000014335330135021752 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-mixed/check_installed/check_installed.py0000644000000000000000000000014214335330135026103 0ustar00#!/usr/bin/env python3 import uniffi_mixed assert uniffi_mixed.add(1, 2) == 3 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/uniffi-mixed/src/lib.rs0000644000000000000000000000012314446366340021215 0ustar00fn add(a: u32, b: u32) -> u32 { a + b } uniffi::include_scaffolding!("math"); python-maturin_1.3.2.orig/test-crates/uniffi-mixed/src/math.udl0000644000000000000000000000005514335330135021532 0ustar00namespace math { u32 add(u32 a, u32 b); }; python-maturin_1.3.2.orig/test-crates/uniffi-mixed/uniffi_mixed/__init__.py0000644000000000000000000000004414335330135024061 0ustar00from .uniffi_mixed import * # NOQA python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/Cargo.lock0000644000000000000000000006335014525221045023125 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "aho-corasick" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "anstream" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", "is-terminal", "utf8parse", ] [[package]] name = "anstyle" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" [[package]] name = "anstyle-parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" dependencies = [ "anstyle", "windows-sys", ] [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "askama" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47cbc3cf73fa8d9833727bbee4835ba5c421a0d65b72daf9a7b5d0e0f9cfb57e" dependencies = [ "askama_derive", "askama_escape", ] [[package]] name = "askama_derive" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c22fbe0413545c098358e56966ff22cdd039e10215ae213cfbd65032b119fc94" dependencies = [ "basic-toml", "mime", "mime_guess", "nom", "proc-macro2", "quote", "serde", "syn", ] [[package]] name = "askama_escape" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" [[package]] name = "basic-toml" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" dependencies = [ "serde", ] [[package]] name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" dependencies = [ "serde", ] [[package]] name = "bitflags" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bytes" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "camino" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-platform" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", "semver", "serde", "serde_json", "thiserror", ] [[package]] name = "cc" version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" version = "4.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" dependencies = [ "clap_builder", "clap_derive", "once_cell", ] [[package]] name = "clap_builder" version = "4.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" dependencies = [ "anstream", "anstyle", "clap_lex", "once_cell", "strsim", ] [[package]] name = "clap_derive" version = "4.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" dependencies = [ "heck", "proc-macro2", "quote", "syn", ] [[package]] name = "clap_lex" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] name = "colorchoice" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "errno" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", "windows-sys", ] [[package]] name = "errno-dragonfly" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ "cc", "libc", ] [[package]] name = "fs-err" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "generator" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ "cc", "libc", "log", "rustversion", "windows", ] [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "goblin" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68" dependencies = [ "log", "plain", "scroll", ] [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "is-terminal" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", "rustix", "windows-sys", ] [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "linux-raw-sys" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "log" version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "loom" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" dependencies = [ "cfg-if", "generator", "pin-utils", "scoped-tls", "tracing", "tracing-subscriber", ] [[package]] name = "matchers" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata 0.1.10", ] [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ "mime", "unicase", ] [[package]] name = "minimal-lexical" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", "winapi", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "oneshot" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f6640c6bda7731b1fdbab747981a0f896dd1fedaf9f4a53fa237a04a84431f4" dependencies = [ "loom", ] [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "paste" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pin-project-lite" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "plain" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "regex" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" dependencies = [ "aho-corasick", "memchr", "regex-automata 0.3.7", "regex-syntax 0.7.5", ] [[package]] name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ "regex-syntax 0.6.29", ] [[package]] name = "regex-automata" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" dependencies = [ "aho-corasick", "memchr", "regex-syntax 0.7.5", ] [[package]] name = "regex-syntax" version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "rustix" version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", "windows-sys", ] [[package]] name = "rustversion" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "scoped-tls" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scroll" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] [[package]] name = "serde" version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_json" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", "serde", ] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "siphasher" version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "smallvec" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "thiserror" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "thread_local" version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", "once_cell", ] [[package]] name = "toml" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] [[package]] name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "tracing-core" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", ] [[package]] name = "tracing-log" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ "log", "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", ] [[package]] name = "unicase" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ "version_check", ] [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "uniffi" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f8995f4440e0e8e27435016e2bdec264445a830a3af91a40fe3ba34b69075c5" dependencies = [ "anyhow", "camino", "clap", "uniffi_bindgen", "uniffi_build", "uniffi_core", "uniffi_macros", ] [[package]] name = "uniffi-pure-proc-macro" version = "0.1.0" dependencies = [ "uniffi", ] [[package]] name = "uniffi_bindgen" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb3dfb794733803cdfeff4c09cb4e2bcecb91df6928343a18c8ee679a5772a4" dependencies = [ "anyhow", "askama", "camino", "cargo_metadata", "clap", "fs-err", "glob", "goblin", "heck", "once_cell", "paste", "serde", "toml", "uniffi_meta", "uniffi_testing", "uniffi_udl", ] [[package]] name = "uniffi_build" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2334eb7cf951fb80e4883593ac8d4f09f4df522f7703fc929ae34af2cf9487b" dependencies = [ "anyhow", "camino", "uniffi_bindgen", ] [[package]] name = "uniffi_checksum_derive" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819bd46e5afff09738fbd493e58c26dca0b38bca8f206ffc9a7bc2dfd7e1c11d" dependencies = [ "quote", "syn", ] [[package]] name = "uniffi_core" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "883166644d32c2e5c615c7917c8065eee1dd6ce00286b57d5ac0b362a0790422" dependencies = [ "anyhow", "bytes", "camino", "log", "once_cell", "oneshot", "paste", "static_assertions", ] [[package]] name = "uniffi_macros" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44b8de841c6b746e03e59b8476b2fa265c52f10cdad24906ec32503efe9a2421" dependencies = [ "bincode", "camino", "fs-err", "once_cell", "proc-macro2", "quote", "serde", "syn", "toml", "uniffi_build", "uniffi_meta", ] [[package]] name = "uniffi_meta" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc021ae8f8c12f69022f1502537687df59045e1c16f5d1eafdb657ecdb7cdf1" dependencies = [ "anyhow", "bytes", "siphasher", "uniffi_checksum_derive", ] [[package]] name = "uniffi_testing" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40fe383aca04dfbdf6a5039a9e76bb21ebb13e03e38cf1459f17c62eedee7b6c" dependencies = [ "anyhow", "camino", "cargo_metadata", "fs-err", "once_cell", ] [[package]] name = "uniffi_udl" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6040dd1410fcb1a2795ef426f698107c12e295cc11e44a2b040934f786a35d82" dependencies = [ "anyhow", "uniffi_meta", "uniffi_testing", "weedle2", ] [[package]] name = "utf8parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "weedle2" version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e79c5206e1f43a2306fd64bdb95025ee4228960f2e6c5a8b173f3caaf807741" dependencies = [ "nom", ] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ "windows-targets", ] [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/Cargo.toml0000644000000000000000000000067214525221045023146 0ustar00[package] name = "uniffi-pure-proc-macro" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "uniffi_pure_proc_macro" crate-type = ["cdylib"] [[bin]] name = "uniffi-bindgen" path = "uniffi-bindgen.rs" [dependencies] uniffi = { version = "0.25.0", features = ["cli"] } [build-dependencies] uniffi = { version = "0.25.0", features = ["build"] } python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/check_installed/0000755000000000000000000000000014525221045024325 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/pyproject.toml0000644000000000000000000000011214525221045024117 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/src/0000755000000000000000000000000014525221045022000 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/test_uniffi_pure.py0000644000000000000000000000014514525221045025135 0ustar00import uniffi_pure_proc_macro as uniffi_pure def test_add(): assert uniffi_pure.add(1, 2) == 3 python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/uniffi-bindgen.rs0000644000000000000000000000006014525221045024437 0ustar00fn main() { uniffi::uniffi_bindgen_main() } python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/uniffi.toml0000644000000000000000000000005214525221045023363 0ustar00[bindings.python] cdylib_name = "example" python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/check_installed/check_installed.py0000644000000000000000000000017214525221045030013 0ustar00#!/usr/bin/env python3 import uniffi_pure_proc_macro as uniffi_pure assert uniffi_pure.add(1, 2) == 3 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/uniffi-pure-proc-macro/src/lib.rs0000644000000000000000000000013514525221045023113 0ustar00#[uniffi::export] fn add(a: u32, b: u32) -> u32 { a + b } uniffi::setup_scaffolding!(); python-maturin_1.3.2.orig/test-crates/uniffi-pure/Cargo.lock0000644000000000000000000005223514525221045021065 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "aho-corasick" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "askama" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47cbc3cf73fa8d9833727bbee4835ba5c421a0d65b72daf9a7b5d0e0f9cfb57e" dependencies = [ "askama_derive", "askama_escape", ] [[package]] name = "askama_derive" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c22fbe0413545c098358e56966ff22cdd039e10215ae213cfbd65032b119fc94" dependencies = [ "basic-toml", "mime", "mime_guess", "nom", "proc-macro2", "quote", "serde", "syn", ] [[package]] name = "askama_escape" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" [[package]] name = "basic-toml" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" dependencies = [ "serde", ] [[package]] name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" dependencies = [ "serde", ] [[package]] name = "bytes" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "camino" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-platform" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", "semver", "serde", "serde_json", "thiserror", ] [[package]] name = "cc" version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "fs-err" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "generator" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ "cc", "libc", "log", "rustversion", "windows", ] [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "goblin" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68" dependencies = [ "log", "plain", "scroll", ] [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "log" version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "loom" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" dependencies = [ "cfg-if", "generator", "pin-utils", "scoped-tls", "tracing", "tracing-subscriber", ] [[package]] name = "matchers" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata 0.1.10", ] [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ "mime", "unicase", ] [[package]] name = "minimal-lexical" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", "winapi", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "oneshot" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f6640c6bda7731b1fdbab747981a0f896dd1fedaf9f4a53fa237a04a84431f4" dependencies = [ "loom", ] [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "paste" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pin-project-lite" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "plain" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "regex" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" dependencies = [ "aho-corasick", "memchr", "regex-automata 0.3.7", "regex-syntax 0.7.5", ] [[package]] name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ "regex-syntax 0.6.29", ] [[package]] name = "regex-automata" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" dependencies = [ "aho-corasick", "memchr", "regex-syntax 0.7.5", ] [[package]] name = "regex-syntax" version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "rustversion" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "scoped-tls" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scroll" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] [[package]] name = "serde" version = "1.0.182" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdb30a74471f5b7a1fa299f40b4bf1be93af61116df95465b2b5fc419331e430" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.182" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f4c2c6ea4bc09b5c419012eafcdb0fcef1d9119d626c8f3a0708a5b92d38a70" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_json" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", "serde", ] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "siphasher" version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "smallvec" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "syn" version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "thiserror" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "thread_local" version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", "once_cell", ] [[package]] name = "toml" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] [[package]] name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "tracing-core" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", ] [[package]] name = "tracing-log" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ "log", "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", ] [[package]] name = "unicase" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ "version_check", ] [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "uniffi" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f8995f4440e0e8e27435016e2bdec264445a830a3af91a40fe3ba34b69075c5" dependencies = [ "anyhow", "uniffi_build", "uniffi_core", "uniffi_macros", ] [[package]] name = "uniffi-pure" version = "0.1.0" dependencies = [ "uniffi", ] [[package]] name = "uniffi_bindgen" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb3dfb794733803cdfeff4c09cb4e2bcecb91df6928343a18c8ee679a5772a4" dependencies = [ "anyhow", "askama", "camino", "cargo_metadata", "fs-err", "glob", "goblin", "heck", "once_cell", "paste", "serde", "toml", "uniffi_meta", "uniffi_testing", "uniffi_udl", ] [[package]] name = "uniffi_build" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2334eb7cf951fb80e4883593ac8d4f09f4df522f7703fc929ae34af2cf9487b" dependencies = [ "anyhow", "camino", "uniffi_bindgen", ] [[package]] name = "uniffi_checksum_derive" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819bd46e5afff09738fbd493e58c26dca0b38bca8f206ffc9a7bc2dfd7e1c11d" dependencies = [ "quote", "syn", ] [[package]] name = "uniffi_core" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "883166644d32c2e5c615c7917c8065eee1dd6ce00286b57d5ac0b362a0790422" dependencies = [ "anyhow", "bytes", "camino", "log", "once_cell", "oneshot", "paste", "static_assertions", ] [[package]] name = "uniffi_macros" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44b8de841c6b746e03e59b8476b2fa265c52f10cdad24906ec32503efe9a2421" dependencies = [ "bincode", "camino", "fs-err", "once_cell", "proc-macro2", "quote", "serde", "syn", "toml", "uniffi_build", "uniffi_meta", ] [[package]] name = "uniffi_meta" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc021ae8f8c12f69022f1502537687df59045e1c16f5d1eafdb657ecdb7cdf1" dependencies = [ "anyhow", "bytes", "siphasher", "uniffi_checksum_derive", ] [[package]] name = "uniffi_testing" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40fe383aca04dfbdf6a5039a9e76bb21ebb13e03e38cf1459f17c62eedee7b6c" dependencies = [ "anyhow", "camino", "cargo_metadata", "fs-err", "once_cell", ] [[package]] name = "uniffi_udl" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6040dd1410fcb1a2795ef426f698107c12e295cc11e44a2b040934f786a35d82" dependencies = [ "anyhow", "uniffi_meta", "uniffi_testing", "weedle2", ] [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "weedle2" version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e79c5206e1f43a2306fd64bdb95025ee4228960f2e6c5a8b173f3caaf807741" dependencies = [ "nom", ] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" python-maturin_1.3.2.orig/test-crates/uniffi-pure/Cargo.toml0000644000000000000000000000050614525221045021102 0ustar00[package] name = "uniffi-pure" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "uniffi_pure" crate-type = ["cdylib"] [dependencies] uniffi = "0.25.0" [build-dependencies] uniffi = { version = "0.25.0", features = ["build"] } python-maturin_1.3.2.orig/test-crates/uniffi-pure/build.rs0000644000000000000000000000011314446366340020623 0ustar00fn main() { uniffi::generate_scaffolding("./src/math.udl").unwrap(); } python-maturin_1.3.2.orig/test-crates/uniffi-pure/check_installed/0000755000000000000000000000000014335330135022265 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-pure/pyproject.toml0000644000000000000000000000011214525221045022057 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/uniffi-pure/src/0000755000000000000000000000000014335330135017740 5ustar00python-maturin_1.3.2.orig/test-crates/uniffi-pure/test_uniffi_pure.py0000644000000000000000000000011314335330135023070 0ustar00import uniffi_pure def test_add(): assert uniffi_pure.add(1, 2) == 3 python-maturin_1.3.2.orig/test-crates/uniffi-pure/uniffi.toml0000644000000000000000000000005214336030745021330 0ustar00[bindings.python] cdylib_name = "example" python-maturin_1.3.2.orig/test-crates/uniffi-pure/check_installed/check_installed.py0000644000000000000000000000014014335330135025746 0ustar00#!/usr/bin/env python3 import uniffi_pure assert uniffi_pure.add(1, 2) == 3 print("SUCCESS") python-maturin_1.3.2.orig/test-crates/uniffi-pure/src/lib.rs0000644000000000000000000000012314446366340021062 0ustar00fn add(a: u32, b: u32) -> u32 { a + b } uniffi::include_scaffolding!("math"); python-maturin_1.3.2.orig/test-crates/uniffi-pure/src/math.udl0000644000000000000000000000005514335330135021377 0ustar00namespace math { u32 add(u32 a, u32 b); }; python-maturin_1.3.2.orig/test-crates/with-data/Cargo.lock0000644000000000000000000000023114236453425020513 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "with-data" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/with-data/Cargo.toml0000644000000000000000000000023614357373401020542 0ustar00[package] name = "with-data" version = "0.1.0" authors = ["konstin "] edition = "2021" [lib] name = "with_data" crate-type = ["cdylib"] python-maturin_1.3.2.orig/test-crates/with-data/check_installed/0000755000000000000000000000000014236453425021726 5ustar00python-maturin_1.3.2.orig/test-crates/with-data/pyproject.toml0000644000000000000000000000020014525221045021506 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "with-data" dependencies = ["cffi"] python-maturin_1.3.2.orig/test-crates/with-data/src/0000755000000000000000000000000014236453425017401 5ustar00python-maturin_1.3.2.orig/test-crates/with-data/with_data.data/0000755000000000000000000000000014236453425021466 5ustar00python-maturin_1.3.2.orig/test-crates/with-data/check_installed/check_installed.py0000644000000000000000000000143614357373401025417 0ustar00import locale import sys from pathlib import Path import with_data assert with_data.lib.one() == 1 assert with_data.ffi.string(with_data.lib.say_hello()).decode() == "hello" venv_root = Path(sys.prefix) installed_data = ( venv_root.joinpath("data_subdir") .joinpath("hello.txt") # With the default encoding, python under windows fails to read the file correctly .read_text(encoding="utf-8") .strip() ) assert installed_data == "Hi! 😊", ( installed_data, "Hi! 😊", locale.getpreferredencoding(), ) header_file = ( venv_root.joinpath("include") .joinpath("site") .joinpath(f"python{sys.version_info.major}.{sys.version_info.minor}") .joinpath("with-data") .joinpath("empty.h") ) assert header_file.is_file(), header_file print("SUCCESS") python-maturin_1.3.2.orig/test-crates/with-data/src/lib.rs0000644000000000000000000000036014236453425020514 0ustar00use std::ffi::CString; use std::os::raw::{c_char, c_int}; #[no_mangle] pub unsafe extern "C" fn say_hello() -> *const c_char { CString::new("hello").unwrap().into_raw() } #[no_mangle] pub unsafe extern "C" fn one() -> c_int { 1 } python-maturin_1.3.2.orig/test-crates/with-data/with_data.data/data/0000755000000000000000000000000014236453425022377 5ustar00python-maturin_1.3.2.orig/test-crates/with-data/with_data.data/headers/0000755000000000000000000000000014236453425023101 5ustar00python-maturin_1.3.2.orig/test-crates/with-data/with_data.data/data/data_subdir/0000755000000000000000000000000014236453425024660 5ustar00python-maturin_1.3.2.orig/test-crates/with-data/with_data.data/data/data_subdir/hello.txt0000644000000000000000000000001114525221045026504 0ustar00Hi! 😊 python-maturin_1.3.2.orig/test-crates/with-data/with_data.data/headers/empty.h0000644000000000000000000000000014236453425024376 0ustar00python-maturin_1.3.2.orig/test-crates/workspace-inheritance/Cargo.lock0000644000000000000000000002130114525221045023107 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "generic_lib" version = "0.1.0" [[package]] name = "getrandom" version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", "wasi", ] [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", ] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "workspace-inheritance" version = "0.1.0" dependencies = [ "cfg-if", "generic_lib", "libc", "pyo3", "rand", ] python-maturin_1.3.2.orig/test-crates/workspace-inheritance/Cargo.toml0000644000000000000000000000035314357373401023145 0ustar00[workspace] members = [ "generic_lib", "python" ] [workspace.package] version = "0.1.0" [workspace.dependencies] cfg-if = "1.0.0" libc = { version = "0.2", features = ["std"] } rand = "0.8" generic_lib = { path = "generic_lib" } python-maturin_1.3.2.orig/test-crates/workspace-inheritance/generic_lib/0000755000000000000000000000000014313743026023452 5ustar00python-maturin_1.3.2.orig/test-crates/workspace-inheritance/python/0000755000000000000000000000000014313743026022531 5ustar00python-maturin_1.3.2.orig/test-crates/workspace-inheritance/generic_lib/Cargo.toml0000644000000000000000000000026414357373401025410 0ustar00[package] name = "generic_lib" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] python-maturin_1.3.2.orig/test-crates/workspace-inheritance/generic_lib/src/0000755000000000000000000000000014313743026024241 5ustar00python-maturin_1.3.2.orig/test-crates/workspace-inheritance/generic_lib/src/lib.rs0000644000000000000000000000005314313743026025353 0ustar00pub fn foo() -> &'static str { "foo" } python-maturin_1.3.2.orig/test-crates/workspace-inheritance/python/Cargo.toml0000644000000000000000000000120114446366340024462 0ustar00[package] name = "workspace-inheritance" version.workspace = true edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "workspace_inheritance" crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module"] } generic_lib.workspace = true [dependencies.libc] workspace = true optional = true features = ["extra_traits"] [build-dependencies] cfg-if.workspace = true [dev-dependencies] cfg-if.workspace = true [dependencies.cfg-if] workspace = true optional = true [dependencies.rand] workspace = true features = ["small_rng"] python-maturin_1.3.2.orig/test-crates/workspace-inheritance/python/pyproject.toml0000644000000000000000000000011414446366340025450 0ustar00[build-system] requires = ["maturin>=0.15,<0.16"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/workspace-inheritance/python/src/0000755000000000000000000000000014313743026023320 5ustar00python-maturin_1.3.2.orig/test-crates/workspace-inheritance/python/src/lib.rs0000644000000000000000000000056114313743026024436 0ustar00use pyo3::prelude::*; /// Formats the sum of two numbers as string. #[pyfunction] fn sum_as_string(a: usize, b: usize) -> PyResult { Ok((a + b).to_string()) } /// A Python module implemented in Rust. #[pymodule] fn workspace_with_path_dep(_py: Python, m: &PyModule) -> PyResult<()> { m.add_function(wrap_pyfunction!(sum_as_string, m)?)?; Ok(()) } python-maturin_1.3.2.orig/test-crates/workspace/Cargo.lock0000644000000000000000000000020514025671653020631 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "py" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/workspace/Cargo.toml0000644000000000000000000000004314525221045020643 0ustar00[workspace] members = [ "py" ] python-maturin_1.3.2.orig/test-crates/workspace/Readme.md0000644000000000000000000000037514525221045020442 0ustar00This tests that we ignore non-existent Cargo.lock file listed by `cargo package --list`, which seems to only occur with workspaces. See https://github.com/rust-lang/cargo/issues/7938#issuecomment-593280660 and https://github.com/PyO3/maturin/issues/449 python-maturin_1.3.2.orig/test-crates/workspace/py/0000755000000000000000000000000014025667425017361 5ustar00python-maturin_1.3.2.orig/test-crates/workspace/py/Cargo.toml0000644000000000000000000000016514357373401021307 0ustar00[package] name = "py" version = "0.1.0" authors = ["konstin "] edition = "2021" [dependencies] python-maturin_1.3.2.orig/test-crates/workspace/py/pyproject.toml0000644000000000000000000000011414446366340022270 0ustar00[build-system] requires = ["maturin>=0.15,<0.16"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/workspace/py/src/0000755000000000000000000000000014025667425020150 5ustar00python-maturin_1.3.2.orig/test-crates/workspace/py/src/main.rs0000644000000000000000000000005514025667425021442 0ustar00fn main() { println!("Hello, world!"); } python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/Cargo.lock0000644000000000000000000001675514525221045023540 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "dont_include_in_sdist" version = "0.1.0" [[package]] name = "generic_lib" version = "0.1.0" dependencies = [ "transitive_lib", ] [[package]] name = "indoc" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", ] [[package]] name = "pyo3-macros" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", "syn", ] [[package]] name = "pyo3-macros-backend" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "transitive_lib" version = "0.1.0" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unindent" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "windows-targets" version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "workspace_with_path_dep" version = "0.1.0" dependencies = [ "generic_lib", "pyo3", ] python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/Cargo.toml0000644000000000000000000000014514151667541023557 0ustar00[workspace] members = [ "generic_lib", "transitive_lib", "dont_include_in_sdist", "python" ] python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/dont_include_in_sdist/0000755000000000000000000000000014151667163026172 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/generic_lib/0000755000000000000000000000000014151667163024071 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/python/0000755000000000000000000000000014151667163023150 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/transitive_lib/0000755000000000000000000000000014151667541024645 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/dont_include_in_sdist/Cargo.toml0000644000000000000000000000027614357373401030124 0ustar00[package] name = "dont_include_in_sdist" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/dont_include_in_sdist/src/0000755000000000000000000000000014151667163026761 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/dont_include_in_sdist/src/main.rs0000644000000000000000000000005514151667163030253 0ustar00fn main() { println!("Hello, world!"); } python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/generic_lib/Cargo.toml0000644000000000000000000000034414357373401026017 0ustar00[package] name = "generic_lib" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] transitive_lib = { path = "../transitive_lib" } python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/generic_lib/src/0000755000000000000000000000000014151667163024660 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/generic_lib/src/lib.rs0000644000000000000000000000005314151667541025772 0ustar00pub fn foo() -> &'static str { "foo" } python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/python/Cargo.toml0000644000000000000000000000050714446366340025102 0ustar00[package] name = "workspace_with_path_dep" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.19.0", features = ["extension-module"] } generic_lib = { path = "../generic_lib" } python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/python/pyproject.toml0000644000000000000000000000011214525221045026044 0ustar00[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/python/src/0000755000000000000000000000000014151667163023737 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/python/src/lib.rs0000644000000000000000000000056114151667541025055 0ustar00use pyo3::prelude::*; /// Formats the sum of two numbers as string. #[pyfunction] fn sum_as_string(a: usize, b: usize) -> PyResult { Ok((a + b).to_string()) } /// A Python module implemented in Rust. #[pymodule] fn workspace_with_path_dep(_py: Python, m: &PyModule) -> PyResult<()> { m.add_function(wrap_pyfunction!(sum_as_string, m)?)?; Ok(()) } python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/transitive_lib/Cargo.toml0000644000000000000000000000026714357373401026577 0ustar00[package] name = "transitive_lib" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/transitive_lib/src/0000755000000000000000000000000014151667541025434 5ustar00python-maturin_1.3.2.orig/test-crates/workspace_with_path_dep/transitive_lib/src/lib.rs0000644000000000000000000000005314151667541026546 0ustar00pub fn bar() -> &'static str { "bar" } python-maturin_1.3.2.orig/test-crates/wrong-python-source/Cargo.lock0000644000000000000000000000024314427641577022616 0ustar00# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "wrong-python-source" version = "0.1.0" python-maturin_1.3.2.orig/test-crates/wrong-python-source/Cargo.toml0000644000000000000000000000016514427641577022644 0ustar00[package] name = "wrong-python-source" version = "0.1.0" edition = "2021" [[bin]] name = "run_this" [dependencies] python-maturin_1.3.2.orig/test-crates/wrong-python-source/pyproject.toml0000644000000000000000000000020414525221045023601 0ustar00[tool.maturin] bindings = "bin" python-source = "python" [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" python-maturin_1.3.2.orig/test-crates/wrong-python-source/python/0000755000000000000000000000000014427641577022233 5ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/src/0000755000000000000000000000000014427641577021501 5ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/python/run_this/0000755000000000000000000000000014427641577024066 5ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/python/run_this/__init__.py0000644000000000000000000000000014427641577026165 0ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/src/bin/0000755000000000000000000000000014427641577022251 5ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/src/lib.rs0000644000000000000000000000000014525221045022562 0ustar00python-maturin_1.3.2.orig/test-crates/wrong-python-source/src/bin/run_this.rs0000644000000000000000000000001514427641577024446 0ustar00fn main() {} python-maturin_1.3.2.orig/test-data/Readme.md0000644000000000000000000000011014064216425016063 0ustar00 * `py.exe`: Mock for the windows python launcher we can insert in path python-maturin_1.3.2.orig/test-data/py.exe0000755000000000000000000042500013421617772015521 0ustar00MZÿÿ¸@𺴠Í!¸LÍ!This program cannot be run in DOS mode. $Õ¯Œ‘|Áß‘|Áß‘|ÁߘRß|ÁßÃÀÞ“|ÁßÃÄÞ„|ÁßÃÅÞ˜|ÁßÃÂÞ“|ÁßþÀÞ˜|Áß‘|Àß|Áß‘|Áߘ|ÁßÃÞ|ÁßRich‘|ÁßPEd†ËùF\ð" ˆ PŒ@p`ü´@¬`LãT`ä(`ã p.text؆ˆ `.rdata4… †Œ@@.datah0@À.pdata¬@@@.relocL`&@BHƒì(ÿ1ÀHƒÄ(ÃÌÌÌÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒìXH“H‰D$(HÇD$0HÇD$8H÷’H‰D$HHÇD$PHL$(èïUHƒÄXÃÌÌÌÌÌÌÌÌÌHƒì(I‰ÑLcÁHŸÿÿÿH‰D$ Hc’HL$ è‰ÔHƒÄ(ÃÌÌÌé ÂÌÌÌÌÌÌÌÌÌÌÌékÂÌÌÌÌÌÌÌÌÌÌÌé›ÂÌÌÌÌÌÌÌÌÌÌÌAVVWSHƒì(L‰ÆI‰ÖH‰ÏH‹QH‹YH‰ÐH)ØL9Às(HórgHH9ÃHBØH…ÒtH‹A¸I‰Ùè¥ÿÿÿëH‹ë ºH‰ÙèqÿÿÿH‰ÁH…Àt1H‰H‰_H‹_H3H‰GHÙL‰òI‰ðHƒÄ([_^A^él„èz ºH‰Ùè»% ÌÌÌÌÌÌÌÌÌAVVWSHƒì(H‰ÎH‹AH‹YH‰ÁH)ÙH9ÑsKHÓrmHH9ÓHBÚ1ÿH‰ÙHÙ“ÁI‰ÞIÞrO@ˆÏHÿH…Àt'H‹A¸M‰ñèâþÿÿH…Àt!H‰H‰^HƒÄ([_^A^ÃL‰ñH‰úè¡þÿÿH…ÀußL‰ñH‰úè!% èÊ ÌÌÌÌÌÌÌÌUVWHƒì0Hl$0HÇEøþÿÿÿH‰ÎH‹9H‹GH…ÀtÆH‹WH…ÒtH‹OA¸èRþÿÿH‰}ðHO0èu H‹EðH‹H@ºA¸è-þÿÿH‹ðHhuH‹ºPA¸HƒÄ0_^]éþÿÿHƒÄ0_^]Ãf.„fH‰T$UVWHƒì Hj0H‹MðHƒÁ@è#HƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌVWHƒì(H‰ÎH‹9H‹Oè ‚H‹Oº(A¸è—ýÿÿHƒÇ H‰ùè H‹ðHhuH‹ºPA¸HƒÄ(_^édýÿÿHƒÄ(_^ÃÌÌÌÌÌÌÌÌÌÌÌÌH¸6º&¹ß+tBÃÌÌÌÌÌH¸kè¸8ˆÝ¡qÃÌÌÌÌÌH¸d—°pÙ”ÃÌÌÌÌÌH¸Ë6ЃÆhÃÌÌÌÌÌVWHƒì(H‰ÖH‹9H‰Ñè \„ÀtH‰ùH‰òHƒÄ(_^ékH‰ñèÿ[H‰ùH‰ò„Àt HƒÄ(_^éškHƒÄ(_^énÌÌÌÌÌÌÌÌÌÌÌÌÌÌVWHƒì(H‰ÖH‹9H‰Ñè¬[„ÀtH‰ùH‰òHƒÄ(_^é—lH‰ñèŸ[H‰ùH‰ò„Àt HƒÄ(_^émHƒÄ(_^é®pÌÌÌÌÌÌÌÌÌÌÌÌÌÌI‰ÐH‹H‹H‹PéŽ\ÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVVWSHƒì@H‹H‹0H‹xHL$0èÑ[H…ÿt9L5ÅL|$0H\$(f.„H‰t$(HƒÆL‰ùH‰ÚM‰ðè™GHƒÇÿuãHL$0è©GHƒÄ@[_^A^A_ÃÌÌÌÌÌÌÌÌÌÌÌÌH‹ éH&ÌÌÌÌÌÌÌÌI‰ÐH‹H‹QH‰Áéî_ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿH‰ÎÇEüƒúwˆUüA¹郉ÐúÿwÁè$ ÀˆEü€â?€Ê€ˆUýA¹ë^úÿÿw'Áè $ àˆEü‰ÐÁè$? €ˆEý€â?€Ê€ˆUþA¹ë/Áè ðˆEü‰ÐÁè $? €ˆEý‰ÐÁè$? €ˆEþ€â?€Ê€ˆUÿA¹H‹HMÐLEüè­U€}Ðu1Àë,EÐ)Eà€~HFH‰Eðt H‹Mðèä(EàH‹Eð°HƒÄX^]ÃH‰T$UVHƒì(HjP(EàH‹EðHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿH‰ÎÇEüƒúwˆUüA¹郉ÐúÿwÁè$ ÀˆEü€â?€Ê€ˆUýA¹ë^úÿÿw'Áè $ àˆEü‰ÐÁè$? €ˆEý€â?€Ê€ˆUþA¹ë/Áè ðˆEü‰ÐÁè $? €ˆEý‰ÐÁè$? €ˆEþ€â?€Ê€ˆUÿA¹H‹HMÐLEüè]W€}Ðu1Àë,EÐ)Eà€~HFH‰Eðt H‹Mðè´(EàH‹Eð°HƒÄX^]ÃH‰T$UVHƒì(HjP(EàH‹EðHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒìhH‰L$(JR )T$P)L$@)D$0H&HL$(LD$0èIHƒÄhÃÌHƒìhH‰L$(JR )T$P)L$@)D$0HFHL$(LD$0èÇHHƒÄhÃÌHƒì(H‹H‰D$ HL$ èzvHƒÄ(ÃÌÌÌÌH‰ÈH‹ H…ÉtH‹PH…Òt A¸éaøÿÿÃÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌH‹AHƒÃÌÌÌÌÌÌÌH‹QH‹AH)ÐDH…ÀtLBL‰AHƒÀðHƒzL‰ÂuåH‹QH…ÒtH‹ HÁâA¸éú÷ÿÿÃÌÌÌÌÌÌÌÌÌ€yul‹eH‹%XH‹ÂHƒ¸¨u&‹÷eH‹%XH‹ÂHƒ¸°t2H‹Æ@ë)‹ÑeH‹%XH‹ÂHÇ€¨HÇ€°H‹H‹éÛÌÌÌH‹QH…ÒtH‹ A¸éY÷ÿÿÃÌÌÌÌÌÌÌÌH‹ ºA¸é=÷ÿÿÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH‰ÈH‹ H‰EðH‹@ÿH‹MðH‹AH‹PH…ÒtH‹ L‹@HƒÄ0]éìöÿÿHƒÄ0]ÃDH‰T$UHƒì Hj0H‹EðH‹H‹Pè’HƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌH‹ ºA¸éöÿÿÌÌÌÌÌÌÌÌÌÌÌÌÌéÛÌÌÌÌÌÌÌÌÌÌÌH‹H…ÀtðH(uéÙ÷ÿÿÃÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿƒ9t4H‰ÈH‹IH‰EðH‹@ÿH‹MðH‹AH‹PH…ÒtH‹IL‹@HƒÄ0]éöÿÿHƒÄ0]Ãf.„@H‰T$UHƒì Hj0H‹EðH‹HH‹Pè±HƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌH‹H…ÀtðH(uéù÷ÿÿÃÌÌÌÌÌÌÌÌUVHƒì8Hl$0HÇEþÿÿÿH‰ÎH‹AH;AtBHHH‰NH‹H…Ét2H‹@H‰MøH‰EðÿH‹EðH‹PH…Òt L‹@H‹MøèXõÿÿH‹FH;Fu¾H‹VH…ÒtH‹HÁâA¸HƒÄ8^]é-õÿÿHƒÄ8^]ÃDH‰T$UVHƒì(Hj0H‹MøH‹UðèÔHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌ€yuÃHƒÁé0Hƒ9t HƒÁé!ÃUHƒì0Hl$0HÇEøþÿÿÿH‰ÈH‹ H…Ét,H‰EðH‹@ÿH‹MðH‹AH‹PH…ÒtH‹ L‹@HƒÄ0]é‡ôÿÿHƒÄ0]ÃH‰T$UHƒì Hj0H‹EðH‹H‹Pè2HƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌH‹ éè×ÌÌÌÌÌÌÌÌH‹ðH(uénöÿÿÃÌÌÌÌÌÌÌÌÌÌÌÌÌ€9uÃéeÌÌÌÌÌH‹QH…ÒtHÒH‹ A¸éöóÿÿÃÌÌÌÌÌH‹ éixÌÌÌÌÌÌÌÌH‹H…ÀtÆH‹QH…ÒtH‹ A¸é¾óÿÿÃÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì@Hl$@HÇEøþÿÿÿ€9wHƒÄ@]ÃH‰MèH‹AH‹H‰EðH‹@ÿH‹MðH‹AH‹PH…Òt H‹ L‹@èaóÿÿH‹EèH‹HºA¸HƒÄ@]éDóÿÿ@H‰T$UHƒì Hj@H‹EðH‹H‹PèòH‹EèH‹HèÅHƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌH‰ÈH‹IH…ÉtH‹PH…Òt A¸éàòÿÿÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVWHƒì0Hl$0HÇEøþÿÿÿH‰ÏH‹1H‹‡HƒøtZHƒøt1H‰}ðH 7›ºèžÊ1ÉH…À”ÁHƒÁH‡ SH…ÀH‹}ðu#H‹6H…ötH‰ñè×vº(A¸H‰ñèOòÿÿH‹ºA¸HƒÄ0_^]é5òÿÿDH‰T$UVWHƒì Hj0H‹MðèÇúÿÿHƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌ€yul‹$eH‹%XH‹ÂHƒ¸¨u&‹eH‹%XH‹ÂHƒ¸°t2H‹Æ@8ë)‹áeH‹%XH‹ÂHÇ€¨HÇ€°H‹H‹é vÌÌÌUVHƒìHHl$@HÇEþÿÿÿI‰È€ythAŠ@„Àu`HMàL‰EðL‰Âèœ5ŠEà<w<uAH‹EèH‹H‰EøH‹@ÿH‹uøH‹FH‹PH…Òt H‹L‹@èñÿÿºA¸H‰ñèñÿÿL‹EðI‹PH…ÒtI‹A¸HƒÄH^]éßðÿÿHƒÄH^]ÀH‰T$UVHƒì(Hj@H‹MðèHùÿÿHƒÄ(^]ÃH‰T$UVHƒì(Hj@H‹uøH‹H‹VèaH‰ñè9HƒÄ(^]ÃÌH‹ðH(uéÞñÿÿÃÌÌÌÌÌÌÌÌÌÌÌÌÌé{tÌÌÌÌÌÌÌÌÌÌÌH‹QH…ÒtH‹IA¸é8ðÿÿÃÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH‰ÈH‹ H‰EðÿPH‹EðH‹H0HƒÄ0]é€tf.„DH‰T$UHƒì Hj0H‹MðHƒÁ0èåûÿÿHƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒì(H‹H‹AL‹H‹RL‹H‹AL‹L‰Ñèì- ÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìhHl$`HÇEþÿÿÿI‰ÏL‹"L‹r·r·Bf‰Eü‹B‰Eøf…ö„ E1íL‰ðL)àHHHÁéHƒÁHƒÀH»@HCÙH<ºH‰ùèïÿÿH…À„?f‰0H‰EàH‰]èHÇEðL‰eÈL‰uÐfD‰mØ‹Eø‰EÚ·Eüf‰EÞHMàHUÈèâH‹EðI‰GEàAL‰øHƒÄh[_^A\A]A^A_]ÃM9ôtIL$AŠ$¶ò@„öxI‰ÌéBÿÿÿIÇWÀAGë½L9ñtA¶D$IƒÄƒà?L‰ãë1ÀI‰ÌL‰ó‰ñƒá@€þàrL9ót¶;HƒÃƒç?I‰Üë Áá Èë91ÿL‰óÁà ø€úðrL9ót¶HƒÃƒâ?I‰Üë Áá Èë1ÒƒáÁáÁà È Ð‰Æ=ÿÿ†¦þÿÿÆÿÿ‰ðÁè ØæÿÎÜA‰õ‰ÆéƒþÿÿºH‰ùèA f.„DH‰T$UAWAVAUATVWSHƒì(Hj`HMàè~ùÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìXHl$PHÇEþÿÿÿH‹:H‹BD·rfE…ö„_H‰MøE1íH‰ÆHƒÀI‰ÿH)øHÁèH<HƒÇºH‰ùH‰ÃèýìÿÿH…À„8HƒÃfD‰0H‰EàH‰]èHÇEðHNH‰MØA¾M‰øI‰ÙfE…í…(ëf.„fI‰Ðé„L9Æ„¢IPAŠD¶ëE„íy×H9òtA¶HIƒÀƒá?L‰Çë1ÉI‰ÐH‰÷D‰êƒâA€ýàrH9÷tD¶HƒÇAƒâ?I‰øë Áâë(E1ÒH‰÷ÁáD Ñ€ûðrH9÷t"¶HƒÇƒã?I‰øëÁâ ÑA‰ÍAýÿÿvvë'1ÛƒâÁâÁá Ñ ÙA‰Íù„÷AýÿÿvMAÅÿÿD‰éÁé ÉØAåÿAÍÜE‰ìA‰ÍM9Ît)€fF‰,pIƒÆL‰uðE‰åfE…í„öþÿÿE1äM9ÎuÞI‰÷H‹uØL)ÆHÁîHƒÆL΂£K H9ÖHBò1ÿH‰ñHñ“ÁH‰óHó‚L‰EÐ@ˆÏHÿM…Ét"A¸H‰ÁI‰ÙèQëÿÿH…Àu é^€H‰ÙH‰úèëÿÿH…À„CH‰EàH‰uèI‰ñL‹EÐL‰þéEÿÿÿH‹EðH‹MøH‰AEàH‰ÈHƒÄX[_^A\A]A^A_]ÃH9Ç„âHwDŠE¶ñE„öH‰MøxH‰÷é€ýÿÿH9Æt¶WHƒÇƒâ?I‰øë1ÒH‰÷I‰ÀD‰öƒæA€þàrI9ÀtA¶IƒÀƒã?L‰Çë Áæë(1ÛI‰ÀÁâ ÚA€ùðrI9ÀtTA¶IƒÀƒã?L‰ÇëFÁæ òA‰ÖAþÿÿ†ýÿÿAÆÿÿD‰ñÁé ÉØAæÿAÎÜE‰õH‰ÆA‰ÎéÚüÿÿ1ÛƒæÁæÁâ ò ÚA‰ÖúuªHÇWÀAéîþÿÿè  H‰ÙH‰úèN ºH‰ùè? f.„H‰T$UAWAVAUATVWSHƒì(HjPHMàè~õÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìhHl$`HÇEþÿÿÿH‰ÈH‹2H‹ZD·b‹zŠJA‰ýAÁí€ùt+€ùuBf…ÿ„aH‰EðE‰çD‰}üD‰è±‰Mø1ÿE‰ìE1íë8fE…䄱‰MøH‰EðÇEüëfE…ä„.H‰EðÇEüÇEøH‰]àH‰ØI‰öH)ðHXHÁëHƒÀH¸ÿÿÿÿÿÿÿ?HBØA‰ÿ·ÿH;H4HƒÆºH‰ñèyèÿÿH…À„ L;IƒÂfD‰ H‰EÈL‰UÐHÇEØA¼L‹]àE‰ùD‹}ø‹uüA€ÿ…)é1A·E1ÉA‰ð1ÿD‰îM9Ô…ééó@f…ötE1ÀD‰ïE1ÿM9Ô„ØéÄM9ó„èI^EŠA¶ð@„öxI‰ÞëËL9ÛtA¶VIƒÆƒâ?L‰óë1ÒI‰ÞL‰Û‰ñƒá@€þàrE‰ÏL9ÛtD¶ HƒÃAƒá?I‰Þë Áá ÊëTE1ÉL‰ÛÁâD ÊA€øðrL9Ût)D¶HƒÃAƒà?I‰ÞëÁá ʉÖE‰ùþÿÿ†Dÿÿÿë"E1ÀE‰ùƒáÁáÁâ ÊD ‰Öþÿÿ† ÿÿÿÆÿÿ‰ñÁé ÉØæÿÎÜE1ÿéºfDA·f…ö…ÄM9ó„óINAжó@„öxI‰Îé¤L9ÙtA¶VIƒÆƒâ?M‰ðë1ÒI‰ÎM‰Ø‰ñƒá@€þàrD‰ÎM9ØtE¶IƒÀAƒá?M‰Æë Áá ÊëBE1ÉM‰ØÁâD Ê€ûðrM9ØtA¶IƒÀƒã?M‰Æë Áá ÊA‰ñë1ÛA‰ñƒáÁáÁâ Ê Ú‰Öúÿÿ‡Òf.„E1ÀD‰ïM9Ô…ñL‰ÙL)ñHQHÁêHƒÁH¹ÿÿÿÿÿÿÿ?HBÑA·ÙHÓHƒÃ„À‰}ìLÓ‚A‰õKH9ÓHBÚ1ÿH‰ÙHÙ“ÁH‰ÞHÞ‚ÛD‰EüD‰Mø@ˆÏHÿM…ÒtA¸H‰ÁI‰ñè»åÿÿë H‰ñH‰úèŽåÿÿH…ÀL‹]àD‹MøD‹Eü„œH‰EÈH‰]ÐD‰î‹}ìë<Æÿÿ‰ñÁé ÉØæÿÎÜA‰ðD‰ï‰ÎM9Ô„ÿÿÿf.„L‰ÓfB‰4`IƒÄL‰eØI‰ÚD‰ÆA‰ýA€ÿ„ þÿÿA€ÿ…óüÿÿfAƒù„ÈüÿÿH‹MØH‹EðH‰HEÈHƒÄh[_^A\A]A^A_]ÃH9ÞtHNDŠE¶âE„äH‰Eðx=H‰ÎéAHÇWÀ@ë¾H9Þ„}ûÿÿHNDŠE¶âE„äH‰EðxH‰Îé±ûÿÿH9Ùt%¶VHƒÆƒâ?I‰ñëH9ÙtD¶VHƒÆƒâ?I‰ñë<1ÒH‰ÎI‰ÙD‰áƒáA€üàrI9ÙtOE¶IƒÁAƒà?L‰ÎëDÁá Êé£1ÒH‰ÎI‰ÙD‰áƒáA€üàrI9ÙtJE¶IƒÁAƒà?L‰Îë?Áá ÊéÃE1ÀI‰ÙÁâD ÂA€úðrI9ÙtGE¶IƒÁAƒà?L‰Îë9Áá Êë@E1ÀI‰ÙÁâD ÂA€úðrI9ÙtlE¶IƒÁAƒà?L‰Îë^Áá ÊëeE1ÀƒáÁáÁâ ÊD ÂA‰Ôúÿÿw°‰EøÇEüé¢úÿÿ°‰EøAÄÿÿD‰àÁè ØAäÿAÌÜëGE1ÀƒáÁáÁâ ÊD ÂA‰Ôúÿÿ†MúÿÿAÄÿÿD‰àÁè ØAäÿAÌÜÇEøE‰çD‰}üA‰Äé%úÿÿè H‰ñH‰úèb  ºH‰ñèS  H‰T$UAWAVAUATVWSHƒì(Hj`HMÈèžîÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌUHì H¬$€HÇEþÿÿÿHéuH‰EøHÇE+H‰MˆUHEøH‰EØH¯æÿÿH‰EàHEH‰EèHŒ“H‰EðH¹yH‰E¨HÇE°HÆxH‰E¸HÇEÀHEØH‰EÈHÇEÐH»yHM¨è" H‰T$UHƒì Hª€HMèæéÿÿHƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌHìˆHštH‰D$(HÇD$0HD$(H‰D$8HóåÿÿH‰D$@HD$ H‰D$HH­H‰D$PHùxH‰D$XHÇD$`HxH‰D$hHÇD$pHD$8H‰D$xHÇ„$€HñxHL$XèW  ÌÌÌÌÌHìˆH tH‰D$(HÇD$0HD$(H‰D$8HSåÿÿH‰D$@HD$ H‰D$HHíH‰D$PHYxH‰D$XHÇD$`HdwH‰D$hHÇD$pHD$8H‰D$xHÇ„$€HQxHL$Xè·  ÌÌÌÌÌHìˆHêsH‰D$(HÇD$0+HD$(H‰D$8H³äÿÿH‰D$@H‰L$HHRKH‰D$PH¾wH‰D$XHÇD$`HÉvH‰D$hHÇD$pHD$8H‰D$xHÇ„$€H¶wHL$Xè  ÌÌÌÌÌÌÌÌÌÌHìˆHexH‰D$(HÇD$09HD$(H‰D$8HäÿÿH‰D$@HD$ H‰D$HHm H‰D$PHwH‰D$XHÇD$`H$vH‰D$hHÇD$pHD$8H‰D$xHÇ„$€HwHL$Xèw  ÌÌÌÌÌUHìH¬$€HÇEþÿÿÿH‰MðH‰UøHEðH‰EÐHqãÿÿH‰EØL‰EL‰EàHž¶H‰EèH{vH‰E HÇE¨HˆuH‰E°HÇE¸HEÐH‰EÀHÇEÈH}vHM èä  fH‰T$UHƒì Hª€H‹MèFîÿÿHƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌH‹ é(äÿÿÌÌÌÌÌÌÌÌH‹ éèâÿÿÌÌÌÌÌÌÌÌVWSHƒì0‰×H‹1ú€sRH‹VH;VuzH‰ÓHƒÃ‚"HH9ÃHBØH…Ò„éH‹A¸I‰Ùè ÞÿÿH…À„åH‰H‰^H‹Vë5ÇD$,‰øÿs.Áè$ ÀˆD$,@€ç?@€Ï€@ˆ|$-A¸ëyH‹@ˆ<HƒFëxÿÿÿw-Áè $ àˆD$,‰øÁè$? €ˆD$-@€ç?@€Ï€@ˆ|$.A¸ë6Áè ðˆD$,‰øÁè $? €ˆD$-‰øÁè$? €ˆD$.@€ç?@€Ï€@ˆ|$/A¸HT$,H‰ñèbÝÿÿ1ÀHƒÄ0[_^úH‰ÙèÝÿÿH…À…ÿÿÿºH‰Ùè• è>ý ÌÌÌÌÌÌÌÌÌÌÌÌHƒìhH‹H‰D$(JR )T$P)L$@)D$0HqHL$(LD$0èä,HƒÄhÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒìhH‹H‰D$(JR )T$P)L$@)D$0HqHL$(LD$0è”,HƒÄhÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒìhH‹H‰D$(JR )T$P)L$@)D$0H“pHL$(LD$0èD,HƒÄhÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿM‰ÁI‰ÐH‹1H‹HMÐè¸9€}Ðu1Àë,EÐ)Eà€~HFH‰Eøt H‹Møèèÿÿ(EàH‹Eø°HƒÄX^]Ãf.„H‰T$UVHƒì(HjP(EàH‹EøHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒì(H‹ è„Ûÿÿ1ÀHƒÄ(ÃÌÌÌÌÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿM‰ÁI‰ÐH‹1H‹HMÐè6€}Ðu1Àë,EÐ)Eà€~HFH‰Eøt H‹MøèOçÿÿ(EàH‹Eø°HƒÄX^]Ãf.„H‰T$UVHƒì(HjP(EàH‹EøHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVWHƒì@Hl$@HÇEøþÿÿÿH‰MèH‹1H‰ñèý¼H‹~HÇFH‰ñè¾H‰}ðH‹ðH(u H‹MðèŸÜÿÿºA¸H‹MðèKÚÿÿºA¸H‹MèHƒÄ@_^]é0ÚÿÿH‰T$UVWHƒì Hj@H‹Mèè×HƒÄ _^]Ãf.„@H‰T$UVWHƒì Hj@H‹Mðè§HƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌAVVWUSHƒì0H‰ÖH‰ÏH‹L‹r‹jPH‰Ñè®8‹NP„ÀtƒÉ‰NPHƒ>uHÇFHǃɉNPH‹H‰D$(HL$(H‰òèIH‰L‰v‰nPHƒÄ0[]_^A^ÃÌÌÌÌÌÌÌÌÌÌÌ̺A¸é@ÙÿÿºA¸é0ÙÿÿH‰ÐH‹RH…Òt L‹@éÙÿÿÃÌÌÌÌÌÌÌÌÌÌI‰ÐH‹H‹QH‰Áé^=ÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVATVWUSHƒì H‰ÎL‹"L‹z·jI¾@f…í…#é,f.„fIL$AŠ$¶ê@„íx I‰Ì1ÿéµL9ùtA¶D$IƒÄƒà?L‰çë1ÀI‰ÌL‰ÿ‰éƒá@€ýàrL9ÿt¶/HƒÇƒå?I‰üë Áá Èë91íL‰ÿÁà è€úðrL9ÿt¶HƒÇƒâ?I‰üë Áá Èë1ÒƒáÁáÁà È Ð‰Å=ÿÿvpÅÿÿ‰èÁè ØåÿÍ܉ï‰Åf.„@H‹^H;^u"L‰øL)àHPHÁêHƒÂHƒÀIBÖH‰ñè„ØÿÿH‹f‰,XHƒÃH‰^‰ýf…ít1ÿëºf.„M9ç…×þÿÿHƒÄ []_^A\A^A_ÃÌÌÌÌÌÌÌÌUAWAVATVWSHì€H¬$€HÇ…øþÿÿÿI‰ÖÆ…÷I‹xH‹H‹Hƒ{uNE1ÿHu¨1ÒA¸(H‰ñèO\ÇEøÐÇE¨XH‹ HÇ…ØL…ØH‰úI‰ñÿS ƒø…µëQA‹pE1ÿLe¨1ÒA¸(L‰áèý[ÇEøÐÇE¨XH‹ HÇ…ØL‰d$ LØH‰úA‰ðÿS ƒøubH‹EàH9ÇrV‹MÄH…ÉtHÈH9ÇsFH}üH‰ùè´[Hƒøÿ„ÌHØH‰úI‰Àè¡L‹èHƒ½Ø„L‹½àëE1ÿHØH•÷M‰øèÚ|Š…Ø<w<uJH‹…àH‹H‰…ÐH‹@ÿH‹µÐH‹FH‹PH…Òt H‹L‹@èÕÕÿÿºA¸H‰ñèÂÕÿÿ¶…÷H‰ÂHƒòLòHÄ€[_^A\A^A_]ÃE1ÿégÿÿÿHÇÁÿÿÿÿ1Òè™ €H‰T$UAWAVATVWSHƒì0Hª€H‹µÐH‹H‹Vè#üÿÿH‰ñèûûÿÿHƒÄ0[_^A\A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌVHƒì0L¬mHt$ A¹ H‰ñèA4H‰ñèIHƒÄ0^ÃÌÌUVWSHƒìXHl$PHÇEþÿÿÿH‰Ï‹öeH‹ %XH‹ Á°€¹¡…ÿ‹ðõeH‹ %XH‹Á€¸ u-‹ÔõeH‹ %XH‹4ÁHŽ€H™è$ŒÆ† ‹§õeH‹ %XH‹ÁHƒ¸€„‹†õeH‹ %XH‹Áfo€foˆ€WÒ)¹fHnÑf€fH~ÈH…Àt8fH~ÁH…Ét.fpÀNfH~ÀH‰MðH‰EøÿH‹EøH‹PH…ÒH‹Mðt L‹@èÛÓÿÿH‹7H‹_HÇH‰uàH‰]è‹ïôeH‹ %XH‹ÁHƒ¸ˆ…æ‹ÎôeH‹ %XH‹ÁHÇ€ˆÿÿÿÿHˆˆHH‰UÐH‰MØH‹ˆH…ÉtrH‰uøH‰]ð‹†ôeH‹%XH‹ÂH‹€˜ÿ‹jôeH‹ %XH‹ÁH‹€˜H‹PH…ÒH‹]ðH‹uøt#‹ ?ôeH‹<%XH‹ ÏH‹‰L‹@èòÒÿÿ‹ôeH‹ %XH‹ÁH‰°H‰˜˜Hƒ€ˆ1ÀHƒÄX[_^]Ãèùðÿÿ €H‰T$UVWSHƒì(HjP‹ÉóeH‹ %XH‹4ÁH‹ŽH‹–˜èIùÿÿH‹EøH‰†H‹EðH‰†˜HMÐè ÚÿÿHƒÄ([_^]ÃH‰T$UVWSHƒì(HjPHMàèfÝÿÿHƒÄ([_^]Ãf.„fH‰T$UVWSHƒì(HjPH‹MðH‹UøèÒøÿÿHƒÄ([_^]ÃÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿÆA!Hƒ9t9H‰ÈH‹IH…Ét-H‰EðH‹@ÿH‹MðH‹AH‹PH…ÒtH‹IL‹@HƒÄ0]é›ÑÿÿHƒÄ0]Ã@H‰T$UHƒì Hj0H‹EðH‹HH‹PèAøÿÿHƒÄ ]Ãf.„H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿÆAHƒ9tH‹AH…ÀtðH(u HƒÁèxÒÿÿHƒÄ0]ÃH‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUAWAVATVWSHìðH¬$€HÇEhþÿÿÿ‹éñeH‹ %XH‹Á€¸a…;‹ÉñeH‹ %XH‹Á€¸`u-‹­ñeH‹ %XH‹4ÁHŽHH"ÿÿÿèý‡Æ†`‹€ñeH‹ %XH‹ÁHƒ¸Ht(‹cñeH‹ %XH‹ÁHÇ€HWÀ€P‹;ñeH‹ %XH‹ÁHˆPèbH‰ÁH‰EX1Ò¸ðH±Q(„%H‹uXH‹N0è;²‹õðeH‹ %XH‹ÁHƒ¸¨u‹ØðeH‹ %XH‹ÁH‹€°ë+‹¼ðeH‹ %XH‹ÁHÇ€¨HÇ€°1ÀHN0‹ðeH‹%XH‹ÓH‰‚°ŠV8„Ò…õH…ÀH‰MH•EP¹1ÀðH±N(…½E1ÿL5“zL%¯Äf.„DH‹MXH‹EH¶UPH‰EˆU H‹81ÀðH±yHt H9ø…NH‹Y@H‹5¼ïH…öu!ºL‰ñèʦH‰ÖH…ÀIDôH‰ðH‡–ïA¸ÿÿÿÿE1ÉH‰ÙH‰úÿÖH‹M¶A¶U „À…H‰MHˆUPH‹MX¸ðL±y(…eÿÿÿë5Hƒø…H‹EX1ÉH‡H(H‰MHEH‰EH´gH‰EHƒù…H‹EH€}Pui‹ NïeH‹%XH‹ ÊHƒ¹¨u#‹ 1ïeH‹%XH‹ ÊHƒ¹°t/Æ@ë)‹ ïeH‹%XH‹ ÊHǨHǰH‹èS±H‹EXðH(u HMXè ÏÿÿHÄð[_^A\A^A_]ÃH BlL#lº6èqžë ÆEgèÖêÿÿ HÇEH !fº^è»ùëãH…À•Âè®êÿÿëÖÆEgH ‘fLrfºè žë¸H·fH‰EHÇE HÇE(HŒ_H‰E8HÇE@HEH‰E H1ÐÿÿH‰E¨H‰éH‰M°H‰E¸HEH‰EÀH£H‰EÈHdH‰EÐHÇEØHbH‰EàHÇEèHE H‰EðHÇEøÆEgH.fHMÐèÕ™é ÿÿÿH‰T$UAWAVATVWSHƒì Hª€HMèÍÕÿÿHƒÄ [_^A\A^A_]Ãf.„H‰T$UAWAVATVWSHƒì Hª€ÆEgHMèÔÿÿÆEgHƒÄ [_^A\A^A_]ÃfDH‰T$UAWAVATVWSHƒì Hª€HMXèMÛÿÿHƒÄ [_^A\A^A_]Ãf.„H‰T$UAWAVATVWSHƒì Hª€€}gtHMHè—ÓÿÿHƒÄ [_^A\A^A_]ÃHƒÄ [_^A\A^A_]ÃÌÌÌÌÌÌÌÌUAWAVVWSHìˆH¬$€HÇEþÿÿÿH‹A)E H…Àt]H‰E°(E E¸HMàHU°èXðH‹uàL‹EðÆEÿ1ÉH‰òèò÷H…À…‡H‹EðH‰EÀEà)E°ÆEÿHM°èÌ I‰ÇI‰ÖëE1ÿL‰}°L‰u¸H=ëH‰ùè*­H‰}àH‹5ÿêHƒþÿ„úHFH‰êêH Óêè.®¹ºèoÊÿÿH…À„åH‰ÃHÇÆ@ŠEæˆEÖ·Eäf‰EÔ‹Eà‰Eйºè5ÊÿÿH…À„²H‰ÇHÇŠEÖˆEæ·EÔf‰Eä‹EЉEà¹PºèÿÉÿÿH…À„ƒHÇHÇ@L‰xL‰pH‰p HÇ@(H‰X0Æ@8ŠMæˆH?·Mäf‰H=‹Mà‰H9H‰x@HÇ@HHĈ[_^A^A_]ÃH ÄcL¥cº7蓚 ¹ë ¹ë¹Pºèôï Eè)EÐH‰U°H‰u¸(EÐEÀH ªcLE°º/èêÿÿ H‰T$UAWAVVWSHƒì(Hª€€}ÿt HMàè©ÑÿÿHƒÄ([_^A^A_]Ãf.„H‰T$UAWAVVWSHƒì(Hª€HMàèÔÿÿHƒÄ([_^A^A_]ÃH‰T$UAWAVVWSHƒì(Hª€HM°èÏÔÿÿHƒÄ([_^A^A_]ÃÌVHƒì H‹¸H‡B(H…ÀtUHƒøtOHƒø…äH‹1H‹N0èÞª‹˜éeH‹ %XH‹ÁHƒ¸¨u"‹{éeH‹ %XH‹ÁH‹€°ë1HƒÄ ^ËYéeH‹ %XH‹ÁHÇ€¨HÇ€°1À‹ .éeH‹%XH‹ ÊH‰°ŠN8„ÉugH‹N0èz«H‹v@H‹ÇèH…Àu)H ´sºèÉŸH…ÀHŸ½HEÂH‰ÁH‡ ™èH‰ñHƒÄ ^HÿàH /bLbºè~˜ H…À•ÂHƒÆ0H‰ñèÚäÿÿ ÌÌÌÌÌÌÌÌUAWAVAUATVWSHìˆH¬$€HÇ…þÿÿÿH‰ØE1íHM¨1ÒA¸èTLHÇ…àWÀ…èA¿¸H‰…øE1äëMÿIÿrtL‰ÿL)çL‰èL)àH9øssLç‚ÎL‰êLêH9×HBú1öH‰øHø“ÀH‰ûHû‚ª@ˆÆHöM…ítJA¸H‹øI‰Ùè–ÆÿÿH…ÀuDé£f.„fA¾H]¨ë:@M‰üM‰þH‹øë'H‰ÙH‰òè6ÆÿÿH…À„dI‰ýM‰üM‰þH‰…øH‰Ã1Éè°JD‰ùH‰Úè«J‰Æ…Àu èˆJ…À…̉öI9÷uètJƒøz„ÿÿÿI9÷I‰÷†÷þÿÿH‹…øH‰…àL‰¥ðL‰­èI9ö‚óH¨H‰ÚI‰ðèm£H‹…¸H‰…Ð…¨)…ÀH‹…ÐH‹µØH‰F(…ÀFHÇM…ítMíA¸H‹øL‰êèPÅÿÿH‰ðHĈ[_^A\A]A^A_]ÃH‹…øH‰…àL‰¥ðL‰­èè“IH‹µØÆF‰F HÇM…íu–ë¬H‹…øH‰…àL‰¥ðL‰­èè å H‰ÙH‰òèNë H‰ñL‰òèÑõëäf.„DH‰T$UAWAVAUATVWSHƒì(Hª€HàèxÐÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌUAWAVAUATVWSHìÈH¬$€HÇ…@þÿÿÿH‰¸H‰•¨L‰…°H]¨H‰ÙèÙ¶Hƒ}¨„žH‹CH‰…ÐC)…À1ÀH‰…1ÒA¸H‰Ùè$IHÇ…WÀ…A¾¸H‰…0H‹…ÀH‰…E1äëDMöIþrtL‰óL)ãH‹H‰ÈL)àH9ØslLã‚ÓH H9ÓHBÚ1ÿH‰ØHØ“ÀH‰ÞHÞ‚±@ˆÇHÿH…ÉtEA¸H‹0I‰ñèQÃÿÿH…Àu?骀A¿I‰ÝëCDM‰ôM‰÷L‹­0ë+H‰ñH‰úèöÂÿÿH…À„pH‰M‰ôM‰÷H‰…0I‰ÅH]¨1ÉèhGH‹L‰êE‰ðèbG‰Æ…Àu è9G…À…8‰÷I9þuè%Gƒøz„ñþÿÿI9þI‰þ†èþÿÿH‹…0H‰…L‰¥ H‹…H‰…I9ÿ‚“HàL‰êI‰øè DŠ¥à·…áf‰…<Š…ãˆ…>‹½äL‹µèL‹½ð1ÛH‹µH…ötHöA¸H‹0H‰òèüÁÿÿH…Ût5Š…>ˆEª·…<f‰E¨ÿË…™E„ä…WÀ)…ë@Dˆ¥·…<f‰…Š…>ˆ…‰½L‰µ L‰½(HÇ…1öëxH‹…0H‰…L‰¥ H‹µH‰µ»E1äèÉE‰ÇH…ö…/ÿÿÿéBÿÿÿDˆ¥·E¨f‰…ŠEªˆ…‰½L‰µ HÇ…¾H‹•ÈH…ÒtHÒA¸H‹èåÀÿÿH…öuvH‹(H‹…¸H‰H…HÄÈ[_^A\A]A^A_]ÃH‹…0H‰…L‰¥ H‰è¿à H‰ñH‰úèç C…HÇ……)…ÀH…¨H‰…àH>H‰…èH…ÀH‰…ðHûH‰…øHýZH‰E¨HÇE°H²VH‰E¸HÇEÀH…àH‰EÈHÇEÐHüZHM¨è;éGÿÿÿH‰ùL‰úèÛðé7ÿÿÿfDH‰T$UAWAVAUATVWSHƒì(Hª€HèˆËÿÿHÀè|ËÿÿHƒÄ([_^A\A]A^A_]Ãf.„H‰T$UAWAVAUATVWSHƒì(Hª€HÀè¸ÈÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌ1ÀÃÌÌÌÌÌÌÌÌÌÌÌÌÌH¸câõ‡üÃÌÌÌÌÌUAVVWSHƒì`Hl$`HÇEøþÿÿÿH‰ËH‹yH‹qH9÷u:H‰÷HƒÇ‚dH…ö„ÛH‹ A¸H‰òI‰ùèϾÿÿH…À„ÔH‰H‰{H9þuGH‰÷HƒÇ‚4L46L9÷LC÷H…ö„¶H‹ A¸H‰òM‰ñè…¾ÿÿH…À„¯H‰L‰sëH‹H~Æ0H‰{H‹H‰EÐH‹CH‰EØH‹sH‰uàH‹UØH9òu H‹EÐ騂ËH…ötrH‹MÐA¸I‰ñè¾ÿÿH…À„½H‰EÐH‰uØH‰òëuºH‰ùèÛ½ÿÿH…À…,ÿÿÿºH‰ùèUä ºL‰ñè¶½ÿÿH…À…QÿÿÿºL‰ñè0ä H…ÒtH‹MÐA¸èš½ÿÿHÇEÐHÇEظ1ÒHƒÄ`[_^A^]ÃH‰]ÈÆE÷è›ÝëH‰]ÈÆE÷èŒÝëH‰]ÈH WQèŠè ºH‰ñè»ã f„H‰T$UAVVWSHƒì Hj`€}÷t H‹MÈèžÅÿÿHƒÄ [_^A^]ÃfH‰T$UAVVWSHƒì Hj`HMÐètÅÿÿÆE÷HƒÄ [_^A^]ÃÌÌÌÌÌAVVWSHƒì8I‰ÖH‰Î¹!º袼ÿÿH…À„àH‰ÃŠ9XˆC XCX¹ºèi¼ÿÿH…À„–H‰ÇH‰HÇ@!HÇ@!¹ºè;¼ÿÿH…ÀtlH‰8H lWH‰HÆ@ ŠL$7ˆH·L$5f‰H‹L$1‰HÆŠL$0ˆN·L$.f‰N‹L$*‰NH‰FI‹VH…ÒtI‹NA¸èç»ÿÿH‰ðHƒÄ8[_^A^ùºèKâ ¹!ºè:â ÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìxHl$pHÇEþÿÿÿH‰×I‰ÎL‹bÆEÐLmè1ÛL}¸L9ãré(HóL9ãƒÆG¶G<„TH‹WH‰ÖH)Þ‚R<u H‰uèHÇEàÆGH…öu»éfDL‹IغõÿÿÿL‰ùI‰ñèÚ§Hƒ}¸u€}Àu ƒ}Ät·€E¸)EàH‹EÈH‰EðH‹EàÆGHƒøuu¶uèHƒþtzHƒþu~H‹Eð¶@<u~@€þ‚?ÿÿÿH‹EðH‹H‰E°H‹@ÿH‹u°H‹FH‹PH…Òt H‹L‹@è~ºÿÿºA¸H‰ñèkºÿÿL9ã‚þþÿÿéH‹uèH…ö…àþÿÿë-¶Eé<të ‹Mì蜫<t‚AE)EÐH…Û…âé¹!ºèºÿÿH…À„@I‰ÇŠºUAˆG ŸUAGƒUA¹ºèƹÿÿH…À„åH‰ÆL‰8HÇ@!HÇ@!¹º蘹ÿÿH…À„·H‰0H ÅTH‰HÆ@ŠM¾ˆH·M¼f‰H‹M¸‰HŠM¾ˆMþ·M¼f‰Mü‹M¸‰MøÆEЋMø‰MÑ·Müf‰MÕŠMþˆM×H‰EØH…Ût(H‹wH)ÞrdHÇGtH‹HËH‰ÚI‰ðèO>H‰w(EÐAL‰ðHƒÄx[_^A\A]A^A_]ÃH ILè4äëH‰ÙèŠê ¹ºèYß H Kè äëß¹!ºè:ß „H‰T$UAWAVAUATVWSHƒì(HjpHMÐènÄÿÿHƒÄ([_^A\A]A^A_]Ãf.„fH‰T$UAWAVAUATVWSHƒì(HjpH‹u°H‹H‹VèßÿÿH‰ñèïÞÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌAVVWSHƒì8L‰ÏM‰ÆH‰ÓH‰ÎH‹JLÉH‹BH9ÁvHL$ H‰Úè>üÿÿ€|$ ueH‹CH9øvH‰ÙL‰òI‰øèð·ÿÿH‰~HÇëlÆCŠC<t2<tjHL$ ºõÿÿÿM‰ðI‰ùèo¤H‹D$ Hƒøu$€|$(uƒ|$,u1ÀëD$ FHÇëH‹|$(H‹L$0ÆCH‰H‰~H‰NH‰ðHƒÄ8[_^A^ÃH “Jè~â ÌÌÌÌÌÌÌÌÌÌÌÌUVWSHì˜H¬$€HÇEþÿÿÿH‰Ö¶HƒøtHƒøuNH‹AH‹H‹@H‰òÿP8é%¶A¹HƒÀÿHƒø‡ºHGHc‚HÐÿàH‚S¹é‹Q‰U H}ðH‰ùèS›H‰} HˆÝÿÿH‰E¨HE H‰E°H…(H‰E¸H‚SH‰EÀHÇEÈHMH‰EÐHÇEØHE H‰EàHÇEèHUÀH‰ñèÿ‰ÃH‹UøH…Ò„jH‹MðA¸è!¶ÿÿéVHéRéëHºR¹éÚH™RéÎH{R¹é½H]R¹ é¬H>R¹é›HR¹éŠHüQ¹ ë|HÙQ¹ënH¶Q¹ë`H‘Q¹ëRHwQ¹ ëDH`Q¹ ë6HHQ¹ ë(H%Q¹ëH Q¹ë HåP¹H‰E H‰M¨HE H‰EðHn¹ÿÿH‰EøHëQH‰EÀHÇEÈH¸NH‰EÐHÇEØHEðH‰EàHÇEèHUÀH‰ñ舉ÉØHĘ[_^]ÄH‰T$UVWSHƒì(Hª€HMðè#½ÿÿHƒÄ([_^]ÃÂýÿÿxþÿÿ‰þÿÿ•þÿÿ¦þÿÿ·þÿÿÈþÿÿÙþÿÿçþÿÿõþÿÿÿÿÿÿÿÿÿÿÿ-ÿÿÿ;ÿÿÿIÿÿÿWÿÿÿÌÌÌÌVHƒì H‰Îºôÿÿÿèþ H‰ðHƒÄ ^ÃÌÌÌÌÌH‰ÈÆÃÌÌÌÌÌÌÌÌÌUAVVWSHƒì`Hl$`HÇEøþÿÿÿH5JÔH‰ñèZ–H‰uÀH‹GÔHƒø„‰H…À…„¹ºè­³ÿÿH…À„¯H‰0HBXH‰Áè":A‰Æ¹º耳ÿÿH…À„H‰Ç·Eôf‰EÌ‹Eð‰EÈŠEöˆEÞ·Eôf‰EÜ‹Eð‰Eع(ºèC³ÿÿH…À„aH‰ÃH‰Áèê7·EÌf‰EÔ‹EȉEЋE؉Eà·EÜf‰EäŠEÞˆEæ‹Eð‰Eè·Eôf‰EìŠEöˆEî¹Pºèê²ÿÿH…À„H‰ÆHÇHÇ@H‰XHÇ@H‰x HÇ@(HÇ@0fÇ@8·EÔf‰F>‹EЉF:ÆF@·Eäf‰FEŠEæˆFG‹Eà‰FAÆFHŠEîˆFO·Eìf‰FM‹Eè‰FIE„öt;ðH~n¹ºèM²ÿÿH…ÀtSH‰0H‰¶Òë1öë H‹0ðH~=H ŒÒèÏ•H‰uÀH…ötH‰ðHƒÄ`[_^A^]ÃH IOº$èwÞ ¹ë!  ¹ºèkØ ¹(ë¹PºèSØ H‰T$UAVVWSHƒì Hj`HMÀèd½ÿÿHƒÄ [_^A^]ÄH‰T$UAVVWSHƒì Hj`HMÀè´»ÿÿHƒÄ [_^A^]ÃÌÌÌÌÌÌÌÌUAVVWSHìH¬$€HÇEþÿÿÿL‰ÇI‰ÎH‹HsH‹Kèî5‹gÒeH‹ %XH‹ÁHƒ¸¨u‹JÒeH‹ %XH‹ÁH‹€°ë+‹.ÒeH‹ %XH‹ÁHÇ€¨HÇ€°1À‹ ÒeH‹%XH‹ ÊH‰°H…ÀŠCHH‰uЕEØHEÐH‰EèÆEðOW )UÀ)M°)E H¯NHMèLE èš„À„Û€}ð…$¹ºèI°ÿÿH…À„´H‰ÇH‹eNH‰GH‹SNH‰¹ºè°ÿÿH…À„sH‰ÃH‰8HÇ@HÇ@¹ºèë¯ÿÿH…À„EH‰H KH‰HÆ@ŠM¦ˆH·M¤f‰H‹M ‰HŠM¦ˆM·M¤f‰M‹M ‰MAÆŠMAˆN·MfA‰N‹MA‰NI‰Fë^AÆŠEð<w<uOH‹EøH‹H‰EàH‹@ÿH‹MàH‹AH‹PH…Òt H‹ L‹@èZ¯ÿÿH‹MøºA¸èF¯ÿÿë HEðAH‹EЀ}Øui‹ YÐeH‹%XH‹ ÊHƒ¹¨u#‹ <ÐeH‹%XH‹ ÊHƒ¹°t/Æ@8ë)‹ ÐeH‹%XH‹ ÊHǨHǰH‹èE3L‰ðHÄ[_^A^]ùºèÕ ¹ºè Õ f.„H‰T$UAVVWSHƒì Hª€HMÐèa¼ÿÿHƒÄ [_^A^]ÃDH‰T$UAVVWSHƒì Hª€H‹EàH‹H‹PèúÔÿÿH‹MøèÑÔÿÿHƒÄ [_^A^]ÃDH‰T$UAVVWSHƒì Hª€HMèè¹ÿÿHƒÄ [_^A^]ÃÌÌÌÌÌUAWAVAUATVWSHƒìxHl$pHÇEþÿÿÿH‹2Hƒ~…<M‰ÎM‰ÇI‰ÍLfHÇFÿÿÿÿH~H‰}¸L‰eÀ€~0t!HMÐH‰úèÒñÿÿŠEÐ<ub€~(„ÆF0± L‰úM‰ðè€ÜH…À„–H‰ÓHƒúÿ„ØHƒÃL9ó‡ÒHMÐH‰úM‰øI‰Ùè õÿÿHƒ}ÐuyEØAEëKŠM׈Mö·MÕf‰Mô‹MщMðH‹MØŠUöˆUþ·Uôf‰Uü‹Uð‰UøAˆEŠEþAˆE·EüfA‰E ‹EøA‰E I‰MIÇEé%L‰éH‰úM‰øM‰ñèôÿÿéH‹EØH‰EèÆF0HMÐH‰úèãðÿÿŠEÐ<…—€~(„.ÆF0H‹uèH9Þ…ÅIßI)ÞHMÐH‰úM‰øM‰ñè5ôÿÿHƒ}Ð…ÇI‰]IÇE€}Ø‚˜H‹EàH‹H‰EèH‹@ÿH‹uèH‹FH‹PH…Òt H‹L‹@è¬ÿÿºA¸H‰ñèó«ÿÿëU<H‹uèrAH‹EØH‹H‰EÈH‹@ÿH‹}ÈH‹GH‹PH…Òt H‹L‹@軫ÿÿºA¸H‰ù訫ÿÿI‰uIÇEIƒ$L‰èHƒÄx[_^A\A]A^A_]ÃH]ØI‰]ëÕè´Éÿÿ èÝë'H‰ÙL‰òèpÜëH §>è’Öë H ™>è„Ö fH‰T$UAWAVAUATVWSHƒì(HjpH‹uèH‹H‹VèçÑÿÿH‰ñè¿ÑÿÿHƒÄ([_^A\A]A^A_]Ãf.„H‰T$UAWAVAUATVWSHƒì(HjpH‹uÈH‹H‹Vè—ÑÿÿH‰ñèoÑÿÿHƒÄ([_^A\A]A^A_]Ãf.„H‰T$UAWAVAUATVWSHƒì(HjpHM¸è.²ÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌUVHìøH¬$€HÇEpþÿÿÿóoóoIóoQ fUàfMÐfEÀHãGH‰E HÇE¨‹AËeH‹ %XH‹Á€¸At ÆE@é ‹ËeH‹ %XH‹Á€¸@u-‹ËeH‹ %XH‹4ÁHŽ HÅ×ÿÿèPaƆ@‹ÓÊeH‹ %XH‹ÁHƒ¸ „ƒ‹²ÊeH‹ %XH‹Áfo€0foˆ fïÒf0¹fHnÑf fH~ÈH…Àt8fH~ÁH…Ét.fpÀNfH~ÀH‰MhH‰EøÿH‹EøH‹PH…ÒH‹Mht L‹@è©ÿÿ‹/ÊeH‹ %XH‹ÁHƒ¸(tTèÓôÿÿH‰ÆH‰E@(EÀfoMÐfoUàfU fM)EHM0HU@I‰èè@÷ÿÿðH.…­HM@èÙªÿÿ韋¾ÉeH‹ %XH‹ÁHÇ€(ÿÿÿÿHˆ(H0H‰U@H‰MHH‹0H…Ò„°‹zÉeH‹ %XH‹ÁH‹€8(EÀfoMÐfoUàfU fM)EHM0I‰èÿP0‹:ÉeH‹ %XH‹ÁHƒ€(óoE0fE@€}@upèÐóÿÿH‰ÆH‰E0foEÀfoMÐfoUàfU fMfEHM°HU0I‰èè;öÿÿðH.u HM0èØ©ÿÿŠE@<‡<„•€}°uHÄø^]ÃfoE@fE°€}°tæ(E°)E0HE H‰E@H®«ÿÿH‰EHHE0H‰EPH ðÿÿH‰EXH DH‰EHÇEHÅ=H‰EHÇEHE@H‰E HÇE(H¢DH‰éèRt H‹EHH‹H‰EhH‹@ÿH‹uhH‹FH‹PH…Òt H‹L‹@è¦ÿÿºA¸H‰ñ详ÿÿ€}°„&ÿÿÿé;ÿÿÿ‹ÊÇeH‹ %XH‹ÁHÇ€(é•ýÿÿf.„H‰T$UVHƒì(Hª€HM@è²ÿÿHƒÄ(^]Ãf.„H‰T$UVHƒì(Hª€HM@èÕ­ÿÿHƒÄ(^]Ãf.„H‰T$UVHƒì(Hª€€}@t HM@èϱÿÿHƒÄ(^]ÀH‰T$UVHƒì(Hª€HM0è5¯ÿÿHƒÄ(^]Ãf.„H‰T$UVHƒì(Hª€H‹MhH‹UøèaÌÿÿHƒÄ(^]Ãf„H‰T$UVHƒì(Hª€HM0è%±ÿÿHƒÄ(^]Ãf.„H‰T$UVHƒì(Hª€H‹uhH‹H‹VèþËÿÿH‰ñèÖËÿÿHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìXHl$PHÇEþÿÿÿI‰ÎM…É„L‰ÏL‰ÃI‰ÕLeàL}ØfDL‰ùL‰êI‰ØI‰ùèßöÿÿHƒ}Ø…„¶uàHƒþ„œHƒþ… H‹Eè¶@<… @€þrAH‹EèH‹H‰EÐH‹@ÿH‹uÐH‹FH‹PH…Òt H‹L‹@èX¤ÿÿºA¸H‰ñèE¤ÿÿH…ÿ…lÿÿÿëYf.„H‹MàH…Ét^H‰øH)È‚"HËH‰ÇH…ÿ…<ÿÿÿë)¶Eá<„rÿÿÿë‹MäèT•<„`ÿÿÿA$AëAÆL‰ðHƒÄX[_^A\A]A^A_]ùº誣ÿÿH…À„ÓH‰ÆyA@ bA¹ºèz£ÿÿH…À„’H‰ÇH‰0HÇ@HÇ@¹ºèL£ÿÿH…ÀthH‰8H }>H‰HÆ@ŠM÷ˆH·Mõf‰H‹Mñ‰HŠM÷ˆMþ·Mõf‰Mü‹Mñ‰MøAÆŠMþAˆN·MüfA‰N‹MøA‰NI‰FéÿÿÿH‰úè‘Ô ¹ºè`É ¹ºèOÉ f.„H‰T$UAWAVAUATVWSHƒì(HjPHMØè¾­ÿÿHƒÄ([_^A\A]A^A_]Ãf.„fH‰T$UAWAVAUATVWSHƒì(HjPH‹uÐH‹H‹Vè'ÉÿÿH‰ñèÿÈÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌUAWAVATVWSHƒì`Hl$`HÇEøþÿÿÿI‰ÎM…É„L‰ÏL‰ÃL}ØLeÐf.„ºôÿÿÿL‰áI‰ØI‰ùè­ŽHƒ}Ð…‚¶uØHƒþ„šHƒþ…žH‹Eà¶@<…ž@€þrAH‹EàH‹H‰EÈH‹@ÿH‹uÈH‹FH‹PH…Òt H‹L‹@èv¡ÿÿºA¸H‰ñèc¡ÿÿH…ÿ…jÿÿÿëV„H‹MØH…Ét[H‰øH)È‚HËH‰ÇH…ÿ…<ÿÿÿë(¶EÙ<„tÿÿÿë‹MÜèt’<„bÿÿÿAAëAÆL‰ðHƒÄ`[_^A\A^A_]ùºèÍ ÿÿH…À„ÓH‰Æœ>@ …>¹ºè ÿÿH…À„’H‰ÇH‰0HÇ@HÇ@¹ºèo ÿÿH…ÀthH‰8H  ;H‰HÆ@ŠMïˆH·Míf‰H‹Mé‰HŠMïˆMö·Míf‰Mô‹Mé‰MðAÆŠMöAˆN·MôfA‰N‹MðA‰NI‰FéÿÿÿH‰úè´Ñ ¹ºèƒÆ ¹ºèrÆ H‰T$UAWAVATVWSHƒì Hj`HMÐèðªÿÿHƒÄ [_^A\A^A_]ÃH‰T$UAWAVATVWSHƒì Hj`H‹uÈH‹H‹VèiÆÿÿH‰ñèAÆÿÿHƒÄ [_^A\A^A_]ÃÌUVWSHìˆH¬$€HÇEþÿÿÿH‰ÎH‰UàÆEèAAHAP )UÀ)M°)E H!=HMàLE èLï„À„×€}è…¹ºèûžÿÿH…À„1H‰ÇH‹=H‰GH‹=H‰¹ºèËžÿÿH…À„ðH‰ÃH‰8HÇ@HÇ@¹ºèžÿÿH…À„ÂH‰H Ê9H‰HÆ@ŠM¦ˆH·M¤f‰H‹M ‰HŠM¦ˆMþ·M¤f‰Mü‹M ‰MøÆŠMþˆN·Müf‰N‹Mø‰NH‰Fë\ÆŠEè<w<uNH‹EðH‹H‰EØH‹@ÿH‹MØH‹AH‹PH…Òt H‹ L‹@èžÿÿH‹MðºA¸èýÿÿë HEèH‰ðHĈ[_^]ùºèSÄ ¹ºèBÄ H‰T$UVWSHƒì(Hª€HMà賨ÿÿHƒÄ([_^]Ãf„H‰T$UVWSHƒì(Hª€H‹EØH‹H‹Pè<ÄÿÿH‹MðèÄÿÿHƒÄ([_^]ÃÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿM‰ÁI‰ÐH‰ÎH‹HMÐèøÿÿ€}Ðu1Àë,EÐ)Eà€~HFH‰Eøt H‹MøèO©ÿÿ(EàH‹Eø°HƒÄX^]Ãf.„H‰T$UVHƒì(HjP(EàH‹EøHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿM‰ÁI‰ÐH‰ÎH‹HMÐèXúÿÿ€}Ðu1Àë,EÐ)Eà€~HFH‰Eøt H‹Møè¯¨ÿÿ(EàH‹Eø°HƒÄX^]Ãf.„H‰T$UVHƒì(HjP(EàH‹EøHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVAUATVWUSHì8M‰ÅH‰×H‰L$(Lt$AL¼$°LbH¬$øë*€D$0L$@T$P\$`_0W OH‹H‹O¶W€út%I‹t$H‰´$A$AL$)Œ$€)D$p·w8¶_:H‰D$0H‰L$8ˆT$@H‹„$I‰F(D$p(Œ$€ANAf‰t$hˆ\$jHL$pHT$0è H‰éL‰êè „$øŒ$”$œ$(A_0AW AOAH‹D$pH‹Œ$°Hƒø„Hƒù„—H9ÈuiHƒøt.H…À…åþÿÿHL$xH”$¸è³„À…Ëþÿÿë>f„L‹„$€L;„$Àu#H‹L$xH‹”$¸H9Ñ„˜þÿÿ茅À„‹þÿÿH‹D$(ëHƒùH‹D$(uOW _0ëÆ@8ë#OW _0H‹D$(X0P HHÄ8[]_^A\A]A^A_ÃÌÌÌÌÌÌÌÌÌÌÌVWHƒì(¶A:B…†H‰ÖH‰ÏHƒÀÿHƒøwSH zHcHÈÿàL‹G L;F u\H‹OH‹VH9Ñt èÊ…ÀuFL‹G0L;F0u.I9ÊtA€:.u\AŠ^€û’°€ût‰Ð<• ‰Ð4¶ÀH@HƒÀI9Êt3„Òu/A€:.¸uë"¸H ê-I9ÊtA· ù..t¸M‰$I‰D$M‰T$M‰\$H‹D$@I‰D$@D$ L$0AL$0AD$ L‰àHƒÄH[]_^A\A]A^A_ÃèÎÀ Qýÿÿ›ýÿÿnýÿÿxýÿÿ•ýÿÿÌÌÌÌÌÌÌÌAWAVAUATVWUSHì¨I‰ÍŠB9<u IÇEé‰H‰×LzHl$pLt$`L%Úf.„@¶O:€ùtÄ8ÈwÀ<„»<tG<„xE¶A€ø„çL‰þ„é¶Hƒû‡8IcœLàÿàH‹NHƒÁéDHƒ„àL‰ñH‰úèºøÿÿH‹L$`H‹D$hEMU )D$ )L$0)T$@H‹U0H‰T$PH‹WH‰ÓH)Ë‚HH‰_HƒøtOé–f.„ÆG9€8…G¶G<r*<t&<…LH‰ùè÷ÿÿ„À…xf.„@¶G9ëZ¾…ÿÿÿÆG9°ëGH‹FH‹N HQH…ÉHDÑH HƒÁëH‹FH‹N HQH…ÉHDÑH HƒÁÆG9°H…Éu@<…ˆþÿÿéPþÿÿÆG9L‹H‹WHƒÃÿHƒûw:¹HBHc,˜HÅÿåH‹FH‹N HiH…ÉHDéH (HƒÁH9ÊséÎH‹NHƒÁH9Ê‚½Hƒûw5¸H-Hc\HëÿãH‹FH‹n H]H…íHDÝHØHƒÀéÐH‹FHƒÀéÃH‹GH…À„‹HƒHƒÀÿH‰GIÇEéÆG9IÇEéI‰EH‹D$PI‰E8(D$ (L$0(T$@AU(AMAEé×¹H9ʃCÿÿÿè1½ ¸ë@H‹FH‹N HiH…ÉHDéH (HƒÁH9ʃÿÿÿëÌH‹FH‹n H]H…íHDÝHØHƒÀH‰ÓH)¿LÈH‰H‰_H‹G0H‰D$GO!)L$p)D$`)D$ (D$p)D$0H‹D$H‰D$?IÇEM‰MI‰MEˆEH‹D$?I‰E8(D$ (L$0AM)AEL‰èHĨ[]_^A\A]A^A_ÃH‹GH…Àt:HƒHƒÀÿH‰GIÇEëÊH ÃL‰)º(è\ H‰Á襼 ¹1Òè—¼ ‚üÿÿzýÿÿ±ýÿÿ‚üÿÿ]ýÿÿÇýÿÿôýÿÿìýÿÿÈþÿÿ¬þÿÿþÿÿôþÿÿ$þÿÿÚþÿÿ­þÿÿÌÌÌÌÌÌÌÌAWAVATVWUSHƒì0H‰ÈIƒøs.H|$$·L$.f‰L$(‹L$*‰L$$A´L‰ÅH‰ÖH…í…›é¥H Ü3H9Êta· ù\\tV€z:uµŠ „Éx¯¶É‰Íƒå߃ſƒýsŸH‹- ªDŠ| H|$$·L$.f‰L$(‹L$*‰L$$A»A´M9Æé›LrMXþIƒûƒ–N<¾E1ÉH,2L‰ÿH)ïHƒÿ†À¶]€û/A•€û\•ÁD ѶÉIÉ€û/„΀û\„Ŷ\2€û/A•€û\•ÁD ѶÉIÉ€û/„¡€û\„˜¶\2€û/A•€û\•ÁD ѶÉIÉ€û/tx€û\ts¶\2€û/A•€û\•ÁD ѶÉIÉ€û/tSHƒÆ€û\…AÿÿÿëDf.„DHƒÆI9ð„jþÿÿL‰Í¶2€û/A•Á€û\•ÁD ÉD¶ÉIé€û/t€û\uËM9Ù‡SIIM‰ÚI)Ê‚PLñE1ÛH‰Îf„L‰ÿH)÷Hƒÿ†Ä¶.@€ý/@•Ç@€ý\•Ã@ û¶ûIû@€ý/„Ï@€ý\„Ŷn@€ý/@•Ç@€ý\•Ã@ û¶ûIû@€ý/„Ÿ@€ý\„•¶n@€ý/@•Ç@€ý\•Ã@ û¶ûIû@€ý/ts@€ý\tm¶n@€ý/@•Ç@€ý\•Ã@ û¶ûIû@€ý/tKHƒÆ@€ý\…9ÿÿÿë;€HƒÆI9÷t7L‰ß¶.@€ý/A•Ã@€ý\•ÃD ÛD¶ÛIû@€ý/t@€ý\uÌM9Ú‚;M‰ÚM…É„þüÿÿM…Ò„õüÿÿH|$$·l$.f‰l$(‹l$*‰l$$OIƒÃA´M9ÆL‰ÙL‰Âèø¸ H É0I9΄ÂA·ù?\„²H ç0I9ÎtA·ù.\….ýÿÿLrMHüN½1É€H<*L‰ÓH)ûHƒû†w¶1ö€û\@•ÆHñ€û\„‰¶_1ö€û\@•ÆHñ€û\„p¶_1ö€û\@•ÆHñ€û\„W¶_1ÿ€û\@•ÇHùHƒÅ€û\u‰é9LrMHüIƒùrH ë/I9΄¢A>UNC\„•N½1Éf.„@H<*L‰ÓH)ûHƒû†û¶1ö€û\@•ÆHñ€û\„¶_1ö€û\@•ÆHñ€û\„¶_1ö€û\@•ÆHñ€û\„è¶_1ÿ€û\@•ÇHùHƒÅ€û\u‰éÊLrMXøJ4»E1ÉH H‰÷H)ÏHƒÿ†‰¶ 1í€ù\@•ÅIé€ù\„¬¶L1í€ù\@•ÅIé€ù\„’¶L1í€ù\@•ÅIé€ù\„x¶L1í€ù\@•ÅIéHƒÃ€ù\u†éY»H)Ëf„I9脆HƒÃÿ€<*\Hmué”Á€Á¶ÉƒáH)ÙHƒùuWIƒù‚™€z:uGAŠ„Ûx@¶ë‰ëƒã߃ÿƒûw0H‹ ž¤DŠ<)H|$$·L$.f‰L$(‹L$*‰L$$A»A´é‘úÿÿI9É‚9I‰ÉH|$$·L$.f‰L$(‹L$*‰L$$E1äëP»H)ËI9èt)HƒÃÿ€<*\Hmuí”Á€Á¶ÉƒáH)ÙI9É‚çI‰ÉH|$$·L$.f‰L$(‹L$*‰L$$A´MYM9Æ4é°üÿÿH œE1ÒI9Øt$L‰Ï¶,E1É@€ý\A•ÁIù@€ý\tHƒÃI9ØuÜM‰Ùé¾M9Ù‡PIIM‰ÚI)Ê‚MLñE1ÛH‰ËH‰÷H)ßHƒÿve¶;1í@€ÿ\@•ÅIë@€ÿ\tn¶{1í@€ÿ\@•ÅIë@€ÿ\tW¶{1í@€ÿ\@•ÅIë@€ÿ\t@¶{HƒÃ1í@€ÿ\@•ÅIë@€ÿ\u•ë#HƒÃH9Þt&L‰ß¶+E1Û@€ý\A•ÃIû@€ý\uÝM9Ú‚µM‰ÚH|$$·l$.f‰l$(‹l$*‰l$$IjM…ÒIDêM)IƒÃA´M9ÇûÿÿJ4L‰ÅL)ÝH…ítŠ@¶€û/t€û\t1öH‰L‰@Dˆ`Dˆx·Wf‰P‹‰PL‰pL‰H H‰H(L‰P0@ˆp8fÇ@9HƒÄ0[]_^A\A^A_ÃL‰ÉL‰Ú脳 L‰Úè ´ L‰ÙL‰Òèm³ L‰Êèc³ H ê+ºM‰ÈèÝ­ ÌÌÌÌÌÌÌÌÌÌÌI‰ÐH‹H‹QH‰ÁéÞ=ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìxHl$pHÇEþÿÿÿH‹öÆ„öA½H5G¢€Iƒý wI}H‰ñè.dë,f.„fH‰ñèdL‰ïIƒý u¸¿ ë1ÀH‹¢H‰¢H‰ñèeH…Û„IH‰}°Hƒû„YL‹#H‹CH‰]èL‹{IÁçO4Lº/èÝM HÇE¸H ˜º^è2© H QL2º*è¨M fDH‰T$UAWAVAUATVWSHƒì(Hjp)uðHM¸èú…ÿÿ(uðHƒÄ([_^A\A]A^A_]ÃDH‰T$UAWAVAUATVWSHƒì(Hjp)uðHMÐèÚ‹ÿÿ(uðHƒÄ([_^A\A]A^A_]ÃDH‰T$UAWAVAUATVWSHƒì(Hjp)uðHMÐèz…ÿÿ(uðHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌUVWHìH¬$€HÇEþÿÿÿ1À€y”ÀH‹ HÀHƒÀH‡‰ÁƒáH‰MÐHUÐH‰UÈHH‰UÀHƒùumHƒàütNHuØ@H‹xH‹HÇH‰MØH…Ét:H‰Mر†HH‰ñ踲ÿÿH‹EØðH(uH‰ñè²|ÿÿH‰øH…ÿuºHÄ_^]ÃH xèc¦ HEÈH‰E Hb~ÿÿH‰E¨HMÀH‰M°H‰E¸HsH‰EØHÇEàHH‰EèHÇEðHE H‰EøHÇEHHMØèH f.„H‰T$UVWHƒì Hª€HMØèŠÿÿHƒÄ _^]Ãf.„H‰T$UVWHƒì Hª€HMØèäƒÿÿHƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌÌAWAVATVWSHƒì(L‰ËL‰ÆI‰ÖL‹¼$€IƒùwDèÞþ1ÒH‰ÁM‰øè×þH‰ÇH…ÿtdL9þIG÷H‰ùL‰òI‰ðèÿHƒûwMè©þ1ÒH‰ÁM‰ðëLM$è–þ1ÿ1ÒH‰ÁM‰àèþH…Àt4HKÿH!ÁH‰ÚH)ÊH‰ÇH×H‰DøH…ÿuœ1ÿëè\þM‹Fø1ÒH‰ÁèZþH‰øHƒÄ([_^A\A^A_ÃÌÌÌÌÌÌUAWAVAUATVWSHƒìhHl$`HÇEþÿÿÿI‰×I‰ÎH‰MàH‰UèÆEÿH=º™H‰ùè²[H‰}ØH‹·™Hƒû„»H…Ûu0¹ºè yÿÿH…À„6H‰ÃHÇWÀ@H‰x™L‰uÈL‰}ÐH‹sH;suzH‰÷HƒÇ‚øH6H9ÇHBø¹E1äH‰øH÷áI‰Å‘À€ÓAˆÄIÁäH…ö„¢HÁæH‹ A¸H‰òM‰éèœxÿÿH…À„•H‰H‰{H‹sH‹}Øë³1öë!H‹H=Ò˜HÁæL‰40L‰|0HƒC@¶1Ûˆ]ÿH‰ùèà[„Ût'H‹EèL‰ñH‰EðÿH‹EðH‹PH…Òt H‹MàL‹@èxÿÿ‰ðHƒÄh[_^A\A]A^A_]ÃL‰éL‰âèçwÿÿH…À…kÿÿÿL‰éL‰âècž è ˜ ¹ºèKž f„H‰T$UAWAVAUATVWSHƒì(Hj`HMÈèn€ÿÿHƒÄ([_^A\A]A^A_]Ãf.„fH‰T$UAWAVAUATVWSHƒì(Hj`H‹MàH‹Uðè*žÿÿHƒÄ([_^A\A]A^A_]ÄH‰T$UAWAVAUATVWSHƒì(Hj`HMØè΂ÿÿÆEÿHƒÄ([_^A\A]A^A_]Ãf„H‰T$UAWAVAUATVWSHƒì(Hj`öEÿt HMàè¨ÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌUAWAVAUATVWS¸èzòH)ÄH¬$€)µ€HÇ…xþÿÿÿI‰ÌH‰•0L‰…8DˆsWÀ)…Ç……Ç…()…0Ç…@…HÇ…X)…`Ç…p…xÇ…ˆ)…Ç… …¨Ç…¸)…ÀÇ…Ð…ØÇ…è)…ðÇ… … Ç… )… Ç…0 …8 Ç…H )…P Ç…` …h Ç…x )…€ Ç… …˜ Ç…¨ )…° Ç…À …È Ç…Ø )…à Ç…ð …ø Ç… )… Ç… …( Ç…8 )…@ Ç…P …X Ç…h )…p Ç…€ …ˆ Ç…˜ )…  Ç…° …¸ Ç…È )…Ð Ç…à …è Ç…ø )… Ç… … Ç…( )…0 Ç…@ …H Ç…X )…` Ç…p …x Ç…ˆ )… Ç…  …¨ Ç…¸ )…À Ç…Ð …Ø Ç…è )…ð Ç… … Ç… )… Ç…0 …8 Ç…H )…P Ç…` …h Ç…x )…€ Ç… …˜ Ç…¨ )…° Ç…À …È Ç…Ø )…à Ç…ð …ø Ç… )… Ç… …( Ç…8 )…@ Ç…P …X Ç…h )…p Ç…€ …ˆ Ç…˜ )…  Ç…° …¸ Ç…È )…Ð Ç…à …è Ç…ø )…Ç……Ç…()…0Ç…@…HÇ…X)…`Ç…p…xÇ…ˆ)…Ç… …¨Ç…¸)…ÀÇ…Ð…ØÇ…è)…ðÇ……Ç…)… Ç…0…8Ç…H)…PÇ…`…hÇ…x)…€Ç……˜Ç…¨)…°Ç…À…ÈÇ…Ø)…àÇ…ð…øÇ…)…Ç… …(Ç…8)…@Ç…P…XÇ…h)…pÇ…€…ˆÇ…˜)… Ç…°…¸Ç…È)…ÐÇ…à…èÇ…ø)…Ç……Ç…()…0Ç…@…HÇ…XHÍH‰EÐHÍH‰EØfÇEàÇEèÆEìH`HUÐè'†ÿÿH‹µ`H‰ñèQôH…ÀtH‰Ã1ÿëèòó‰ÃHÁã ¿H‹•hH…ÒtHÒA¸H‰ñèOoÿÿH…ÿt ¸I‰ÞéH‰hÆ…wL9HMÐH•hA¹ èbKL‹uØHƒ}Ðu H‹uàéÑÆ…wLHMÐH•hA¹ è*KH‹}ØHƒ}Ðu H‹uàI‰þé–Æ…wLÝHMÐH•hA¹ èïJHƒ}ÐL‰¥X…®EØ…HÇ……)…@Æ…vÆ…uÆ…tL€HMÐH•hA¹ è‡JHƒ}Ð…ËEØ…ˆHÇ…€L‹¥@H‹µH€½ˆ‚ÄH‹…H‹H‰…`H‹@ÿéuH‹EØH‰…`H‰…HÇ…Æ…vÆ…uÆ…tL^HMÐH•hA¹èàIH‹EÐL‹mØH‹uàH‰…`L‰­hH‰µpHƒøuzM‰ìé*H‹EØH‰…`H‰…ˆHÇ…€L$HMÐH•hA¹ èwIH‹EÐL‹mØH‹uàH‰…`L‰­hH‰µpHƒøuFM‰ì€½@ssé¸L´HMÐH•hA¹è"IL‹eØHƒ}Ð…£H‹uàéƒL¥HMÐH•hA¹èíHL‹eØHƒ}Ð…sH‹uà€½@rJH‹…HH‹H‰…`H‹@ÿH‹½`H‹GH‹PH…Òt H‹L‹@èJlÿÿºA¸H‰ùè7lÿÿM‰æL‹¥XH‰Ùè¦ð¸H‰…ÀL‰µÈH‰µÐ(EÐ(Mà(Uð…Øè•øH…ÀtH‹…ÈI‰$H‹…ÐI‰D$é;L‰¥XH…ÐH‹H0H‰HP )•€)p)…`Iƒþeƒ£ Š…sH`H‰À<„KvH<ÅHïHµH…ÀH‰EÐ1ÒH]ÐH‰øH)ðHƒø_vIH‰ÙI‰ð蹓ÿÿH…Àu`LFH‰Ù訓ÿÿH…ÀuOLF0H‰Ùè—“ÿÿH…Àu>LFHH‰Ù膓ÿÿHƒÆ`H…Àt­ë'H9þtH]ÐfH‰ÙI‰ðèe“ÿÿH…Àu HƒÆH9þuçL‰òL‰÷H)×L9÷skH…ÿtfH‹•0H‹…8H 7 H‰MÐHÇEØHÇEàH ýH‰MðHÇEøHÀLEÐÿP0…À)…€€½€té”1ÿH‹•0H‹…8H ÷ H‰MÐHÇEØHÇEàH ¬üH‰MðHÇEøHÀL}ÐM‰øÿP0…À)…€€½€…*I)þIƒþeƒL­KvH<ÅHïH€Hu$Le$1ÀI9ýu#é6fDIƒÅH‹…`HƒÀI9ý„H‰…`H‰…pL‰­hM‹uHƒ½p…Á1ÒA¸(L‰ùè†îÇE ÐÇEÐXH‹`HÇ…ÀL‰òL…ÀM‰ùÿ•€ƒø…EH‹EI9Æ‚8‹MìH…Ét HÈI9ƃ$H‰ñè3îHƒøÿ„HÀH‰òI‰Àè ¤L‹ÐHƒ½À„ñL‹…Èéâf.„DA‹]1ÒA¸(L‰ùèÁíÇE ÐÇEÐXH‹`HÇ…ÀH‹…€L‰|$ L‰òA‰ØH€LÀÿЃø…ÁH‹EI9Æ‚´‹MìH…Ét HÈI9ƃ L‰áè_íHƒøÿ„YHÀL‰âI‰ÀèL£L‹ÐHƒ½À„%L‹…Èëaf.„@E1ÀH…0H‰…ÀH…pH‰…ÈH…hH‰…ÐH…sH‰…ØH€H•ÀèB ëNE1ÀH…0H‰…ÀH…pH‰…ÈH…hH‰…ÐH…sH‰…ØH€H•Àèò …€)…€½…ÂH‹…h)…ÀH‹@H‰…ÐHƒ½puaH‰@H‹…ÐH‰Eà(…À)EÐH…`H‰D$(H…sH‰D$ H€H•@M‰øL0èAë_f.„H‰@H‹…ÐH‰Eà(…À)EÐH…`H‰D$(H…sH‰D$ H€H•@M‰øL0èžAH‹…H‰… …€)…€½„É€½„hüÿÿH‹•0H‹…8A¹L‰ùLºÿP(EÐ)…À€½À„/üÿÿéžE1ÀéõýÿÿE1Àé=þÿÿ(…€L‹¥XA$H‹`ÿ•hH‹èêL‰à(µ€HÄ[_^A\A]A^A_]ÃL‹¥XAÆ$H‹`ÿ•hë»(…ë™H‹…L‹¥XI‰$H‹… I‰D$ë…(…ÀémÿÿÿE1ÿëY€½@rJH‹…HH‹H‰…xH‹@ÿH‹µxH‹FH‹PH…Òt H‹L‹@èÛdÿÿºA¸H‰ñèÈdÿÿA¿è\éH‰ÆH‰…€H‰½ˆL‰½H‹…`H‰…˜L‰­ L‰¥¨H‰°1ÒA¸H‰ñAÿÖL‹¥XHˆƒø…]è÷èH‰ÇèïèH‰ÃE1ö1ÒA¸ÐLmÐL‰éM…ÿ„SèbéL‰éèôèWöµhµXµHµ8µ(µµµøµèµØµÈµ¸µ¨µ˜µˆµxH‹…ÈH‰…`Ç…lH‹EhH‹MpH‰…Ç…œH‰€Ç…ŒL­`t$8t$(HEÐH‰D$ ¹d†H‰úI‰ØM‰éÿ•`ƒø…1H‹…`HƒÀÿK vH‰„ÍH‰„ÍÇ„ÍIƒÆIƒþdrœéøIQ )Uð)Mà)EÐE1ö1Àé¿öÿÿèèL‰éè¡çHh1ÒA¸èóçH‹…ÈH‰…`Ç…lH‹EhH‹MpH‰…Ç…œH‰€Ç…ŒWöL­`t$8t$(HEÐH‰D$ ÇD$H¹d†H‰úI‰ØM‰éÿ•`ƒøu6H‹…`HƒÀÿ‹lKvH‰„ÕH‰„Õ‰ŒÕIƒÆIƒþdr–H…ˆHP )Uð)Mà)EÐ1ÀéÃõÿÿºdL‰ñèæ’ë-ºdL‰ñè×’ëHÇÁÿÿÿÿ1ÒèÇ’ëHÇÁÿÿÿÿ1Òè·’ DH‰T$UAWAVAUATVWSHƒìXHª€)µ€Hèmÿÿ(µ€HƒÄX[_^A\A]A^A_]Ãf„H‰T$UAWAVAUATVWSHƒìXHª€)µ€Hè1mÿÿ(µ€HƒÄX[_^A\A]A^A_]Ãf„H‰T$UAWAVAUATVWSHƒìXHª€)µ€H`è¡pÿÿ(µ€HƒÄX[_^A\A]A^A_]Ãf„H‰T$UAWAVAUATVWSHƒìXHª€)µ€H€èQpÿÿÆ…w(µ€HƒÄX[_^A\A]A^A_]ÃfH‰T$UAWAVAUATVWSHƒìXHª€)µ€€½wt Hhè8lÿÿ(µ€HƒÄX[_^A\A]A^A_]ÃH‰T$UAWAVAUATVWSHƒìXHª€)µ€€½rt(ö…quJÆ…w(µ€HƒÄX[_^A\A]A^A_]ÃHèÐjÿÿÆ…w(µ€HƒÄX[_^A\A]A^A_]ÃHèõhÿÿÆ…w(µ€HƒÄX[_^A\A]A^A_]ÃfDH‰T$UAWAVAUATVWSHƒìXHª€)µ€H€èQjÿÿÆ…vÆ…uÆ…t(µ€HƒÄX[_^A\A]A^A_]Ã@H‰T$UAWAVAUATVWSHƒìXHª€)µ€@еuŠv€½tu(€ãˆr@ˆµq(µ€HƒÄX[_^A\A]A^A_]ÃH@èhÿÿ€ãˆr@ˆµq(µ€HƒÄX[_^A\A]A^A_]Ãf.„H‰T$UAWAVAUATVWSHƒìXHª€)µ€Æ…vÆ…uÆ…tH`èŸv*éÙL9ÆI‰ÙLDÎIYM9ÁIDÙ€ùðr HKL9ÃHEÙL9Ãu†H‰E H‰U¨H ôH‰…HĶH‰…˜HE H‰… H+UÿÿH‰…¨H…XH‰…°HßÃH‰…¸H‰óH‰EPHÇEXHæH‰E`HÇEhL‰}pHÇExHMðLEPL‰êÿ×Eð)Eà€}à…ê@¶ë1öH‹U8H…ÒtA¸H‹Øè5Pÿÿ@„ö…‡HEÐH‰EPH}TÿÿH‰EXH…XH‰E`H7ÃH‰EhH$óH‰…HÇ…˜H‹æH‰… HÇ…¨HEPH‰…°HÇ…¸HMðL…L‰êÿ×€}ðuLòA¹L‰áL‰êAÿÖë EðA$L‰àHÄh[_^A\A]A^A_]Ã(EàA$H‹U8H…Òt×A¸H‹ØèIOÿÿëÀH‰T$UAWAVAUATVWSHƒì(Hª€HM0è«WÿÿHƒÄ([_^A\A]A^A_]Ãf„H‰T$UAWAVAUATVWSHƒì(Hª€H‹µØH‹H‹Vè¡uÿÿH‰ñèyuÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌI‰ÐH îñºéì®ÌÌÌÌÌÌÌÌÌÌÌÌUVWHƒìPHl$PHÇEøþÿÿÿH‹H…Àˆ¼H‰ÎH¹ÿÿÿÿÿÿÿH9È„¦H~Hƒ~H‰ueHÇEÐHMÐèÛ‚ÿÿH‰EèHƒ>…™HÇÿÿÿÿH‰}ðH‰}ÐH‰uØH‹FH…ÀtðH(u H‹MðènOÿÿH‹EèH‰FH‹EØHƒH‹H‹}ðH…Àu5HÇÿÿÿÿH‰}ÐH‰uØH‹FH…Àt$ðH~(HƒHƒÄP_^]Ãèlÿÿ èèkÿÿ H ïàèÚxë   èÏkÿÿ f.„H‰T$UVWHƒì HjPHMèèçVÿÿHƒÄ _^]Ãf.„@H‰T$UVWHƒì HjPH‹EèH‹MðH‰HMÐèÜTÿÿHƒÄ _^]ÃH‰T$UVWHƒì HjPHMÐè·TÿÿHƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌUVHƒìXHl$PHÇEþÿÿÿH‰ÎH‰Mè‹neH‹ %XH‹Á€¸a…ò‹àmeH‹ %XH‹Á€¸`uDÆEÿ‹ÀmeH‹ %XH‹ÁHˆHH5{ÿÿ苚meH‹ %XH‹ÁÆ€`‹€meH‹ %XH‹ÁHƒ¸Hu$‹cmeH‹ %XH‹ÁH‹€PH…Ày8éF‹?meH‹ %XH‹ÁHÇ€HWÀ€P1ÀH…ÀˆH¹ÿÿÿÿÿÿÿH9È„‹ùleH‹ %XH‹ÁHƒ¸X…õH‰uà‹ÔleH‹ %XH‹Á€¸a…ï‹´leH‹ %XH‹ÁHƒ¸PH‰uð…ì‹leH‹ %XH‹ ÁH‘XH‹XHÇPÿÿÿÿH‰PH‰UÐH‰MØH…Àt)ðH(u‹EleH‹ %XH‹ÁHˆXèlLÿÿH‹Eð‹ "leH‹%XH‹ ÊH‰XH‹EØHƒHƒÄX^]ÃÆEÿè¦iÿÿëTÆEÿèÛjÿÿëIÆEÿH NîL/îº&èë+ðH.u ÆEÿHMàèôKÿÿÆEÿè›jÿÿë ÆEþè°hÿÿ f.„@H‰T$UVHƒì(HjP€}þt ÆEÿHMðè¾SÿÿÆEÿHƒÄ(^]ÃH‰T$UVHƒì(HjPH‹Eð‹ GkeH‹%XH‹ ÊH‰XHMÐèªQÿÿÆEþHƒÄ(^]Ãf.„DH‰T$UVHƒì(HjP€}ÿt HMèèBYÿÿHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌUVWSHƒìhHl$`HÇEþÿÿÿH‰ÎH=1jH‰ùèù+H‰}øH‹H…ÛuhH‹^èI΃øÿto‰ÇH…ÛtG¹ºèIIÿÿH…À„£H‰ÁH‰HÇ@‰xH‹j„H‰AðH± juñ‰ûH‰ØH‡…ÿt/H‹Møè¬,H‰ØHƒÄh[_^]ÃH ±óL’óº.èèë7H¿ìH‰EÈHÇEÐHÇEØHTÛH‰EèHÇEðHMÈèÿ ¹ºèo f.„fH‰T$UVWSHƒì(Hj`HMøè&TÿÿHƒÄ([_^]ÃÌÌÌÌÌÌÌÌÌÌÌÌAWAVAUATVWSHƒì I‰ÖI‰ÏH‹ ”gH…ÉuH ˆgèƒþÿÿH‰ÁèÍH…ÀuL¹ºèHÿÿH…À„H‰ÆHÇWÀ@H‹ FgH…ÉuH :gè5þÿÿH‰ÁH‰òè»ÌH‹ #gH…ÉuH gèþÿÿH‰Áè•ÌH‰ÃH‹pH;pudH‰÷HƒÇ‚™H6H9ÇHBø¹E1äH‰øH÷áI‰Å‘ÀpxAˆÄIÁäH…ötOHÁæH‹ A¸H‰òM‰éèkGÿÿH…ÀtBH‰H‰{H‹sëH‹HÁæL‰<0L‰t0HƒCHƒÄ [_^A\A]A^A_ÃL‰éL‰âè GÿÿH…Àu¾L‰éL‰âè‰m è2g ¹ºèqm ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌUAWAVVWSHƒìXHl$PHÇEþÿÿÿL5fH…Éu4éfD1Ò‰ÁèˆËºA¸H‹Møè“FÿÿH‰ùH…É„ãH‹9L‹yH‰MøH‹qHÁæHþH‰}ÐL‰}ØH‰}àH‰uèH‰ùf.„@H9ñt+HAH‹QH…Òt!H‹ H‰ÃH‰EðÿÒH‰ÙëÝf.„H‰ðH‰Eàf„H9ðtHHH‰MàHƒxH‰ÈuéM…ÿtIÁçA¸H‰ùL‰úèßEÿÿH‹(eH…ÀuL‰ñèüÿÿ‰ÁèŸÊH‰ÇH‹ eH…À…ÿÿÿL‰ñèùûÿÿéôþÿÿHƒÄX[_^A^A_]ÀH‰T$UAWAVVWSHƒì(HjP  €H‰T$UAWAVVWSHƒì(HjPH‹EðH‰EàHMÐè MÿÿHƒÄ([_^A^A_]Ãf.„fH‰T$UAWAVVWSHƒì(HjPH‹MøèÂkÿÿHƒÄ([_^A^A_]ÃÌÌÌÌHƒìxIQ )T$`)L$P)D$@HL$0HT$(LD$@èN¥ÿÿ€|$0t HL$0è QÿÿHƒÄxÃÌÌÌÌÌÌÌHƒìhH‰L$(H€”H‰D$0HœèH‰D$8HÇD$@HGÞH‰D$HHÇD$PHD$(H‰D$XHÇD$`HL$8èTÿÿÿ¹Í) ÌÌÌÌÌÌÌÌÌÌÌAWAVAUATVWUSHƒìxM‰ÅI‰×H‰ÎH˜ßA¸L‰éè²¢A´„À…ÐN4>1ÉH‰t$0L9ù„ÐHH‰ÍH‰Ðf„Hx¶¾„ÛxH‰øë+f.„HƒÀ€ûßw$L9÷HDǾf.„HõL9ðu¸é,€ûíu-L9÷H‰ÃHDß¾L9ótJHCL9÷tѶ?·ÿÿŸvÃë6L9÷H‰ÆHD÷HFL9öHDƾ€ûðr¢HXL9ðHEþëL‰ðë‹¶ƒçÁçƒà?Øf‰D$.I‰èI)È‚èL9ý‡éL‰éèõ„ÀH‹t$0…±HD$.H‰D$8HG²H‰D$@HCçH‰D$HHÇD$PH~ÜH‰D$XHÇD$`HD$8H‰D$hHÇD$pL‰éHT$HèH¡„ÀuMHƒÅH‰éL9ý†xþÿÿH‰éL‰úè t I‰ÖI)ÏL‰éL‰òM‰øèS„ÀuHÀÝA¸L‰éèÚ A‰ÄD‰àHƒÄx[]_^A\A]A^A_ÃL‰ùëºH‰êè¶s H‰éL‰úès ÌÌÌÌÌÌÌUAWAVAUATVWSHƒìxHl$pHÇEþÿÿÿI‰ÌIÐH‰U¸L‰EÀLmÈÇEÈLuàÇEà¹L=óƒùt)ëf.„f‹MȃùtL‰éèðj=…jH‹E¸H‹MÀH9È„DHxH‰}¸¶¶Ú„ÛyqH9ÏtHxH‰}¸¶@ƒà?ë1ÀH‰Ï‰Þƒæ€ûàrH9ÏtH_H‰]¸¶?ƒç?ë Áæë.1ÿH‰ËÁà ø€úðrH9Ë„¾HKH‰M¸¶ ƒá?é­Áæ ð‰Ã¹C÷ƒøw¾tIc‡Løÿà¾nëCƒû\u‰Þë:‰Ù蟪„Àu‰Ù蔩¹‰Þ„Àu‰ØƒÈ½ÐƒòÁêƒò¹ë¾r¶EûˆEþ·Eùf‰Eü‰MȉuÌH‰UЉ]ØÆEܶEþAˆE·EüfA‰Eƒù…ºþÿÿéÈþÿÿ1ɃæÁæÁà ð ȉÃ=…@ÿÿÿƒ}àt%L‰ñè‚i=tL‰á‰ÂèA „À„iþÿÿ°ë1ÀHƒÄx[_^A\A]A^A_]ÃfH‰T$UAWAVAUATVWSHƒì(HjpèrGÿÿHƒÄ([_^A\A]A^A_]Ã4ÿÿÿêþÿÿúþÿÿúþÿÿ/ÿÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿöþÿÿúþÿÿúþÿÿúþÿÿúþÿÿöþÿÿÌÌÌÌUVHì˜H¬$€HÇEþÿÿÿH‰MøHEøH‰EèHd³H‰EðHéãH‰E¨HÇE°H¾ØH‰E¸HÇEÀHEèH‰EÈHÇEÐHMØHULE¨èIŸÿÿŠEØ<w<uAH‹EàH‹H‰EH‹@ÿH‹uH‹FH‹PH…Òt H‹L‹@è>ÿÿºA¸H‰ñè}>ÿÿHĘ^]ÃfH‰T$UVHƒì(Hª€H‹uH‹H‹VèeÿÿH‰ñèödÿÿHƒÄ(^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒì(L‹Ý^M…ÀHÛþÿÿIEÀÿйÍ) ÌÌÌÌÌÌÌÌÌÌÌÌVWSHƒì H‰ÏHƒúwè¢Â1ÒH‰ÁI‰øHƒÄ [_^é”ÂH‰ÖH×èƒÂ1Û1ÒH‰ÁI‰øèzÂH…ÀtHNÿH!ÁH)ÎH‰ÃHóH‰D0øH‰ØHƒÄ [_^ÃÌÌÌÌÌÌÌÌVHƒì H‰ÎIƒøwè4Â1ÒH‰ÁI‰ðëè%ÂL‹Fø1ÒH‰ÁHƒÄ ^éÂÌÌÌÌÌÌÌÌÌÌÌVWHƒì(L‰ÎM‰ÁH‰ÏIƒøwèíÁ1ÒH‰ÁI‰øI‰ñHƒÄ(_^éÂI‰ÐH‰t$ H‰úèÀÂÿÿHƒÄ(_^ÃÌÌÌÌÌÌÌÌUVWSHìÈH¬$€HÇE@þÿÿÿH‰Î‹ ^eH‹ %XH‹ÁHƒ¸¨u$‹ï]eH‹ %XH‹Á³Hƒ¸°v.éà‹Ë]eH‹ %XH‹ÁHÇ€¨HÇ€°H‹ ]Hƒøt^HƒøtTH…ÀuWH]ÝHMØA¸èÚwÿÿH‹MØH…ÉtHMØH‰úI‰Øè…H‰}H‰]HMè$cÿÿ„À…ÔH‹MH…Ét(H‹EH‰M(H‰E0ÿH‹E0H‹PH…ÒH‹M(t L‹@èë7ÿÿ1ÿH…öt=ðH.u3@ˆ}=HMè=9ÿÿë$ÆE?ÆE>LÔÜHMØHU èÿ@·H…öuÃ@„ÿt1H‹MøH…Ét(H‹EH‰M(H‰E0ÿH‹E0H‹PH…ÒH‹M(t L‹@èq7ÿÿHÄÈ[_^]ÃH ­Êè˜b èqWÿÿëèŠUÿÿëècWÿÿë1ÒèJh „H‰T$UVWSHƒì(Hª€H‹M(H‹U0èß]ÿÿHƒÄ([_^]ÃDH‰T$UVWSHƒì(Hª€H‹M(H‹U0è¯]ÿÿÆE?ÆE>HƒÄ([_^]Ãf.„@H‰T$UVWSHƒì(Hª€H‹M(H‹U0èo]ÿÿHƒÄ([_^]ÃDH‰T$UVWSHƒì(Hª€HMèó?ÿÿHƒÄ([_^]Ãf„H‰T$UVWSHƒì(Hª€HMèsAÿÿÆE?ÆE>HƒÄ([_^]ÃfH‰T$UVWSHƒì(Hª€Š]?€}>t HM èÚ>ÿÿHMè?ÿÿˆ]=HƒÄ([_^]ÃDH‰T$UVWSHƒì(Hª€Hƒ}øtöE=tHMøè–>ÿÿë HMøèë@ÿÿHƒÄ([_^]ÃÌUAWAVVWSHì¨H¬$€HÇE þÿÿÿL‰ÇI‰×H‰ËH‹H‹IH‹SH‰EèHÒ9ÿÿH‰EðH‰MøH‰EH‰UH«9ÿÿH‰EHÈÚH‰E¸HÇEÀHµÊH‰EÈHÇEÐHEèH‰EØHÇEàI‹p0HM¨LE¸L‰úÿÖŠE¨<w<uAH‹E°H‹H‰EH‹@ÿL‹uI‹FH‹PH…Òt I‹L‹@è×4ÿÿºA¸L‰ñèÄ4ÿÿH‹CŠ€ûuq1ɰð° T„À„ÒH¦ÚH‰EèHÇEðHÇEøHÇH‰EHÇEHM¸LEèL‰úÿÖŠE¸<w<…ˆH‹EÀH‹H‰EH‹@ÿëEL5ÉTL‰ñè©HMèL‰úI‰øA‰Ùèg½ÿÿL‰ñ迊EèH‹Uð<w<u=H‹ H‹BH‰UÿH‹uH‹FH‹PH…Òt H‹L‹@èæ3ÿÿºA¸H‰ñèÓ3ÿÿHĨ[_^A^A_]ÃfH‰T$UAWAVVWSHƒì(Hª€HMèè?ÿÿHƒÄ([_^A^A_]ÃH‰T$UAWAVVWSHƒì(Hª€H‹uH‹H‹Vè8ZÿÿH‰ñèZÿÿHƒÄ([_^A^A_]ÃfH‰T$UAWAVVWSHƒì(Hª€H‹uH‹H‹VèøYÿÿH‰ñèÐYÿÿHƒÄ([_^A^A_]ÃfH‰T$UAWAVVWSHƒì(Hª€H‹uH‹H‹Vè¸YÿÿH‰ñèYÿÿHƒÄ([_^A^A_]ÃÌÌVHƒì H‰ÎH‹H‹H‹PèÞÿÿ‰HƒÄ ^ÃÌHƒì(èw ÌÌÌÌÌVHƒìpH‰ÎH‹L‹BD‹J‹J‰L$ HL$XH‰ÂèÙ\HÅH‰D$(HŽÉH‰D$0H‰t$8D$XD$@H‹D$hH‰D$PHL$(è ÌÌÌÌÌÌÌÌÌÌÌÌUAWAVATVWSHƒì`Hl$`HÇEøþÿÿÿH‰Îè]\H…ÀtH‰ÇH‰ñè=\H…ÀuH AÅè,] H‰ÃH‰ùè\I‰ÆI‰×H‰ùèQ\A‰ÄH‰ùèV\L‰uàL‰}èD‰eð‰EôH‰]ÀHÇEÈH‰ñèã[H´×HMÀLMàI‰Àè\ f.„H‰T$UAWAVATVWSHƒì Hj`HMÀè`>ÿÿHƒÄ [_^A\A^A_]ÃUVWHì€H¬$€HÇEøþÿÿÿH‰ÎH‹yH…ÿ…‡H‹HÇEàWÀEèHMàH‰M¨HP )UÐ)MÀ)E°HNÅHM¨LE°èH~H‹EðH‰EÀEà)E°H‹H…ÉtH‹VH…Òt A¸è±0ÿÿH‹EÀH‰G(E°H‹?F)E°HÇFWÀF(E°)Eà(Eà)E°¹ºèY0ÿÿH…ÀtH‰8(E°@H’ÖHÄ€_^]ùºè¸V fDH‰T$UVWHƒì Hª€HMàè¤8ÿÿHƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌÌUVWHì€H¬$€HÇEøþÿÿÿHqHƒy…ƒH‰ÏH‹HÇEàWÀEèHMàH‰MØHP )UÀ)M°)E HüÃHMØLE è¯H‹EðH‰E°Eà)E H‹H…ÉtH‹WH…Òt A¸èc/ÿÿH‹E°H‰F(E HÕH‰ðHÄ€_^]Ãf.„DH‰T$UVWHƒì Hª€HMàè¤7ÿÿHƒÄ _^]ÃÌÌÌÌÌÌÌÌÌÌÌHƒì8M‰ÁH‰L$(H‰T$0HHÕHL$(E1Àè« ÌÌÌÌÌÌÌÌÌVWHƒì(H‹1H‹yHÇH…öt$¹ºè˜.ÿÿH…Àt#H‰0H‰xHÕë ¸H/ÕHƒÄ(_^ùºèñT ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒ9HýÔHÖÔHDÐHÓÀHEÁÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVATVWSHƒìxL‰ÈL‰ÃI‰ÖI‰ÌI‹M‹AE‹I‹@‹ 3OeH‹<%XH‹ ÏHƒ¹¨uZ‹ OeH‹<%XH‹ ÏH‹±°HƒÆH‰±°Hƒþr]HºÔH‰D$0HÇD$8HÇD$@H,ÀH‰D$Pé^‹ ¼NeH‹<%XH‹ ÏHǨHǰ¾‰D$ HL$`è¶WL=ß¿L‰|$0HkÄH‰D$8H‰\$@D$`D$HH‹D$pH‰D$XH‹&NH…Àu)H _ÙºèH…ÀHŽ#HEÂH‰ÁH‡ øMH ©MÿÐH‹=°MH…ÿuL‰áAÿV H‰D$0H‰T$8HL$0èÀïÿÿë#H‹ML‰áAÿV H‰D$0H‰T$8HT$0H‰ÙÿWH‹¬MH…Àu)H 8ÙºèŽH…ÀH¤#HEÂH‰ÁH‡ ~MH MÿÐHƒþr:HÓH‰D$0HÇD$8HÇD$@L‰|$PHÇD$XHL$0è!çÿÿ  L‰áL‰òè HƒìxH‰L$(H‰T$0HL$(èø#‰D$$HD$$H‰D$8HŸH‰D$@HGÓH‰D$HHÇD$PHŠÅH‰D$XHÇD$`HD$8H‰D$hHÇD$pHL$Hèçæÿÿ ÌÌÌÌÌUVHìˆH¬$€HÇEþÿÿÿH‰M¨H‰U°Hh1ÉèN°H…À„öÇEàPH‹52LH…öu)H ¤ÖºèDH…ÀH5ª HEòH‰ðH‡LHMàÿÖ…Àu舯ƒøx…͹ºèå*ÿÿH…À„¤ÇmainH‰EàHÇEèHÇEðHMàèi_ÿÿH‰ÁèÑÝÿÿHÇE¸HÇEÐHE¨H‰EØH Ò÷ÿÿHUØLE¸HuÐI‰ñè"…Àt=‹´KeH‹ %XH‹ÁHƒ¸¨u*‹—KeH‹ %XH‹ÁH‹€°HƒÀÿë:‹E؉Eä1Àë_‹mKeH‹ %XH‹ÁHÇ€¨HÇ€°HÇÀÿÿÿÿ‹ =KeH‹%XH‹ ÊH‰°H‹E¸H‹MÐH‰EèH‰Mð¸‰EàH‹ŠJHƒøt%ÆEÐH‰uØÆEÿH qJL ²ÈLEØ1Òèªÿÿ‹EàH‹MèH‹Uð¾eƒøt‹uä…Àt$H‰MÀH‰UÈÿH‹EÈH‹PH…ÒH‹MÀt L‹@èo)ÿÿHcÆHĈ^]ÃH «ÓLŒÓº#èJúÿÿ ¹ºè¹O H 0ÓLÓº4èúÿÿ f.„H‰T$UVHƒì(Hª€€}ÿt HMàè2ÿÿHƒÄ(^]ÀH‰T$UVHƒì(Hª€H‹MÀH‹UÈè‘OÿÿÆEÿHƒÄ(^]ÃÌÌÌÌÌÌVWHƒìHH‰ÎL ÐH|$0A¹ H‰ùèý‡H‰t$(LéÀHT$(H‰ùèqH‰ùèlrHƒÄH_^ÃÌÌÌÌVWHƒìHH‰ÎLÛÏH|$0A¹H‰ùè­‡H‰t$(HvLuÀHT$(H‰ùè°pH‰t$(L¬ÏHT$(H‰ùè—pH‰ùèÿqHƒÄH_^ÃÌÌÌÌÌÌÌUAWAVAUATVWSHì¨H¬$€HÇE þÿÿÿH‰×H‰ÎHWÐH]ÀA¸H‰Ùè^jH‰éH‰Úè3:ÿÿH‹]H9]uVH‰u¸I‰ÜIƒÄ‚;HI9ÔL‰æHBòE1íH‰ðHð“ÀI‰öIö‚AˆÅMíH…ÛtH‹MA¸M‰ñèU'ÿÿëL‹}Lcë#L‰ñL‰êè'ÿÿI‰ÇH…À„ L‰}H‰uH‹u¸fAÇ_L‰eHMèH‰òI‰øè MH‹uèL‹EøÆE1ÉH‰òèÖSH…À…—H‹EøH‰EÐEè)EÀÆEHMÀè°gÿÿH‰ÃI‰ÖL‰ù襫H‰ÁH‰Úè «H‰Æ1ÿH…À@•ÇÆM…ötA¸H‰ÙL‰òè‚&ÿÿH‹UH…ÒtHÒH‹MA¸èg&ÿÿH‰øH‰òHĨ[_^A\A]A^A_]ÃèxFë-Eð)E H‰UÀH‰uÈ(E EÐH Ÿ¹LEÀº+èÙFÿÿ L‰ñL‰êèŒL f.„H‰T$UAWAVAUATVWSHƒì(Hª€€}t HMèèe.ÿÿHƒÄ([_^A\A]A^A_]ÃH‰T$UAWAVAUATVWSHƒì(Hª€H‰éèŒ1ÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌAVVWSHƒìxM‰ÎH‰ÎH‹„$ÈWÀ)D$P)D$`HÇD$pÇD$P(H‹I‹ÇD$@H‹LD$@LL$PH‰ÂÿSƒøuJH‹|$hH‰ùè_ªHƒøÿtWL‹Œ$À‹L$`I‹M‹FAŠˆ\$0‰L$(H‰D$ HL$@I‰ùèRÐÿÿ€|$@ufÇë D$@FÆH‰ðHƒÄx[_^A^ÃHÇÁÿÿÿÿ1Òè½U ÌÌÌÌÌÌÌÌÌÌÌAVVWSHƒìxM‰ÎH‰ÎH‹„$ÈWÀ)D$P)D$`HÇD$pÇD$P(H‹I‹E‹@ÇD$@H‹HT$PH‰T$(HT$@H‰T$ E1ÉH‰ÂÿSƒøuJH‹|$hH‰ùèn©HƒøÿtWL‹Œ$À‹L$`I‹M‹FAŠˆ\$0‰L$(H‰D$ HL$@I‰ùèaÏÿÿ€|$@ufÇë D$@FÆH‰ðHƒÄx[_^A^ÃHÇÁÿÿÿÿ1ÒèÌT ÌÌÌÌÌÌÌÌÌÌUAVVWSHì H¬$€HÇEþÿÿÿI‰ÖH‰ÎHMøL‰ÂM‰ÈèŽIH‹}øL‹EÆE1ÉH‰úèXPH…ÀtH‰ÓE)Eиë%H‹EH‰EàEø)EÐÆEHMÐè$dÿÿH‰ÃH‰×1ÀH‰E¨H‰]°H‰}¸(EÐEÀH…Àt6H‹E°H‹M¸EÀ)EàH‰EÐH‰MØHMøHUÐèfÿÿEøFHÇëEI‹H‰Úè˧H…ÀtH‰F1Àëè;§ÆF‰F ¸H‰ÆH…ÿtA¸H‰ÙH‰úè˜"ÿÿH‰ðHÄ [_^A^]ÀH‰T$UAVVWSHƒì Hª€€}t HMøèë*ÿÿHƒÄ [_^A^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìxHl$pHÇEþÿÿÿM‰ÆH‰×H‰M¸M…ÀtºL‰ñè÷!ÿÿH…Àu é¸H‰EðH‰EÐL‰uØHÇEàJwE1ÿL‰uè1öH‰]Àf…öuEë2f.„fH‰]àH‰MðIÏL‰ùHUüM‰àèæI‰ßH‹]Àf…öuH9ß„qD·/HƒÇD‰è%ø=ØujA·Å=ÜsoH9߄ƷHƒÇ‰Êâüf¾úÜ…®AÅ($·ÈA·ÅÁà ÈHÁà H¹HÈë#f.„A·ÅHÁà ëfDHÁàHƒÈ1öE1ífƒø„Éf…Àt4HÁèf‰EúHMúèÃŒÇEüfƒøwFˆEüA¼é¼„H‰ÁHÁé ÇEüƒù‰uÌwJˆMü¾é½f.„·ÈùÿwU‰ÁÁé€á€ÉÀˆMü$? €ˆEýA¼ë\„ùÿ‡HÁè&$ ÀˆEü€á?€É€ˆMý¾éVfDÁé €ÉàˆMü‰ÁÁé€á?€É€ˆMý$? €ˆEþA¼H‹MðH‹EèL)øL9àsL‰ÿH÷‚ÌK6H9ßHCßM…öt(A¸H‰ÁL‰òI‰ÙèžÿÿH…Àu%é¥@J<>ë%ºH‰Ùè]ÿÿH…À„…H‰EÐH‰]ØI‰ÞH‹]ÀH‰}àH‰EðIÇL‰ùHUüI‰ðèX£L‰uèI‰ÿL‰ç‹uÌf…ö…œüÿÿé†üÿÿH‹MàH‹E¸H‰HEÐHƒÄx[_^A\A]A^A_]úL‰ñèoD è>ëè> ºH‰ÙèRD H‰T$UAWAVAUATVWSHƒì(HjpHMÐè>&ÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌVWSHƒì H‰ÎH‹W>Hƒøt/HƒøtkH ƺèrõÿÿ1ÉH…À”ÁHƒÁH‡ '>H…ÀtBH‹C>H…Àu)H Öźè=õÿÿH…ÀHcHEÂH‰ÁH‡ >H‰ñHƒÄ [_^HÿàH‹>H…ÿuI¹(ºèáÿÿH…ÀtqH‰ÇH‰Á茡1ÀðH±>t!H‰ÃH‰ùèB¡º(A¸H‰ùèºÿÿH‰ßH‰ùè`¡€~u ÆFHƒÄ [_^ÃH‰ùè5H ÅLçĺè}íÿÿ ¹(ºèìB ÌÌÌÌÌÌÌÌÌÌVWHƒì(H‰ÎÆAH‹$=Hƒøt/HƒøtjH ØÄºè?ôÿÿ1ÉH…À”ÁHƒÁH‡ ô<H…ÀtAH‹ =H…Àu)H „Ⱥè ôÿÿH…ÀHÐHEÂH‰ÁH‡ ò<H‰ñHƒÄ(_^HÿàH‹>H…ÿuI¹(ºè¯ÿÿH…ÀtCH‰ÇH‰ÁèZ 1ÀðH±>t!H‰ÆH‰ùè º(A¸H‰ùèˆÿÿH‰÷H‰ùHƒÄ(_^éþŸ¹(ºèèA ÌÌÌÌÌÌéâŸÌÌÌÌÌÌÌÌÌÌÌUAWAVVWS¸¸è—H)ÄH¬$€HÇ…0þÿÿÿ‰×I‰Î‰•(1ÛL}¸1ÒA¸L‰ùè< ¾÷Çt)H ©ÃèáŸH…ÀtH‰Ã÷‰½(¾ë1ÛL‰|$ HÇD$0ÇD$(A¹‰ñH‰ÚA‰øè­Ÿ…À„¹A‰À=ƒÝHÐHU¸è¢<H‹…ÐH‰…¸H…À„…Ð)…ðH‹µàH‰µH‹½ðÆ…/Æ….H‰ùH‰òèÿ\H9Ör(H…ÒtH9Öt†t€<¿ŽjH9ÖHGòH‰µH‹…I‰F(…ðAéè]ž‰…ÀH…(H‰…ÐHÇ‹H‰…ØHÀH‰àH‰…èHœÂH‰…ðHÇ…øH3°H‰…HÇ…H…ÐH‰…HÇ…H•ðL‰ñè¡9é„H…(H‰…ÀH7‹H‰…ÈHÂH‰…ðHÇ…øHزH‰…HÇ…H…ÀH‰…HÇ…Æ…/Æ….H•ðL‰ñè9L‰ðHĸ[_^A^A_]úL‰Áè¸I Æ…/Æ….H ±°èÌC f.„H‰T$UAWAVVWSHƒì8Hª€Š/€½.t HðèÝ ÿÿHƒ½¸töÃtHÐè ÿÿë HÐè¤ÿÿHƒÄ8[_^A^A_]ÃÌÌÌÌÌÌH‹H‹QÃÌÌÌÌÌÌÌÌUVWHì H¬$€HÇEþÿÿÿH‹8ýÀ…ó‹9eH‹ %XH‹Á€¸a…à‹á8eH‹ %XH‹Á€¸`u@‹Å8eH‹ %XH‹ÁHˆHH:FÿÿèÏÿÿ‹Ÿ8eH‹ %XH‹ÁÆ€`‹…8eH‹ %XH‹ÁHƒ¸Ht(‹h8eH‹ %XH‹ÁHÇ€HWÀ€P‹@8eH‹ %XH‹ÁHˆPègÈÿÿH‰ÆH‰EHƒÀH‹NH…ÉHDÁtH‹PHJÿH…Ò„H‹ë1ÀH…Àº HEÑH ,¹HEÈH‰MàH‰UèHEàH‰EðHùÿÿH‰EøHÞºH‰E HÇE¨HC°H‰E°HÇE¸HEðH‰EÀHÇEÈHMÐHULE èÎvÿÿŠEÐ<w<tðH.uUH‰éè¡ÿÿëKH‹EØH‹H‰EH‹@ÿH‹}H‹GH‹PH…Òt H‹L‹@èÿÿºA¸H‰ùèîÿÿðH.t«1ÀHÄ _^]ÃHÇE H ”®º^è.Bë1ÒèÅF H‰T$UVWHƒì Hª€HM èÿÿHƒÄ _^]Ãf.„H‰T$UVWHƒì Hª€H‹uH‹H‹Vè-<ÿÿH‰ñè<ÿÿHƒÄ _^]Ãf.„fH‰T$UVWHƒì Hª€H‰éè¥$ÿÿHƒÄ _^]Ãf.„fH‰T$UVWHƒì Hª€  ÌÌÌÌÌÌÌÌÌUVWSHƒì(Hl$ HÇEþÿÿÿƒút…Ò…eH‹=§5H…ÿ„U1Ûf.„f‹O胙H…ÀtH‰Æ‹O1Òèw™³H‰ñÿH‹H…ÿuÖöÄH‹=V5H…ÿ„1Ûf.„‹Oè3™H…ÀtH‰Æ‹O1Òè'™³H‰ñÿH‹H…ÿuÖöÄÄH‹=5H…ÿ„´1Ûf.„‹Oèã˜H…ÀtH‰Æ‹O1Òèט³H‰ñÿH‹H…ÿuÖöÃtxH‹=º4H…ÿtl1Û‹O裘H…ÀtH‰Æ‹O1Òè—˜³H‰ñÿH‹H…ÿuÖöÃt8H‹=z4H…ÿu ë*H‹H…ÿt!‹Oè]˜H…ÀtêH‰Æ‹O1ÒèQ˜H‰ñÿëÖŠçHƒÄ([_^]Ãf.„H‰T$UVWSHƒì(Hj   ÌÌÌÌÌÌÌÌÌÌÌUAWAVAUATVWSHìÈH¬$€HÇE@þÿÿÿL‰ËM‰ÇI‰Í‰Ñèü—I‰Æ¾H…ÀtIƒþÿu1ÿè^—ë)¸L‰÷ëÇEHUL‰ñèÏ—1ÿ…À@”Ç1À1öH‰uÐHÁà H øH‰EØL‰uàH…ötH‹EØI‰EH‹EàI‰EIÇEé HƒøuGÇEð¸ÿÿÿÿH9ÃA¸ÿÿÿÿDBÃHÇD$ LMðL‰ñL‰úèñ–…À„Ý‹EðH‰E1ÀéüHû A¸ LBÃHMÐL‰úèiMHƒ}ÐuTLeØL‰áèFMH…À„šA$)EÀHMÀè+MH9؇ÈHML‰úI‰Àè#MHƒ}„»H‹UL‹} ëH‹UØL‹}àH]H‰ÙM‰øèWTHMðH‰Úè+$ÿÿÇE L‹eðH‹]HÇD$ LM L‰ñL‰âA‰Øè‚–‰Ç…Àth1öënèÝ•·Mf‰MÀŠMˆMÂÆE·MÀf‰MŠMˆM‰E¸H‰EH‹E I‰EH‹EI‰EŠEAˆE·EfA‰E ŠEAˆE ‹EA‰E 鉾èt•‰u‰}ÆE·MÐf‰MŠMÒˆM‰E…ötHEAEIÇEë0‹E H‰E¸H‰]°HM¸H‰M¨HM°H‰MÀH9Ã…M‰}IÇEH‹UøH…ÒtHÒA¸L‰áèzÿÿL‰èHÄÈ[_^A\A]A^A_]ùºèDÿÿH…À„TH‰Çk»@ V»¹ºèÿÿH…À„ðH‰ÃH‰8HÇ@HÇ@¹ºèæÿÿH…À„ÂH‰H «H‰HÆ@ ŠMˆH·Mf‰H‹M‰HŠMˆMö·Mf‰Mô‹M‰MðAÆEŠMöAˆM·MôfA‰M ‹MðA‰M éþüÿÿHE¨H‰EÐHÓÿÿH‰EØHMÀH‰MàH‰EèHä¥H‰EHÇEH¦H‰E HÇE(HEÐH‰E0HÇE8H>ºHMèÜÿÿ ¹ºèœ5 H‰ÁH‰Úè@ HE)EðHMðèy.ÿÿ ¹ºèh5 fDH‰T$UAWAVAUATVWSHƒì(Hª€HMðè«ÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌḬ̀ùç~‘ãØÿÿƒú0w@H hHc‘HÊÿⰠÃùOƒùt ƒùtƒùu/ÃùPt ƒùmt!ù·u° Ã1ÀÃùèt ùãu° ððð ððððððøÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿ¡ÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿêÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿçÿÿÿíÿÿÿðÿÿÿçÿÿÿçÿÿÿçÿÿÿóÿÿÿöÿÿÿçÿÿÿçÿÿÿùÿÿÿçÿÿÿçÿÿÿáÿÿÿüÿÿÿÌÌÌÌÌÌÌÌUAWAVAUATVWSHƒìhHl$`HÇEþÿÿÿI‰ÏIÐH‰UÈL‰EÐfÇEØHMàHUÈè‚ÿÿH‹}àH‹uðHw1ÉH‰úH‰ØH)ÐHƒøv)Hfƒ:t>fƒzt7fƒzt0HƒÁfƒzHRuÍëH6€H9Ê„fƒ<HIuì¹,ºè ÿÿH…À„¯H‰Ãà·@É·@®·¹ºèR ÿÿH…À„cH‰ÆH‰HÇ@,HÇ@,¹ºè$ ÿÿH…À„5H‰0H Q§H‰HÆ@ ŠMΈH·MÌf‰H‹MȉHŠMΈMþ·MÌf‰Mü‹MȉMøAÆGŠMþAˆO·MüfA‰O ‹MøA‰O I‰GIÇH‹UèH…ÒtHÒA¸H‰ùè° ÿÿL‰øHƒÄh[_^A\A]A^A_]ÃH9uèuRI‰õIƒÅ‚µI9ÕL‰ëHBÚE1äH‰ØHØ“ÀI‰ÞIÞ‚“AˆÄMäH…öt!A¸H‰ùM‰ñè[ ÿÿH…ÀuëwHƒÆI‰õëL‰ñL‰âè ÿÿH…Àt^H‰EàH‰]èHpfÇL‰mðM‰oH‹EàI‰GH‹EèI‰GIÇéFÿÿÿ¹ºèg1 ¹,ºèV1 èÿ* L‰ñL‰âèB1 H‰T$UAWAVAUATVWSHƒì(Hj`HMàèŽÿÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌHƒì(¹xèÿŽ1ÀHƒÄ(ÃÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH ¶Løµº!è6Ûÿÿ @H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH ǵLøµº!èæÚÿÿ @H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH ßµLÀµºè–Úÿÿ @H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH µL¸µºèFÚÿÿ @H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH ?µL˜µºèöÙÿÿ @H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒì0Hl$0HÇEøþÿÿÿH ï´Lxµºè¦Ùÿÿ @H‰T$UHƒì Hj0  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUHƒìPHl$PHÇEðþÿÿÿL‰MÐL‰EØH‰ÈH‰ÑÿÐ1ÀHƒÄP]ÃH‹EØH‹MàH‰H‹EÐH‹MèH‰¸ëÝf„H‰T$UHƒì HjPH‹EøH‹H‰MàH‹@H‰EèH²ÿÿÿHƒÄ ]ÃÌÌHƒì8H‹H‹QH‰ÁÿRH‰D$(H‰T$0HD$(H‰D$ H8'H ÷þÿ)ȇñ(H.')ȇ'H;')ȇ'HÀ(HA')ȇ'HJ')ȇ'HL$ 賌¸ÿÿÿÿHƒÄ8ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒì(L‹H‹AL‹ E1ÀL‰ÑH‰Âè”E ÌÌHìˆHz´H‰D$(HÇD$0+ˆL$'HD$(H‰D$8Ho ÿÿH‰D$@HD$'H‰D$HHYqH‰D$PHmµH‰D$XHÇD$`HxµH‰D$hHÇD$pHD$8H‰D$xHÇ„$€HåµHL$XèÓ2 ÌAWAVAUATVWUSHìøM‰ÄI‰ÖH‰Œ$èHÇD$ L ¿µHL$pèµ8Hƒ¼$L‰t$(…KL‰d$0H‹¼$ÈH‹„$ˆLHÿL‹d$pL‹D$xL‹¬$€H‹¬$¸H(HƒÂÿHƒÿÿ„fL9ƒ>L‹”$°L‹œ$˜H‹Œ$¨I‰ÇH‰L$hI)ÏM‰ÞI÷Þf.„A¶ I£ÊsEL9ßH‰þIBóH.€H9Æs;L9ƒƒA¶\5HƒÆHJA:H‰ÊtÛLñ1ÿH‰ÍëaHÅ1ÿëYf„L‰Úf.„H9׃œHƒÂÿH9ƒ‰H4*L9ƃ…A¶LA: 4tÑHl$hL‰ÿf„I)L9‚CÿÿÿH‰¼$Èé4DŠŒ$¨L‹¼$˜H‹D$pL‹T$xNë fDIÏD‰ËE„ÉA”ÁH‰D$XL‰T$`L‰¼$ðL‰T$8M…ÿtM9út†¤B€<8¿Ž™J 8L9Át8B¶8¶ò@„öy0J 8HƒÁL9ÁtmN8A¶{IƒÃƒç?ë`f.„f¾„Û…Éþ„é¹þ€‚Vÿÿÿ¹þ‚Eÿÿÿþ¹HƒÙé1ÿÿÿ1ÿM‰Ã‰ñƒá@€þàrM9ÃtA¶3IƒÃƒæ?ë Áá Ïë31öM‰ÃÁç ÷€úðrM9ÃtA¶ƒâ?ë Áá Ïë1ÒƒáÁáÁç Ï ×‰þ„Û„XÿÿÿéL9ƒØL‹”$°H‹¼$˜H‹œ$¨M4H‰úf.„H…ÒtlHƒÂÿH9ƒ=J4:L9ƃ9A¶LA: 4tÕIßL‰ýI)L9‚bÿÿÿH‰¬$¸L‹t$(L‹d$0é]HèH‰„$¸HÇ„$ÈI‰ïë LøH‰„$¸L‹t$(L‹d$0L‰øL‰t$@L‰d$HL‰d$XHƒÀH‰D$8tL9àtƒü A€<¿Žñ LðK4&H9ð„¼HP¶¶ù@„ÿxH‰Ðé€H9òt ¶PHƒÀƒâ?ë1ÒH‰ð‰ûƒã@€ÿàrH9ðt¶8HƒÀƒç?ë Áãë#1ÿH‰ðÁâ ú€ùðrH9ðt¶HƒÀƒá?ëÁã Ú‰×ë1ÉH‰ðƒãÁãÁâ Ú Ê‰×út(O¿ƒù‚Tÿÿÿƒÿ0rAƒÿ:‚Fÿÿÿƒÿ@„=ÿÿÿë-L‰t$pL‰d$xL‰|$@M…ÿtM9çtƒC C€<>¿Ž8 M‰üHÇD$ L ¤°HL$pL‰òM‰àèŽ3Hƒ¼$…[L‰d$0H‹„$ˆL‹¼$ÀM‰ùI)ÁHƒ¼$ÈÿL‹d$pL‹D$xH‹¬$€„~M9Áƒ–L‹¬$°L‹”$ L‹œ$¨H‹¼$ÐM‰ÖI÷Ö@C¶ I£ÍseH‰ùH÷ÑL9ñIFÎHÇÂþÿÿÿH)ÊK f.„HƒúÿtJH9ƒp I4L9ƃª ¶\Hrÿ:H‰òtÓM÷I÷IƒÇH‰Çëd@H‰ÇM‰ÏëX„L‰Òf.„H9úƒçH9ƒˆ I4L9ƃŒ ¶\Hr:H‰òtÐM)ßL‰ßf.„M‰ùI)ÁM9Á‚!ÿÿÿH‰¼$ÐésDŠ”$©L‹Œ$ H‹D$pH‹l$xë „I)ÑD‰ÒE„ÒA”ÂH‰D$@H‰l$HL‰L$XM…ÉtL9Ít†© B€<¿Žž M…ÉtTB¶Lÿ„ÉxZ¶É„Ò…Cù„Ϻù€r–ºùr‰ùºHƒÚéuÿÿÿD¹„Òt¸éöfJ<HƒÇÿH9øt@J4¶~þ‰û€ãÀ€û€u2H^þH9Øt.D¶FýD‰Ã€ãÀ€û€u#H^ýH9Øt ¶vüƒæÁæë1ÿë#ƒçëE1ÀëAƒàë 1öAƒà?A ðAÁàƒç?D ÇÁç€á?¶É ù„Ò„*ÿÿÿéhLõ¬E1ÿé•M9ÁƒL‹¬$°H‹¼$ H‹Œ$¨H‰Œ$àHOÿH‰L$hI JH‰ù€H9ÁsmL9ƒ ¶\ HƒÁHrA:H‰òtÜL+¼$à@M‰ùI)ÁM9Á‚AÿÿÿL‰¼$ÀL‹t$(LÅ«E1ÿL‹d$0é`L‰Œ$ÀH‰„$ÐëL‰Œ$ÀL‹t$(L‹d$0IƒÁtM9Ìt†ÒC€<¿ŽÇOM‰çM)Ï„K&L]«Iº?L‰Å„HM¶E¶ø@„ÿxH‰Í鈄H9Ñt ¶]HƒÅƒã?ë1ÛH‰Õ‰þƒæ@€ÿàrH9Õt¶}HƒÅƒç?ë Áæë#1ÿH‰ÕÁã û<ðrH9Õt¶EHƒÅƒà?ëÁæ ó‰ßë1ÀH‰ÕƒæÁæÁã ó ÉßûtLfG߃ør4GЃø r,‰øƒà߃À¿ƒørG¥ƒø#w I£ÂrDƒÇƃÿƒâH9Õ…ÿÿÿëE1ÿM‰ÃM‰ÌIƒüL‰d$0L‰œ$ØvCA€~À|FH«I9ÆtA·5_ZA¶NƒñNf Áu$CŠD&ÿ¶È„ɈìƒùEuéwIƒü…ÀA€~ÀŒoHɪI9ÆtA·=ZN…TCŠD&ÿ¶È„ÉxDƒùE…?IL$ÿL‰t$@L‰d$HHÇD$8H‰L$X<¿ŽºM^ML$ýé-E1ÿé*ÿÿÿK&HƒÂÿI9Ö„£K<&¶Wþ‰Ó€ãÀ€û€…‘HoþI9¶oý‰ë€ãÀ€û€…ŠH_ýI9Þ„‘¶_üƒãÁãé„K&HƒÂÿI9ÖtNK<&¶Wþ‰Ó€ãÀ€û€uCHoþI9îtK¶oý‰ë€ãÀ€û€uDH_ýI9Þ„2¶_üƒãÁãé%1Òë;ƒâë61Òé"ƒâé1íëƒåë1íéƒåéú1Ûƒå? ÝÁåƒâ? êÁâƒá? уùE„ÁþÿÿIƒü†<A€~ÀŒ1HG©I9Æt A>__ZN…CŠD&ÿ¶È„Éx<ƒùE…IL$ÿL‰t$@L‰d$HHÇD$8H‰L$X<¿Ž8M^ML$ûé«K&HƒÂÿI9Öt>K<&¶Wþ‰Ó€ãÀ€û€u0HoþI9ît,¶oý‰ë€ãÀ€û€u"H_ýI9Þtq¶_üƒãÁãëg1Òëpƒâëk1íë_ƒåëZ1Ûƒå? ÝÁåƒâ? êÁâƒá? уùE…“ýÿÿIL$ÿL‰t$@L‰d$HHÇD$8H‰L$X<¿ŽˆM^ML$üAµë)1Ûƒå? ÝÁåƒâ? êÁâƒá? уùE„ýþÿÿE1íM‰áM‰óO$ 1ÀL‰ÙL‰ÚL‰|$hfDL‰åH)ÕHƒýv3€9ˆl€yˆb€yˆXHQHƒÀü€yH‰ÑyÆéBH÷Øf.„@I9ÁtI HƒÀ€9yîéE„í„E1ÿA¾ L‰Þ@1Àf.„@H‰ÁºL9æ„ÜHFD¶E¶ÐE„ÒxH‰Æé–fDL9àt ¶FHƒÆƒà?ë1ÀL‰æD‰ÕƒåA€úàrL9æt¶>HƒÆƒç?H‰óë Áåë'1ÿL‰ãÁà øA€øðrL9ãt¶;HƒÃƒç?H‰Þë Áå èA‰Âë&1ÿƒåÁåÁà è øA‰Â=t:f.„ABЃø ‡óH‰ÈI÷æºpD‰ÕHƒÅÐHèƒÿÿÿE1íH…É„W1À„ú…”L9æ„»HV¶„ÛxH‰Öé€L9ât)¶nHƒÆƒå?€ûàrkL9æt ¶HƒÆƒâ?H‰÷€ûðsëR1íL‰æ€ûàsÝëF1ÒL‰ç€ûðr<¶ÛÁå êL9çt¶/HƒÇƒå?H‰þë1íƒãÁãÁâ Ú êf„út+HƒÀºH9Á…Fÿÿÿë@D‰ÒH…É…*ÿÿÿëfL‰æ1ÒH9È”ÀtE1íˆÂI×AöÅ…þÿÿëE1íE1ÿA€åH‹„$èH‹L$(H‰H‹L$0H‰HL‰XL‰HH‹Œ$ØH‰H H‹L$hH‰H(Dˆh8L‰x0HÄø[]_^A\A]A^A_Ãú…‰L9æt!DŠA¶Ð„ÒyyHFL9àt¶FHƒÆƒà?ë ºë\1ÀL‰æ‰Ñƒá€úàrL9æt¶HƒÆƒâ?ë Áá Èë31ÒL‰æÁà ÐA€øðr L9æt¶ƒâ?ë Áá Èë1ÒƒáÁáÁà È Ð‰ÂúA”ÅéÿÿÿH è¢è³  H "£ëyHD$XH‰D$@H„$ðH‰D$HHD$8H‰D$PHL$@èÿÿ HL$@HT$Xèlíÿÿ H ó¢ëCH ¢¢ë)H ±¢ë1LÏI:HƒÂÿH Í¢è8  H ×¢I‰Àè'  H Þ¢H‰òè  H ꢏ  HD$@H‰D$pHD$8H‰D$xHD$XH‰„$€HL$pè{ÿÿ E1ÀL‰ñL‰âè{2 HL$pHT$@èºìÿÿ ÌÌÌÌÌÌÌÌAWAVAUATVWUSHì˜H‰Ð€y8„^H‰D$`H‰L$xH‹A0H‰„$€H…À„KH‹D$xH‹HH‰Œ$ˆH‹@H‰D$p1ÀH‰D$hH‹D$hI‰ÁL‹´$ˆH‹D$pH…À„`IIH‰L$hM,L@ÿ1ÉE1äf.„fC¶&¶Ó„Ò‰€1öL‰ïM9àtK<&HƒÇC¶t&ƒæ?‰Õƒå€úàrL9ït¶HƒÇƒâ?ë Áåë1ÒL‰ïÁæ Ö€ûðr L9ït¶ƒâ?ë Áå î‰òë 1ÒƒåÁåÁæ î Ö‰òþ„±O,&H<ƒÂЃú sPL‰l$(H‰|$0HÇD$8H‰|$@HƒÿtH…ÿ„MC€|&¿ŽAIýIƒÄHƒÁÿL9à…ÿÿÿéR@L‰t$HH‰D$PL‰d$(L9àtM…ätL9à†:C€<&¿Ž/L‰Œ$HL$HL‰òM‰àè+\€|$H„L‹|$PH‹T$pL)úL‰l$(H‰|$0L‰|$8H‰|$@M…ÿ”ÁL)â”ÀÈ<u K >ë€L9ÿ†‹K >A€< ¿Ž|LáH‰Œ$ˆH‰T$pL‰l$HH‰|$PL‰|$(„ÀuL9ÿ†ˆK>A€<¿ŽyH‹L$`è“PH‹L$hH;Œ$€…„À„M…ÿ„ÿO>MàCŠ&¶Ê„Éxƒùh„›éß1ÀL‰ÅIƒÿtK,&HƒÅC¶D&ƒà?‰Ëƒã€ùàrH‰éL)ùL)ñL9át¶MHƒÅƒá?ë Áãë)1ÉL‰ÅÁà È€úðrH‰éL)ùL)ñL9át¶Mƒá?ëÁã Ø‰Áƒùh…cë1ɃãÁãÁà Ø ȃøh…IL‰l$(L‰|$0HÇD$8L‰|$@Iƒÿ„K&HƒÂ€:¿Ž*L‰ùH÷ÙL‰÷H÷ßf.„¶¶ë@„íxHƒÂé¬f.„fH HøHƒÀL9àt ¶BHƒÂƒà?ë1ÀL‰Â‰îƒæ@€ýàrH, HýL9åt¶*HƒÂƒå?ë Áæë*1íL‰ÂÁà è€ûðrH, HýL9åt¶*HƒÂƒå?ëÁæ ð‰Åë&1íL‰ÂƒæÁæÁà ð è‰Å=„1€EЃø r!]Ÿ¸©ÿÿÿƒûr ]¿¸ÉÿÿÿƒûwŃýwH HøL9à…ÿÿÿéì fHƒ¼$tA¸H‹L$`H´žèîM„À…ž Iƒÿu`HœžL)ðL9àtC·&=_$…ÁL‰l$(L‰|$0HÇD$8L‰|$@A€}¿Ž¢ IƒÇÿO,&IƒÅéf.„Iƒÿr C€|&À|rëM…ÿ„ö A¿ë_A¸H‹L$`HcžéžA¸H‹L$`HRžé A¸H‹L$`HAžépA¸H‹L$`H0žéå O/AŠU¶ê‰é@„íˆjƒù.„‘„Òˆ9ƒý$…ßIƒÿ…~H…I9Å„ŽA}$SP$„€Iƒÿt A€}ÀŒ`H[I9Å„ A}$BP$„ò Iƒÿt A€}ÀŒ1H1I9Å„ê A}$RF$„Ü Iƒÿt A€}ÀŒHI9Å„é A}$LT$„Û Iƒÿt A€}ÀŒÓHÝœI9Å„ü A}$GT$„î Iƒÿt A€}ÀŒ¤H³œI9Å„ø A}$LP$„ê IƒÿtA€}À|yHœI9Åt A}$RP$ucA¸H‹L$`Hpœé 1ÉL‰ÀIƒÿt IEA¶Mƒá?‰ëƒã@€ýàrL9ÀtH¶8HƒÀƒç?ëAÁãë]IƒÿrgA€}ÀqþÿÿA€}ÀŒ¶1öëZA¸H‹L$`Hà›éP 1ÿL‰ÀÁá ù€úðrL9À„‘¶ƒà?éˆÁã Ùƒù.…ÿýÿÿé‹@¶Iƒÿ…r L‰l$HL‰|$PHÇD$(@„öuIƒÿ‚è A€}¿ŽÝ Hƒ›I9Å„wA·E5$CA¶Mƒñ$f Á„\@¶IƒÿtIƒÿ‚ A€}ÀŒü 1öL‰l$HL‰|$PHÇD$(@„öu A€}¿Žo H›I9Å„gA‹E¹$u7e1ÈA¶Mƒñ$ Á„L@·@„öu A€}ÀŒ™ 1ÿL‰l$HL‰|$PHÇD$(@„ÿu A€}¿Ž H¼šI9Å„A‹E¹$u201ÈA¶Mƒñ$ Á„u@¶@„ÿu A€}ÀŒ6 1öL‰l$HL‰|$PHÇD$(@„öu A€}¿Ž© H_šI9Å„A‹E¹$u271ÈA¶Mƒñ$ Á„ë@·@„öu A€}ÀŒÓ1ÿL‰l$HL‰|$PHÇD$(@„ÿu A€}¿ŽF HšI9Å„ÎA‹E¹$u3d1ÈA¶Mƒñ$ Á„³@¶@„ÿu A€}ÀŒp1öL‰l$HL‰|$PHÇD$(@„öu A€}¿ŽãH¥™I9Å„‚A‹E¹$u5b1ÈA¶Mƒñ$ Á„g@·@„öu A€}ÀŒ 1ÿL‰l$HL‰|$PHÇD$(@„ÿu A€}¿Ž€HH™I9Å„JA‹E¹$u5d1ÈA¶Mƒñ$ Á„/@¶@„ÿu A€}ÀŒª1öL‰l$HL‰|$PHÇD$(@„öu A€}¿ŽHë˜I9Å„rúÿÿA‹E¹$u7b1ÈA¶Mƒñ$ Á„Wúÿÿ@·@„öu A€}ÀŒG1ÿL‰l$HL‰|$PHÇD$(@„ÿu A€}¿ŽºHŽ˜I9Å„&úÿÿA‹E¹$u7d1ÈA¶Mƒñ$ Á„ úÿÿ@¶@„ÿu A€}ÀŒä1öL‰l$HL‰|$PHÇD$(@„öu A€}¿ŽWH1˜I9Å„ÚùÿÿA‹E¹$u3b1ÈA¶Mƒñ$ Á„¿ùÿÿ@·@„öu A€}ÀŒ1ÿL‰l$HL‰|$PHÇD$(@„ÿu A€}¿ŽôHÔ—I9Å„ŽùÿÿA‹E¹$u2b1ÈA¶Mƒñ$ Á„sùÿÿ@¶@„ÿu A€}ÀŒ1öL‰l$HL‰|$PHÇD$(@„öu A€}¿Ž‘Hw—I9ÅtA‹E¹$u221ÈA¶Mƒñ$ Á…ÒA¸H‹L$`HJ—ëpA¸H‹L$`Hô–èF„À…³L‰l$(L‰|$0HÇD$8L‰|$@@„öuIƒÿ‚ØA€}¿ŽÍIƒÅIƒÇýé<A¸H‹L$`Hœ–è¥E„À…UL‰l$(L‰|$0HÇD$8L‰|$@IƒÅ@„ö…ŒA€}¿él1ÀƒãÁãÁá Ù Áƒù.…°I}L‰l$(L‰|$0HÇD$8L‰|$@Iƒÿt €?¿Ž)Iƒÿ„[AŠE¶Ð„Òˆ¦ƒú.…CA¸H‹L$`H²•èìD„À…œL‰l$(IƒÅL‰|$0HÇD$8L‰|$@IƒÿtIƒÿ‚¼A€}¿ޱIƒÇþé$@‰Ñ€á1íL‰ÀIƒÿt IEA¶mƒå?¶É€úàrL9ÀtU¶HƒÀƒã?ëNÁáëj1ÉL‰ÅIƒÿt ImA¶Mƒá?‰Óƒã€úàrL9Å„é¶UHƒÅƒâ?éÞÁã ÙéN1ÛL‰ÀÁå Ý€úðrL9À„š¶ƒà?é‘Áá ̓ý$„!÷ÿÿ1ÀL‰éf.„fI9È„ÉH‰ÅHQ¶¶û@„ÿxƒÿ$ué°f.„L9ÂtHQ¶Aƒà?I‰Ñë1ÀM‰Á‰þƒæ@€ÿàrM9ÁtA¶9IƒÁƒç?L‰Êë Áæë'1ÿM‰ÁÁà ø€ûðrM9Át3A¶IƒÁƒã?L‰Êë%Áæ ð‰Çƒÿ$t6H‰èH)ÈHÐH‰Ñƒÿ.…Lÿÿÿë1ÛƒæÁæÁà ð Ø‰Ç=…IÿÿÿL‰ýL‰l$HL‰|$PH‰l$(H…í”ÀL‰ÿH)ï”ÃÃuI9ï†A€|-¿ŽH‹L$`L‰êI‰èèÄB„À…tL‰l$(L‰|$0H‰l$8L‰|$@„ÛuI9A€|-¿Ž“Iíé A¸H‹L$`HD“é¯1ÀƒáÁáÁå Í Åƒý$„ˆõÿÿébþÿÿ1ÒL‰ÅÁá Ñ<ðrL9Åt]¶Eƒà?ëVÁã Ùë\A¸H‹L$`H“èB„À…ÉL‰l$(L‰|$0HÇD$8L‰|$@IƒÅ@„ÿ„tüÿÿIƒÇûéc1ÀƒãÁãÁá Ù Á‰Êƒú.„Æüÿÿf„A¸H‹L$`Hs’è©A„À…YL‰l$(L‰|$0HÇD$8L‰|$@Iƒÿt €?¿Ž~IƒÇÿI‰ýéîA¸H‹L$`H0’é–A¸H‹L$`HC’é–ûÿÿA¸H‹L$`H’ëkA¸H‹L$`H’é÷þÿÿA¸H‹L$`H ’éTûÿÿA¸H‹L$`HÊ‘ë)A¸H‹L$`Hè‘éµþÿÿA¸H‹L$`H¤‘è¼@„ÀupIEL‰l$(L‰|$0HÇD$8L‰|$@Iƒÿt €8¿Ž‘IƒÇüI‰ÅfDL‰ÿI‰ÿH…ÿ…qóÿÿH‹D$hH;„$€‚îÿÿë6H‹L$`L‰êM‰øèL@„Àt×°HĘ[]_^A\A]A^A_ÃH‹L‹AH‰ÁëH‹D$xH‹P L‹@(H‹L$`HĘ[]_^A\A]A^A_éü?HD$(H‰D$HHD$8H‰D$PHD$@H‰D$XHL$Hètñþÿ H KŽèf  HL$HHT$(èµÙÿÿ ŠL$IèÊÙÿÿ ÌÌÌÌÌÌÌÌHìˆHz’H‰D$(HÇD$03HD$(H‰D$8H3åþÿH‰D$@HD$ H‰D$HH]VH‰D$PH‘H‰D$XHÇD$`H$‘H‰D$hHÇD$pHD$8H‰D$xHÇ„$€H‘‘HL$Xè—  ÌÌÌÌÌHƒì(H‹ è41ÀHƒÄ(ÃÌÌÌÌÌÌÌÌÌÌÌÌÌHƒìhH‹H‰D$(JR )T$P)L$@)D$0HãHL$(LD$0è$0HƒÄhÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒì(H‹ IÐèA1ÀHƒÄ(ÃÌÌÌÌÌÌÌÌÌÌHƒì(H %‘è  ÌÌÌÌÌÌÌÌÌÌÌÌÌÌUAVVWSHì€H¬$€HÇEøþÿÿÿH‰×I‰ÎL‹H‹JH‰ÈHÁàt#HƒÀðH‰ÃHÁëSƒâHƒøps1ÛL‰ÀH…ÒuKëg1ÛHƒ(ueéƒHrÿH)Þ1ÛL‰ÀHXHXHX(HX8HXHHXXHXhHXxHƒè€HƒÆuÖH…ÒtHƒÀH÷Úf.„HHƒÀHƒÂuóHƒ(t#H…É„¹Hƒûw I‹@H…ÀtHÛsHuàë*HuàH…Ût!ºH‰Ùè£ÞþÿH…ÀuºH‰Ùè! ¸1ÛH‰EàH‰]èHÇEðHEàH‰EØOW )UÀ)M°)E H2ŽHMØLE èu.„Àu H‹FI‰FAL‰ðHÄ€[_^A^]Ãè,ýÿÿ H kŽ1ÒE1Àè¹  €H‰T$UAVVWSHƒì Hª€HMàèæþÿHƒÄ [_^A^]ÃÌÌÌÌÌUAWAVAUATVWSHƒìHHl$@HÇEþÿÿÿL‰ÃH‰×I‰ÎM…Àt!ºH‰Ùè˜ÝþÿH…ÀuºH‰Ùè ¸H‰EèH‰]ðHÇEøL,_1öI¿Leèf.„f…öuL9·HƒÇ‰Ø%ø=ØuM·ÓúÜsKL9ïtn·HƒÇ‰Ááüf¾ùÜuZÃ(€$·À·ÓÁâ ÂHÁâ Lúëf·ÓHÁâ ëHÁâHƒÊ1ö1Ûfƒút-f…Òu:HÁê L‰áè¤é_ÿÿÿ1öL‰ï1ÀHÁâHƒÊ‰ÃfƒúuÓH‹EøI‰FEèAëIÇH‹UðH…ÒtH‹MèA¸èwÜþÿL‰ðHƒÄH[_^A\A]A^A_]ÃH‰T$UAWAVAUATVWSHƒì(Hj@HMèèÎäþÿHƒÄ([_^A\A]A^A_]ÃÌÌÌÌÌÌÌÌÌÌÌÌVWSHƒì0‰×H‰Îú€sRH‹VH;VuyH‰ÓHƒÃ‚&HH9ÃHBØH…Ò„íH‹A¸I‰ÙèàÛþÿH…À„éH‰H‰^H‹Vë4ÇD$,‰øÿs-Áè$ ÀˆD$,@€ç?@€Ï€@ˆ|$-¸ëwH‹@ˆ<HƒFë~ÿÿÿw,Áè $ àˆD$,‰øÁè$? €ˆD$-@€ç?@€Ï€@ˆ|$.¸ë5Áè ðˆD$,‰øÁè $? €ˆD$-‰øÁè$? €ˆD$.@€ç?@€Ï€@ˆ|$/¸LIƒÀ,HT$,H‰ñè]HƒÄ0[_^úH‰Ùè×ÚþÿH…À…ÿÿÿºH‰ÙèQ èúúÿÿ ÌÌÌÌÌÌÌÌH‰ÈH‹JH‰HÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌAVVWSHƒì(L‰ÆI‰ÖH‰ÏH)ÖH‹QH‹YH‰ÐH)ØH9ðs(HórgHH9ÃHBØH…ÒtH‹A¸I‰ÙèbÚþÿëH‹ë ºH‰Ùè.ÚþÿH‰ÁH…Àt1H‰H‰_H‹_H3H‰GHÙL‰òI‰ðHƒÄ([_^A^é)_è7úÿÿ ºH‰Ùèx ÌÌÌÌÌÌAVVWSHƒì(L‰ÆI‰ÖH‰ÏM…Àt$ºH‰ñè¼ÙþÿH‰ÃH…ÀuºH‰ñè7 »H‰ÙL‰òI‰ðè¿^H‰H‰wH‰wH‰øHƒÄ([_^A^ÃÌÌÌÌÌÌÌÌÌÌHƒì(èG›ÿÿ ÌÌÌÌÌHƒìxH‰L$(HƒÁH\EH‰D$0H‰L$8H‰D$@H‹J H‹R(HþŒH‰D$HHÇD$PH!‹H‰D$XHÇD$`HD$(H‰D$hHÇD$pLD$Hè)HƒÄxÃÌÌÌÌÌÌÌÌH‹J H‹B(H‹@H½ŒA¸ HÿàÌÌÌÌH‹J H‹B(H‹@H¨ŒA¸HÿàÌÌÌÌAVVWSHƒìHA‰ÖH‰Î¸AN÷ƒùwºtH=gHcHûÿãºnëcAƒþ\„H ¢D‰òè.?„À…ŽAþÿÿw>HE˜H‰D$(HÇD$0<HÇD$ /H¨–L ñ–A¸(ëEºréÀAþÿÿwWHšH‰D$(HÇD$0}HÇD$ žH™L W™A¸!D‰ñèœ?„ÀuqD‰ðƒÈ½ÈƒñÁéƒñ¸ë`AþïwÞA†âýÿ=â rÐA†ýÿ= rÂA†^1ýÿƒør¶D‰ð%þÿ=¸t§A†)Yýÿƒø)r›A†ËHýÿƒø v¸D‰ò‰‰VH‰ND‰vÆFŠD$GˆF·D$Ef‰FH‰ðHƒÄH[_^A^ÃÑÿÿÿ¢þÿÿ³þÿÿ³þÿÿÿÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿÎÿÿÿ³þÿÿ³þÿÿ³þÿÿ³þÿÿÎÿÿÿÌÌÌÌH‰Ê‹ Hƒùt9Hƒùt=¸Hƒùut¶JHƒÁÿHƒùwfHƒHc ˆHÁÿáÆB¸}ËBÇÃǸ\ÃD‹JL‹BD‰ÁÀá€áAÓéAƒáAI0D‰ÈƒÀWA€ù BÁM…Àt'IƒÀÿL‰BÃÆB¸{ÃÆB¸uÃÆB¸\ÃÆBÆÿÿÿ¦ÿÿÿÝÿÿÿçÿÿÿñÿÿÿÌÌÌÌÌÌÌÌH‹H‹QÃÌÌÌÌÌÌÌÌH‹AÃÌÌÌÌÌÌÌÌÌÌÌHAÃÌÌÌÌÌÌÌÌÌÌÌH‰È‹L$(H‰L‰@D‰H‰HÃÌÌÌÌÌÌÌÌÌÌ‹AÃÌÌÌÌÌÌÌÌÌÌÌÌ‹AÃÌÌÌÌÌÌÌÌÌÌÌÌHìˆH‰L$(HALAH eNH‰L$0H‰D$8HdHH‰D$@L‰D$HH‰D$PH‹J H‹R(Hþ‰H‰D$XHÇD$`H‰H‰D$hHÇD$pHD$(H‰D$xHÇ„$€LD$Xèó$HĈÃÌÌÌÌÌÌÌÌÌÌHƒìxIH‹A D$PHL$PH‰L$ HÇD$(HÇD$0H y†H‰L$@HÇD$HL$`H‰D$pHL$ HT$`è’ HìˆH‰ÈH‰T$(L‰D$0HL$0H‰L$8H ‹HH‰L$@HT$(H‰T$HH‰L$PH p‰H‰L$XHÇD$`H †H‰L$hHÇD$pHL$8H‰L$xHÇ„$€HL$XH‰Âè  ÌÌÌÌÌÌÌÌHƒìXH‹BH®…H‰T$(HrˆH‰T$0H‰L$8D$@H‰D$PHL$(èä ÿÿ ÌÌHƒìxH‰L$(H‰T$0HD$(H‰D$8H‘LH‰D$@H=‰H‰D$HHÇD$PHÈ…H‰D$XHÇD$`HD$8H‰D$hHÇD$pH‰HL$HèNÿÿÿ ÌÌÌÌÌÌÌÌÌÌÌÌAVVWSHƒì(‰ÐƒàE1ÒH…À„ÅA»I)ĶM9ÃMGØN1ÀH‰ÖE1É@L‰×H)÷HƒÿvYH4¶1ÿ8Ë@•ÇIù8Ëtp¶^1ÿ8Ë@•ÇIù8Ët]¶^1ÿ8Ë@•ÇIù8ËtJ¶^1ÿ8Ë@•ÇIùHƒÆHƒÀ8Ëuë-¾L)ÎI9Ãt'HƒÆÿ8 H@uî”ÀD¶ÈAƒáI)ñ¸é3M‰ÚIƒør|MpðM9òws¶ÙH¾H¯óI¹ÿþþþþþþþI»€€€€€€€€f.„J‹<H1÷H‰ûH÷ÓLÏH!ßJ‹\H1óH‰ØH÷ÐLËH!ÃH ûL…Ûu IƒÂM9òvÈM9‡ÂJ4NE1ÉL‰ÐL‰ßH)÷HƒÿvYH4¶1ÿ8Ë@•ÇIù8Ëtu¶^1ÿ8Ë@•ÇIù8Ëtb¶^1ÿ8Ë@•ÇIù8ËtO¶^1ÿ8Ë@•ÇIùHƒÆHƒÀ8Ëuë2I÷Ù„I9Àt7IƒÁÿ8 H@uî”À¶ÀƒàL)ÈHƒÀÿI‰Á¸MÑL‰ÊHƒÄ([_^A^ÃI÷Ù1ÀëéL‰ÑL‰Âè‚ AWAVVWSHƒì ‰ÐƒàA¾I)ÆH…ÀLDðD‰ÀD)ðƒàE1ÛM9ÆMGðLFØM‰ÁM)Ù‚N< JI‰ÂM)úJHƒÃü1öDL)øHƒøv'8L3tD8L3tG8L3tJH3H~ü8 3H‰þuÕIúë8 0HvÿuòIòëIòIƒÂÿëIòIƒÂþëIòIƒÂýMʸL‰ÒHƒÄ [_^A^A_öÙH¸H¯ÃI¿ÿþþþþþþþIº€€€€€€€€„M‰ËM9ñv4MKðJ‹\ðH1ÃH‰ÞH÷ÖLûH!óJ‹tøH1ÆH‰÷H÷×LþH!þH ÞL…ÖtÄM9Ljf.„IƒûvJ8Hÿt=8Hþt>8Hýt?IƒÃü8HüuÞë81Àf.„M‰ÚIÂt1HHƒÀÿA8LÿuéIÃëIƒÃÿë IƒÃþëIƒÃý¸M‰Úé ÿÿÿ1ÀéÿÿÿL‰ÉL‰Âè¥ L‰ÙL‰Âè ÌÌÌÌÌÌHìˆH‰L$(H‰T$0HD$(H‰D$8HCH‰D$@HL$0H‰L$HH‰D$PHû„H‰D$XHÇD$`H–€H‰D$hHÇD$pHD$8H‰D$xHÇ„$€HÛ„HL$Xè™úÿÿ ÌÌÌÌÌÌÌHìˆH‰L$(H‰T$0HD$(H‰D$8HŽBH‰D$@HL$0H‰L$HH‰D$PHË„H‰D$XHÇD$`H€H‰D$hHÇD$pHD$8H‰D$xHÇ„$€H«„HL$Xè úÿÿ ÌÌÌÌÌÌÌHƒì(H Õ„èùÿÿ ÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVAUATVWUSHƒìhf)|$Pft$@M‰ÏI‰ÒH‰ÈL‹´$ÐM…ötIƒþu;1ÛM‰ôL‰ñE1íéBL‰L‰@L‰xfWÀf@HÇ@(L‰@0fÇ@8éà¿1É1Û¾1íA¼€H+L9òƒA¶A8?sH.HƒÂI‰ÔI)Ü1íë5fDuHƒÅL9åH‰ïHDùHEéH‰êHòH‰ýëHVA¼1íH‰óH<*H‰ÖL9÷r•½E1ÉE1í¾1ÿ¹f.„@J/L9òƒqA¶A8/vH>HƒÂH‰ÑL)é1ÿë4fDuHƒÇH9ÏH‰ýIDéIEùH‰úHòH‰ïëHV¹1ÿI‰õH,:H‰ÖL9õr–L9ëLFáLGëM9õ‡&L‰âLê‚L‰T$0L‰D$8H‰D$(L9ò‡K'M…ätBL‰ùH‰ÚM‰èèQ…Àt0M‰ôM)ìM9ìMBåIƒþƒÉ1ÒL‰ûH‹D$(H‹t$8L‹T$0鸾E1À1ÿ¹E1ÉH9L9ðƒ‰H‰ÈH÷ÐL‰òH)úHÂL9òƒbH‰øH÷ÐLðL)ÈL9ðƒVHiA¶A8sH,HƒÅH‰îL)Î1ÿë/DuHƒÇH9÷H‰øIDÀIEøH‰ýHÍH‰Çë ¾1ÿI‰ÉH‰éL9æ…jÿÿÿ½E1À1ö¹E1Ò„H1L9ðƒ‰H‰ÈH÷ÐL‰òH)òHÂL9òƒ²H‰ðH÷ÐLðL)ÐL9ðƒ¦HyA¶A8vH<HƒÇH‰ýL)Õ1öë/DuHƒÆH9îH‰ðIDÀIEðH‰÷HÏH‰Æë ½1öI‰ÊH‰ùL9å…jÿÿÿM9ÊMBÑM9ô‡bM‰ñM)ÑM…ätIƒüH‹t$8L‹T$0ƒe1ÒL‰ùéZ1ÿL‰ñ1ÒE1äH‹D$(H‹t$8L‹T$0é[L‰óHƒãüHküH‰éHÁéQƒâH…íH‹D$(H‹t$8L‹T$0„HjÿH)ÍfWÀ1Éfo~{fÛf{fo~{fWÉf.„A¶|fHnçA¶<fHnïflìA¶|fHnçA¶|fHn÷flôfÛêfÛòfoûfóýfpíNfoãfóåòçfVàfoÃfóÆfpöNfoëfóîòèfVéA¶|fHnÇA¶|fHnÏflÈA¶|fHnÇA¶|fHn÷fÛÊfoûfóùflðfpÉNfoÃfóÁfÛòòÇfoûfóþfVÄfpæNfoËfóÌòÏfVÍHƒÁHƒÅ…ÿÿÿH…Ò„‰A¶TfHnÒA¶TfHnÚflÚfoI‹]H÷Ó1ÉL‰÷M‰òf.„fHWD¶A¶ó@„öxH‰×HƒÃ…¼éÕf.„L9Êt¶GHƒÇƒà?I‰üë1ÀH‰×M‰Ì‰òƒâ@€þàrM9ÌtA¶4$IƒÄƒæ?L‰çë Áâë)1öM‰ÌÁà ðA€ûðrM9Ìt#A¶4$IƒÄƒæ?L‰çëÁâ ЉÆHƒÃu4éM1öƒâÁâÁà Ð ð‰Æ=„zf„HƒÃ„L)ÑHùI‰úI9ù…ÿÿÿéPE1ÿM…À„MM…ÿt IGÿE‰øAƒàHƒøs1ÒL‰ñM…Àutéš1Òé“L‰ÇL)ÿ1ÒL‰ñf.„f¶¶A€ãÀ1ö€û€@”ÆHÖ$À1Ò<€”ÂHò¶A$À1Û<€”ÃHÓ¶AHƒÁ$À1Ò<€”ÂHÚHƒÇu´M…Àt+1Àf.„¶€ãÀ1ÿ€û€@”ÇHúHƒÀI9ÀuäL‰øH)ÐM‹EL9Àƒ{M…ÿtVIOÿE‰ùAƒáHƒùsL1ÿL‰òM…É…¢éÁþ„=H…ÉtL9ùtL9ùƒA€<ÀŒL‰ðé 1ÿéˆL‰ÉL)ù1ÿL‰ò@¶¶Z$À1ö<€@”ÆHþ€ãÀ1À€û€”ÀHð¶Z€ãÀ1ö€û€@”ÆHƶBHƒÂ$À1ÿ<€@”ÇH÷HƒÁu°M…Ét$1Éf„¶ $À1Û<€”ÃHßHƒÁI9ÉuçL)ÿAŠUX¹€út‰ÑLÇ„Ét €ùt E1äëI‰ü1ÿëH‰øHÑèHƒÇHÑïI‰üH‰ÇÇD$,A‹ETƒøwˆD$,»錉Á=ÿwÁé€á€ÉÀˆL$,$? €ˆD$-»ëg=ÿÿw+Áé €á€ÉàˆL$,‰ÁÁé€á?€É€ˆL$-$? €ˆD$.»ë5Áé€ÉðˆL$,‰ÁÁé €á?€É€ˆL$-‰ÁÁé€á?€É€ˆL$.$? €ˆD$/»HÇÆÿÿÿÿ€HƒÆH9þsI‹M I‹E(HT$,I‰ØÿP„ÀtàëLI‹M I‹E(L‰òM‰øÿP„Àu7HÇÆÿÿÿÿH|$,f.„HƒÆL9æs'I‹M I‹E(H‰úI‰ØÿP„Àtâ°HƒÄ0[_^A\A]A^A_Ã1Àëì1ÀH…ÀLEùLEðM…À…³üÿÿI‹M I‹E(H‹@L‰òM‰øHƒÄ0[_^A\A]A^A_HÿàÌÌH‹A H‹I(L‹IH‰ÁIÿáÌÌÌÌÌÌÌÌÌÌÌÌÌÌHƒìXH‹A L‹I(JR )T$@)L$0)D$ LD$ H‰ÁL‰Êè*ñÿÿHƒÄXÃÌÌÌÌŠAP$ÀèÃÌÌÌÌÌÌÌŠAP$ÀèÃÌÌÌÌÌÌÌŠAP$ ÀèÃÌÌÌÌÌÌÌVWHƒì(H‰ÖH‰ÏH‹J H‹B(L‰ÂM‰ÈÿPH‰7ˆGÆG H‰øHƒÄ(_^ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌVWSHƒì L‰ÎH‰×H‰ËH‹J H‹B(L‰ÂM‰ÈÿPH…öH‰;ˆCHÇC”CH‰ØHƒÄ [_^ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌVWHƒìXH‰ÖH‰ÏH‹J H‹R(H=]H‰D$(HÇD$0HÇD$8H÷QH‰D$HHÇD$PLD$(èðÿÿH‰7ˆGÆG H‰øHƒÄX_^ÃÌÌÌÌÌÌÌÌÌÌÌH‹A H‹I(L‹A H‰ÁIÿàÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVAUATVWUSHì¨L‰ÆH‰ÓI‰ÎI‹H I‹@(º"ÿP „À…EH…Û„H‰t$8H‰\$0I1ÿM‰ôE1íL‰t$(H‰\$@L‰æIL$AŠ$¶ê@„íx I‰Ìé¤@I‰ðH9ÙtA¶D$IƒÄƒà?L‰æë1ÀI‰ÌH‰Þ‰éƒá@€ýàrH9Þt¶.HƒÆƒå?I‰ôë Ááë&1íH‰ÞÁà è€úðrH9Þt ¶HƒÆƒâ?I‰ôëÁá ȉÅL‹t$(L‰Æë&1ÒL‹t$(L‰ÆƒáÁáÁà È Ð‰Å=„ fHL$P‰êèÔÅÿÿD‹|$PIƒÿ„ÙIƒÿ„»H‰t$hL‰´$€H‹D$0H‰„$ˆH‰|$pL‰l$xM‰èI)ø‚MH…ÿtH9Çtƒ=A€<>¿Ž2M…ítI9Åtƒ"C€<.¿ŽL÷H‹D$8H‹H H‰ÃH‹@(H‰úÿP„À…­‹|$TH‹t$X‹D$`‰D$LDŠt$dAƒÿthº\AƒÿtMAƒÿ…ÃA€ÆÿA€þ‡µA¿A¶ÆH àHcHÈA¶ÿàº}E1öë+f.„@A¿ë„E1ÿ‰úÿtcH‹K H‹C(ÿP „À„rÿÿÿéA¶ºuëÞ‰ñÀá€á‹D$LÓèƒàH0‰ÂƒÂW< BÑHFÿH…ö”ÁHEðA¶A(ÎëªA¶º{ë ¿ý€r¿ýrý¿HƒßLïL‹t$(H‹\$@H‹t$hë¶D$dHD$XHƒø…1þÿÿH‹\$@I)õMåL9ã…8ýÿÿH…ÿ„…H‹\$0H9ßH‹t$8tsA€<>¿L‰ñH‰ÚI‰øI‰Ùè¦Úÿÿ 1ÿIþH)ûH‹N H‹F(L‰òI‰ØÿP„Àt°HĨ[]_^A\A]A^A_ÃH‹N H‹F(H‹@ º"HĨ[]_^A\A]A^A_HÿàH‹t$8H‹\$0ëœH„$€H‰„$HD$pH‰„$˜HD$xH‰„$ HŒ$è×Ùÿÿ ,þÿÿƒþÿÿ·þÿÿyþÿÿaþÿÿH‰ÐH‰ÊL‰ÁI‰Àé_õÿÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌAWAVATVWUSHƒì@H‰ÖH‰ÏH‹J H‹B(º'ÿP „Àt°HƒÄ@[]_^A\A^A_ËHL$(è‹Âÿÿ‹l$(‹|$,L‹d$0D‹t$8Š\$__rust_begin_short_backtraceRUST_BACKTRACE0full - DZ@0¨@ɱ@  DZ@0¨@   2³@   at .³@@£@ ¯@\ at ̳@ ¯@PoisonError { inner: .. }src\libstd\sys_common\thread_info.rs´@$%assertion failed: c.borrow().is_none()assertion failed: key != 0v´@fatal runtime error:  ´@1³@ thread '' has overflowed its stack Ø´@ á´@\u{} µ@#µ@P@6@memory allocation of bytes failedhµ@}µ@ BoxP@p\@\@€n@0q@thread '' panicked at '', ¶@¶@¶@1³@note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace. h¶@O°@ `ß@°à@@@p@P@àá@Pâ@P@€@P@@thread panicked while processing panic. aborting. x·@2thread panicked while panicking. aborting. À·@+failed to initiate panic, error ¸@ StringErrorNulErrorP@€@SymFromInlineContextSymGetLineFromInlineContextSymFromAddrSymGetLineFromAddr64dbghelp.dllSymInitializeSymCleanupStackWalkExStackWalk64src\libstd\sys\windows\mutex.rsî¸@Ccannot recursively lock a mutexkernel32AcquireSRWLockExclusiveNTDLL.DLLOS Error (FormatMessageW() returned error z¹@ ƒ¹@"³­@ (FormatMessageW() returned invalid UTF-16)z¹@ ع@+\\?\UNC\src\libstd\sys\windows\path.rs0º@1*.\src\libstd\sys\windows\stack_overflow.rsjº@(failed to reserve stack space for exception handlingjº@($ failed to install exception handlersrc\libstd\sys\windows\thread_local.rs#»@&3assertion failed: key != c::TLS_OUT_OF_INDEXESsrc\libstd\sys\windows\stdio.rs–»@Ptext was not valid unicodestrings passed to WinAPI cannot contain NULsSetThreadStackGuaranteeSleepConditionVariableSRWsrc\libstd\sys\windows\c.rsF¼@ condition variables not availableWakeConditionVariableF¼@! F¼@( rwlocks not availableAcquireSRWLockSharedF¼@+ ReleaseSRWLockExclusiveF¼@. ReleaseSRWLockSharedF¼@1 called `Option::unwrap()` on a `None` valuesrc\libcore\option.rs½@+»½@Ycalled `Result::unwrap()` on an `Err` value/rustc/ceb2512144d1fc26330e85fb9d41c22ba1866259\src\libcore\str\pattern.rs0¾@J|!0¾@Jˆ0¾@Jˆ!0¾@JÐ0¾@JÐ!0¾@JÝ0¾@JÝ!: (¿@(¿@  src\libcore\result.rsп@å.llvm.E._ZNZN__ZN::_$.$SP$@$BP$*$RF$&$LT$<$GT$>$LP$($RP$)$C$,$u7e$~$u20$ $u27$'$u3d$=$u5b$[$u5d$]$u7b${$u7d$}$u3b$;$u2b$+$u22$"P@À0@P0@p0@/rustc/ceb2512144d1fc26330e85fb9d41c22ba1866259\src\libcore\fmt\mod.rs°À@FZ: Á@Á@  src\libcore\result.rs¸Á@åsrc\liballoc\raw_vec.rscapacity overflowÿÁ@èÁ@ëa formatting trait implementation returned an error??ÿÿ`     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ.. Â@hÄ@BorrowErrorBorrowMutError   P@`@: Â@Å@Å@index out of bounds: the len is but the index is ÈÅ@ èÅ@called `Option::unwrap()` on a `None` valuesrc\libcore\option.rs Æ@+KÆ@Y Â@KÆ@: src\libcore\slice\mod.rsindex out of range for slice of length ÊÆ@ÐÆ@"²Æ@% slice index starts at but ends at 0Ç@FÇ@ ²Æ@+ attempted to index slice up to maximum usizeÇ@,²Æ@1 src\libcore\str\pattern.rsðÇ@ðÇ@8ðÇ@9src\libcore\str\mod.rs[...]byte index is out of bounds of `sÉ@ ~É@ Â@XÉ@% begin <= end ( <= ) when slicing `àÉ@îÉ@òÉ@ Â@    XÉ@) is not a char boundary; it is inside (bytes ) of `sÉ@ `Ë@&†Ë@ŽË@ Â@     XÉ@60xP@ÐT@]@Ð]@ , {  Â@€Í@°Æ@ } }(), , [ÂÍ@P@p†@]P@^@ ^@à^@src\libcore\fmt\mod.rs0Î@((0Î@4src\libcore\unicode\bool_trie.rs€Î@ '€Î@ ( €Î@ *€Î@ +€Î@ , €Î@ :0       +,- .012©ª«úûýþÿ ­xy‹¢0WX‹ŒÝKLûü./?\]_µâ„Ž‘’©±º»ÅÆÉÊÞäåÿ)147:;=IJ]„Ž’©±´º»ÆÊÎÏäå )14:;EFIJ^de„‘›ÉÎÏ )EIWde‘©´º»ÅÉßäåð EIde€„²¼¾¿Õ×ðñƒ…†‰‹Œ˜ ¤¦¨©¬º¾¿ÅÇÎÏÚÛH˜½ÍÆÎÏINOWY^_‰Ž±¶·¿ÁÆÇ×[\ö÷þÿ€ mqÞßno_}~®¯»¼úFGNOXZ\^~µÅÔÕÜðñõrstu–—Éÿ/_&./§¯·¿ÇÏ×ßš@—˜0ÿÎÿNOZ['/îïno7=?BE‘þÿSguÈÉÐÑØÙçþÿ _"‚ß‚D¬€«5€à/4 PU   :V PC- :% L mj%€È‚°‚ýY    j Y+F , 1 , €¬ AL-t<<8*‚ÿ/- !€Œ‚— ˆ”/; €¯1t €Ö €ÿ€¶$ ›Æ Ò0„7 \€¸€º=5 8F t ZY €ƒ  F €Š«¤ 1¡Ú& €¥mx(*L€€¾    $jk¼ÑÔ Õ Ö×Úàèî ðù ';>NOžžŸ 6=>VóÐÑ67VW½5ÎÏà‡‰Žž )14:EFIJNOdeZ\¶·„… 7‘¨ ;>fi’o_îïZbš›'(U ¡£¤§¨­º¼Ä :?EQ¦§ÌÍ "%ÅÆ #%&(38:HJLPSUVXZ\^`cefksx}Фª¯°ÀÐ?qr{^"{-e/.€‚1$ +D*€ª$$(4 €7  €˜9c 0!@8K/  @ ' 6: PI73 3. &€(*€¦NC G ' u ?A*; Q€‹_!H €¦^"E  8 6,€Àøÿûÿÿÿþ!þ P € @†9#¾! üÐ À @ €ÀÁ=` D0` X € „\€ò€ò? þßàÿþÿÿÿ@àýfÃd à °?@þ 8`‡€ @åøŸÿÐø<;@£ðÏ÷ÿý!ÿÿÿÿÿÿÿûÿÿÿÿ€€ÿÿÿÿü€÷?ÀD`0ÿÿ€À?€ÿÈ ~fÁ0@ !@ÿÿÿÿ  !"#$%&'()*+,-./0123455556 Ànð‡`ðÀÿÿ€x€ïÀ€Ó@€øX€Àÿ\@ù¥ €<°0ø§(¿à¼€ÿþøy€~ü¿üÿÿüm~´¿£€` Ãøç<ÿÿÿÿÿÿøÿÿÿÿÿ øþÿÿÿùÛðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøþÿÿÿÿ¿¶ÿøÿÿÀŸŸ=ÿÿÿÀÿø HÔ@J˜Ö@˜Ø@7   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI;> ÿƒ€P@0‰@kindEmptyParseIntErrorP@@‰@UnderflowOverflowInvalidDigitSomeNoneUtf8Errorvalid_up_toerror_lenP@ˆ@00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899Errorˆä@ÔŒ@ËùF\wüäüÐËùF\ tåtÑËùF\ üˆåˆÑ°0@p¢@x¢@Àè@€é@à1@À¢@`È0°äˆäÈäØäÈ0ÿÿÿÿ@°äRSDSƒqÉc±ÕD™æÎ¢ ¯—C:\Users\Konstantin\pyo3-pack\hello-world\target\release\deps\hello_world-b4e388f3530cd88b.pdb ðy.textð‰  .text$mn–.text$mn$00¢–6.text$x p.idata$5p¢.00cfg€¢.CRT$XCAˆ¢.CRT$XCAA¢.CRT$XCZ˜¢.CRT$XIA ¢.CRT$XIAA¨¢.CRT$XIAC°¢.CRT$XIZ¸¢.CRT$XLAÀ¢.CRT$XLBÈ¢.CRT$XLZТ.CRT$XPAØ¢.CRT$XPZà¢.CRT$XTAè¢.CRT$XTZð¢pA.rdata`ä(.rdata$Tˆät.rdata$rüäŒ.rdata$zzzdbgˆè.rtc$IAAè.rtc$IZZ˜è.rtc$TAA è .rtc$TZZÀè .tlsàè .tls$€é.tls$ZZZˆét2.xdataü .idata$2œ.idata$3°p.idata$4 .idata$60È.dataÈ0(.data$rð0x.bss@¬.pdataB¢  B0p`à 5 Rp`PÓ•Ìé 2p`P"“ôéüé(ÿÿÿÿÀ ÿÿÿÿglÿÿÿÿBp`  r0p`àð U ¢`PÓ•Pê B`P"“xê€êPÿÿÿÿ00ÿÿÿÿÿÿÿÿ U ¢`PÓ•¸ê B`P"“àêèêPÿÿÿÿ``ÿÿÿÿDMÿÿÿÿ 5 RPÓ•$ë 2P"“LëTë(ÿÿÿÿЀÿÿÿÿ¡£ÿÿÿÿ 5 RPÓ•ˆë 2P"“°ë¸ë(ÿÿÿÿ°Pÿÿÿÿwyÿÿÿÿ 5 b`PÓ•ðë B`P"“ì ì0ÿÿÿÿÿÿÿÿ5?ÿÿÿÿ 5 RPÓ•Tì 2P"“|ì„ì(ÿÿÿÿ0àÿÿÿÿÿÿÿÿ E rPÓ•¸ì 2P"“àìèì8ÿÿÿÿpÿÿÿÿ13ÿÿÿÿ 5 Rp`PÓ•$í 2p`P"“LíTí(ÿÿÿÿ€àÿÿÿÿ#ÿÿÿÿ E ‚`PÓ•˜í B`P B`P"“ÀíÐí@ÿÿÿÿà 0ÿÿÿÿUÿÿÿÿ 5 RPÓ• î 2P"“4î<î(ÿÿÿÿÀ € ÿÿÿÿ™   ÿÿÿÿ e 0 p ` ÀÐàðPÓ•Œî B0p`À Ð àðP"“´î¼î`ÿÿÿÿ# !ÿÿÿÿÒ!ß!ÿÿÿÿ U¢ 0 p ` ÀÐàðPÓ• ï B0p`À Ð àðP"“4ï<ïPÿÿÿÿ'@#ÿÿÿÿÑ&Ö&ÿÿÿÿ e 0 p ` ÀÐàðPÓ•Œï B0p`À Ð àðP"“´ï¼ï`ÿÿÿÿà-@'ÿÿÿÿ½-Â-ÿÿÿÿ…PÓ•ðï 2P"“ð ð˜ÿÿÿÿÀ. .ÿÿÿÿ¯.¿.ÿÿÿÿ…PÓ•\ð 2P"“„ðŒðˆÿÿÿÿ2p1ÿÿÿÿí1ý1ÿÿÿÿR0p` U ¢`PÓ•Ðð B`P"“øðñPÿÿÿÿ5 4ÿÿÿÿé4ò4ÿÿÿÿ U ¢`PÓ•8ñ B`P"“`ñhñPÿÿÿÿÐ5`5ÿÿÿÿ©5²5ÿÿÿÿ E rp`PÓ•°ñ 2p`P 2p`P"“Øñèñ8ÿÿÿÿ€6°66ÿÿÿÿ6I6R6ÿÿÿÿ  R0Pp`à2 0 Pp`Ààð … 0 p`ÀàðPÓ•`òR0p ` À àðP"“ˆòòxÿÿÿÿ0;@9ÿÿÿÿº:¼:ÿÿÿÿR` U ¢0p`PÓ•øò B 0p`P B 0p`P B 0p`P"“ ó8óPÿÿÿÿ>ÿÿÿÿ>ÿÿÿÿ`>°;ÿÿÿÿ²<o=ó=ø=ÿÿÿÿ 5 RPÓ•Œó 2P 2PÓ•Œó"“´óÌóôó(ÿÿÿÿ ?ÿÿÿÿàó@P?8À>ÿÿÿÿñ>ó>ÿÿÿÿP? 5 RPÓ•8ô 2PÓ•8ô"“`ôpô˜ô(ÿÿÿÿÿÿÿÿ„ô@°?8p?ÿÿÿÿ¤?©?ÿÿÿÿ°? … 0 p`ÀàðPÓ•(õ20p ` À àðP20p ` À àðP20p ` À àðP20p ` À àðP"“Põ põèÿÿÿÿ@DÿÿÿÿÀDE€DÐ?ÿÿÿÿá@êAùBþBÿÿÿÿ(CFCUCnCyCmemset_CxxThrowException__C_specific_handlerVCRUNTIME140.dll‹strlen@_seh_filter_exeB_set_app_type __setusermatherr_configure_narrow_argv3_initialize_narrow_environment(_get_initial_narrow_environment6_initterm7_initterm_eUexit#_exitT_set_fmode__p___argc__p___argv_cexit_c_exit=_register_thread_local_exe_atexit_callback_configthreadlocale_set_new_mode__p__commode4_initialize_onexit_table<_register_onexit_function_crt_atexitgterminatefreeapi-ms-win-crt-string-l1-1-0.dllapi-ms-win-crt-runtime-l1-1-0.dllapi-ms-win-crt-math-l1-1-0.dllapi-ms-win-crt-stdio-l1-1-0.dllapi-ms-win-crt-locale-l1-1-0.dllapi-ms-win-crt-heap-l1-1-0.dllÐÉ@ÿÿÿÿÿÿÿÿðâ@.PEA_Kðâ@.PEAXhÃ@ÿÿÿÿ/ Í] ÒfÔÿÿ2¢ß-™+ðâ@.?AVtype_info@@ ˆé gépˆéÐw˜é€˜é ´¨éÀæÀéðTê òêRê€ô ê000ê0QDê``˜ê`¬êÏëÐë,ˆé€ËëÐõëP¢lë°Ö€ë‹Ðë´äëà08ì0ULìlœìp¢°ìà{퀢í0Ùlíà €í / Œí€ ± ðíÀ â îð !ˆé !ñ"Tî#4#tî@#ó&Ôî'4'ôî@'ß-Tïà-.tï .À.ÔïÀ.á.èïð.‹/8ð/+08ð00Æ08ðÐ0k18ðp1þ1@ð2!2TðP2¤3¤ð°3ò3ë4B4ëP4’4ë 45°ð515Äð@5S5ˆé`5Å5ñÐ5ñ5,ñ6€6€ñ€6¢6˜ñ°6Ò6¤ñà6T7òÀ789ò@9);,ò0;u;Lò€;®;¨ò°;ù=°ò>`>Èò`>„>Øò>¸>èòÀ>?`ó ?F?tóP?b?|óp?¯?ô°?Â?(ôÐ?@D¸ô@DsDØô€DºDìôÀDóDõEHEõPEmGÈõpG¥Gèõ°GßGüõàGHöHHIŒöPIñK”öL:L¸ö@LêP÷ðP6Q<÷@QzQT÷ QwSÌ÷€S®Sè÷°SÛSø÷àSøT`øUøWpøX4Xø@XƒX¨øXtY`ø€Yø[(ù\l\Dùp\‹\Œö \ß^œùà^_¸ù_8_Èù@_%b8ú0b[bTú`b›bdú bËbtúÐbneäúpe³eûÀefûfDf4ûPf3jÄû@jcjÜûpj“jèû jÉjôûÐjójük'k ü0kSkü`k’k$ü kãmðüðm$ný0nsn(ý€nÀp˜ýÀpðp¸ýðp/qÌý0qðr8þðrsTþ sWsdþ`sÅsÌþÐsñsàþtet4ÿpt‘tHÿ tµvœÿÀvxwê€wäy´ÿðy{ˆé {0~Ìÿ0~˜Üÿ ø…´ÿ†uŽôÿ ŽÐБ(‘H‘@P‘„‘X‘ ”ДK”ôP”‹””Ë”,Дö•¸–%–Ð0–U–Ü`–*—H0—ç˜\ð˜$™|0™h™”p™§™¬°™ê™Äð™ ¯L¯W¯t`¯§¯°¯÷¯¬°N°ÈP° °ä °J±P±¬±°±E²8P²Á²Tв³p ³‹³Œ³ô³¨´d´Äp´f·0p·¼H ¼iÁ`pÁ§Á„°ÁùÁœ Â#à 0ÃRÃ$`ÃÃ0òÃ<ÀÃBƸPÆ}ÆÌ€ÆÁÆØÐÆöÆäÇÈ` ÈDÈxPÈÁÉÐÐÉËä Ë9Ë @ËtË €Ë¬Ë0 °ËùËÜ ÌeÌëpÌ©Îä °Î¾Ðü ÀÐlÑ pÑ>Ò| @ÒrÒ” €Ò¤Òˆé°ÒÓè  ÓUÓŒö`Ó¨Óê°ÓxÙô €Ù«Ù °ÙâÙ ðÙÚ0  ÚGÚ@ PÚ~ÚP €Ú»Ú` ÀÚÿÚp ÛîÜP ðÜÝp  Ý^Ý„ `ݞݘ  ÝÞݬ àÝÿÝŒöÞ ÞˆéÞtÞH €Þ&ßP 0ß`ßp `ßzàÌ €à¥àä °àqá8€á¥áP°á×á¤àáAâê€â ä¬ äåÜ  å“çÀ çÉçØÐçúçäèLèHPè¹èHÀè¦êT°êíêxðê&ë0ëììöìí)î0îaî4pîàòŒàòó¬ óFôè PôJõê`õ&ø0øšø<°øýú¸û%ûÐ0ûdûÜpû”ûè û·ûôÀûVýÈ`ýuýà€ýÊxМ`ðüð$0EˆéP||€’ Ì Ðâ4ðÄ 2Ø@lhp‚|¼ ÀÒ à °"Ä0wT€®h°B ¤P n ˆép  8ð ˜ø ¨/°/K08ðP0c0ˆép0²0ëÀ0Ö0ˆéà0ò0ˆé1™2( 2Ë2DÐ2M4œP4„4¼4è5¤ð6º6˜éÀ6&7˜é07;7ˆé@7¸7Ü 8 :P;æ;8ðð;P<Ü P<Ø<8ðà<=é =”=Ü  =Ð?˜éÐ?ºA,ÀAIB8ðPBÙB8ðàBòBˆéCåK<LL\€LÂNhÐNöNˆéOZSt€SÆTè ÐTëV€ðVâX˜ðX>YŒö@Y¢Z¨°ZH[ÀP[e\Ìp\†\Œö\ ]Œö]Ì]ˆéÐ]^ë ^ß^ˆéà^"_ë0_{`Ü`É`éÐ`žd dujÜÿ€jNoèpo¬oéàopê papè ppÕpüqu´ÿ0u„vv}wˆé€w€xˆé€xŠyè yz¤{»{HÀ{|H°|Ý~à~z,€€, €»€,À€Z,`ú,‚£‚é°‚ÙƒÜàƒù„ü…K†Üp†ö‡,ˆ'‰\ð‰§Š4¨Š¸Šˆé¸ŠÑŠˆéÔŠPŒ<PŒbŒˆé€ŒÑŒ€ÔŒÿŒ49ˆé<…4ˆ`ް`ŽùŽˆüŽ 4 K4L›4œ³ˆé´`¸œ·ˆéÜ&’Ä0’‚’ˆé”’Ì’ˆéÌ’“Ô“D“ÔL“•à –¢–ø¢–À–tÀ–Ø–¨ ¸p¢x¢ˆ¢ ¢¨¢À¢ð¢£££0£p£€£¤¤¸¤È¤à¤ø¤¥¥¥(¥0¥8¥@¥X¥`¥h¥p¥ˆ¥à¥ø¥¦(§8§H§Ø§ð§¨¨ ¨8¨H¨p¨Ð¨à¨ø¨©©0©ø©Pª`ª¸ª8«« «È«à«ø«¬¬¬¬ ¬˜­¸­È­Ø­ ®0®X®˜®°®¸®À®Ø®ð®ø®¯ ¯X¯¨¯À¯È¯è¯°°0 x ¸ H¡p¡Ð¡à¡ð¡ˆ¢˜¢@£˜£¨£¸£Ø£è£8¤¤¸¤È¤¥¥(¥8¥H¥`¥¥ ¥È¥à¥è¥ð¥ø¥(¦8¦H¦X¦¸¦È¦à¦è¦ð¦§§(§0§8§P§X§p§°§ð§ ¨H¨`¨©¨©¸©È©ªªPª˜ªèªP«¸«h¬¸¬Ð¬­H­x­Ð­à­€®˜®°®È®à®ø®¯0¯@¯è¯À˜€ ˜   ¨ ø ¡(¡Ð¡¢ ¢p¤€¤p¥ˆ¥˜¥¨¥¸¥¦¦`¦p¦ˆ¦˜¦ø¦§§X§h§x§À§Ð§¨(¨@¨˜©¨©¸©È©ªª(ª8ªH«˜«¨«¸«È«Ø«(­H­`­h­p­ˆ­˜­¨­È­Ø­ð­®® ®(®H®`® ®¸®Ð®è®¯¯ÐP«`«p«à(X¡p¡¡¨¡ø¡¢è¢ð¢¸£Ð£Ø£`¤h¤p¤x¤0 X p ˆ È python-maturin_1.3.2.orig/tests/cli.rs0000644000000000000000000000123114446366340014750 0ustar00#[test] fn cli_tests() { let t = trycmd::TestCases::new(); t.default_bin_name("maturin"); t.case("tests/cmd/*.toml"); #[cfg(not(feature = "upload"))] { t.skip("tests/cmd/upload.toml"); t.skip("tests/cmd/publish.toml"); } #[cfg(not(feature = "zig"))] { t.skip("tests/cmd/build.toml"); } #[cfg(not(feature = "scaffolding"))] { t.skip("tests/cmd/new.toml"); t.skip("tests/cmd/init.toml"); t.skip("tests/cmd/generate-ci.toml"); } #[cfg(not(all(feature = "upload", feature = "zig", feature = "scaffolding")))] { t.skip("tests/cmd/maturin.toml"); } } python-maturin_1.3.2.orig/tests/cmd/0000755000000000000000000000000014320267102014364 5ustar00python-maturin_1.3.2.orig/tests/common/0000755000000000000000000000000013777036614015132 5ustar00python-maturin_1.3.2.orig/tests/emscripten_runner.js0000644000000000000000000000564414446366340017747 0ustar00const { opendir } = require("node:fs/promises"); const { loadPyodide } = require("pyodide"); async function findWheel(distDir) { const dir = await opendir(distDir); for await (const dirent of dir) { if (dirent.name.includes("emscripten") && dirent.name.endsWith("whl")) { return dirent.name; } } } function make_tty_ops(stream){ return { // get_char has 3 particular return values: // a.) the next character represented as an integer // b.) undefined to signal that no data is currently available // c.) null to signal an EOF get_char(tty) { if (!tty.input.length) { var result = null; var BUFSIZE = 256; var buf = Buffer.alloc(BUFSIZE); var bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); if (bytesRead === 0) { return null; } result = buf.slice(0, bytesRead); tty.input = Array.from(result); } return tty.input.shift(); }, put_char(tty, val) { try { if(val !== null){ tty.output.push(val); } if (val === null || val === 10) { process.stdout.write(Buffer.from(tty.output)); tty.output = []; } } catch(e){ console.warn(e); } }, fsync(tty) { if (!tty.output || tty.output.length === 0) { return; } stream.write(Buffer.from(tty.output)); tty.output = []; } }; } function setupStreams(FS, TTY){ let mytty = FS.makedev(FS.createDevice.major++, 0); let myttyerr = FS.makedev(FS.createDevice.major++, 0); TTY.register(mytty, make_tty_ops(process.stdout)) TTY.register(myttyerr, make_tty_ops(process.stderr)) FS.mkdev('/dev/mytty', mytty); FS.mkdev('/dev/myttyerr', myttyerr); FS.unlink('/dev/stdin'); FS.unlink('/dev/stdout'); FS.unlink('/dev/stderr'); FS.symlink('/dev/mytty', '/dev/stdin'); FS.symlink('/dev/mytty', '/dev/stdout'); FS.symlink('/dev/myttyerr', '/dev/stderr'); FS.closeStream(0); FS.closeStream(1); FS.closeStream(2); var stdin = FS.open('/dev/stdin', 0); var stdout = FS.open('/dev/stdout', 1); var stderr = FS.open('/dev/stderr', 1); } const pkgDir = process.argv[2]; const distDir = pkgDir + "/target/wheels"; const testDir = pkgDir + "/tests"; async function main() { const wheelName = await findWheel(distDir); const wheelURL = `file:${distDir}/${wheelName}`; try { pyodide = await loadPyodide(); const FS = pyodide.FS; setupStreams(FS, pyodide._module.TTY); const NODEFS = FS.filesystems.NODEFS; FS.mkdir("/test_dir"); FS.mount(NODEFS, { root: testDir }, "/test_dir"); await pyodide.loadPackage(["micropip", "pytest", "tomli"]); const micropip = pyodide.pyimport("micropip"); await micropip.install(wheelURL); const pytest = pyodide.pyimport("pytest"); FS.chdir("/test_dir"); errcode = pytest.main(); } catch (e) { console.error(e); process.exit(1); } } main(); python-maturin_1.3.2.orig/tests/manylinux_compliant.sh0000755000000000000000000000045214525221045020256 0ustar00#!/bin/bash set -e which cargo > /dev/null 2>&1 || curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal for PYBIN in /opt/python/cp3[89]*/bin; do cargo run -- build -m test-crates/pyo3-mixed/Cargo.toml --target-dir test-crates/targets -i "${PYBIN}/python" --manylinux $1 -o dist done python-maturin_1.3.2.orig/tests/manylinux_incompliant.sh0000755000000000000000000000176614357373401020625 0ustar00#!/bin/bash set -e which cargo > /dev/null || curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal # Fail because we're running in manylinux2014, which can't build for manylinux 2010 for PYBIN in /opt/python/cp3[9]*/bin; do if cargo run -- build -m test-crates/pyo3-mixed/Cargo.toml --target-dir test-crates/targets -i "${PYBIN}/python" --manylinux 2010 -o dist; then echo "maturin build unexpectedly succeeded" exit 1 else echo "maturin build failed as expected" fi done # Fail because we're linking zlib with black-listed symbols(gzflags), which is not allowed in manylinux apt-get -v &> /dev/null && apt-get install -y zlib1g-dev || yum install -y zlib-devel for PYBIN in /opt/python/cp3[9]*/bin; do if cargo run -- build -m test-crates/lib_with_disallowed_lib/Cargo.toml --target-dir test-crates/targets -i "${PYBIN}/python" --manylinux 2014 -o dist; then echo "maturin build unexpectedly succeeded" exit 1 else echo "maturin build failed as expected" fi done python-maturin_1.3.2.orig/tests/run.rs0000644000000000000000000005762714525221045015017 0ustar00//! To speed up the tests, they are tests all collected in a single module use common::{ develop, errors, get_python_implementation, handle_result, integration, other, test_python_path, }; use expect_test::expect; use maturin::pyproject_toml::SdistGenerator; use maturin::Target; use std::env; use std::path::{Path, PathBuf}; use time::macros::datetime; use which::which; mod common; #[test] fn develop_pyo3_pure() { handle_result(develop::test_develop( "test-crates/pyo3-pure", None, "develop-pyo3-pure", false, )); } #[test] #[ignore] fn develop_pyo3_pure_conda() { // Only run on GitHub Actions for now if env::var("GITHUB_ACTIONS").is_ok() { handle_result(develop::test_develop( "test-crates/pyo3-pure", None, "develop-pyo3-pure-conda", true, )); } } #[test] fn develop_pyo3_mixed() { handle_result(develop::test_develop( "test-crates/pyo3-mixed", None, "develop-pyo3-mixed", false, )); } #[test] fn develop_pyo3_mixed_include_exclude() { handle_result(develop::test_develop( "test-crates/pyo3-mixed-include-exclude", None, "develop-pyo3-mixed-include-exclude", false, )); } #[test] fn develop_pyo3_mixed_submodule() { handle_result(develop::test_develop( "test-crates/pyo3-mixed-submodule", None, "develop-pyo3-mixed-submodule", false, )); } #[test] fn develop_pyo3_mixed_implicit() { handle_result(develop::test_develop( "test-crates/pyo3-mixed-implicit", None, "develop-pyo3-mixed-implicit", false, )); } #[test] fn develop_pyo3_mixed_py_subdir() { handle_result(develop::test_develop( "test-crates/pyo3-mixed-py-subdir", None, "develop-pyo3-mixed-py-subdir", false, )); } #[test] fn develop_pyo3_mixed_src_layout() { handle_result(develop::test_develop( "test-crates/pyo3-mixed-src/rust", None, "develop-pyo3-mixed-src", false, )); } #[test] fn develop_cffi_pure() { handle_result(develop::test_develop( "test-crates/cffi-pure", None, "develop-cffi-pure", false, )); } #[test] fn develop_cffi_mixed() { handle_result(develop::test_develop( "test-crates/cffi-mixed", None, "develop-cffi-mixed", false, )); } #[test] fn develop_uniffi_pure() { if env::var("GITHUB_ACTIONS").is_ok() || which("uniffi-bindgen").is_ok() { handle_result(develop::test_develop( "test-crates/uniffi-pure", None, "develop-uniffi-pure", false, )); } } #[test] fn develop_uniffi_pure_proc_macro() { handle_result(develop::test_develop( "test-crates/uniffi-pure-proc-macro", None, "develop-uniffi-pure-proc-macro", false, )); } #[test] fn develop_uniffi_mixed() { if env::var("GITHUB_ACTIONS").is_ok() || which("uniffi-bindgen").is_ok() { handle_result(develop::test_develop( "test-crates/uniffi-mixed", None, "develop-uniffi-mixed", false, )); } } #[test] fn develop_hello_world() { handle_result(develop::test_develop( "test-crates/hello-world", None, "develop-hello-world", false, )); } #[test] fn develop_pyo3_ffi_pure() { handle_result(develop::test_develop( "test-crates/pyo3-ffi-pure", None, "develop-pyo3-ffi-pure", false, )); } #[test] fn integration_pyo3_bin() { let python = test_python_path().map(PathBuf::from).unwrap_or_else(|| { let target = Target::from_target_triple(None).unwrap(); target.get_python() }); let python_implementation = get_python_implementation(&python).unwrap(); if python_implementation == "pypy" || python_implementation == "graalpy" { // PyPy & GraalPy do not support the 'auto-initialize' feature of pyo3 return; } handle_result(integration::test_integration( "test-crates/pyo3-bin", None, "integration-pyo3-bin", false, None, )); } #[test] fn integration_pyo3_pure() { handle_result(integration::test_integration( "test-crates/pyo3-pure", None, "integration-pyo3-pure", false, None, )); } #[test] fn integration_pyo3_mixed() { handle_result(integration::test_integration( "test-crates/pyo3-mixed", None, "integration-pyo3-mixed", false, None, )); } #[test] fn integration_pyo3_mixed_include_exclude() { handle_result(integration::test_integration( "test-crates/pyo3-mixed-include-exclude", None, "integration-pyo3-mixed-include-exclude", false, None, )); } #[test] fn integration_pyo3_mixed_submodule() { handle_result(integration::test_integration( "test-crates/pyo3-mixed-submodule", None, "integration-pyo3-mixed-submodule", false, None, )); } #[test] fn integration_pyo3_mixed_implicit() { handle_result(integration::test_integration( "test-crates/pyo3-mixed-implicit", None, "integration-pyo3-mixed-implicit", false, None, )); } #[test] fn integration_pyo3_mixed_py_subdir() { handle_result(integration::test_integration( "test-crates/pyo3-mixed-py-subdir", None, "integration-pyo3-mixed-py-subdir", cfg!(unix), None, )); } #[test] fn integration_pyo3_mixed_src_layout() { handle_result(integration::test_integration( "test-crates/pyo3-mixed-src/rust", None, "integration-pyo3-mixed-src", false, None, )); } #[test] #[cfg_attr(target_os = "macos", ignore)] // Don't run it on macOS, too slow fn integration_pyo3_pure_conda() { // Only run on GitHub Actions for now if env::var("GITHUB_ACTIONS").is_ok() { handle_result(integration::test_integration_conda( "test-crates/pyo3-mixed", None, )); } } #[test] fn integration_cffi_pure() { handle_result(integration::test_integration( "test-crates/cffi-pure", None, "integration-cffi-pure", false, None, )); } #[test] fn integration_cffi_mixed() { handle_result(integration::test_integration( "test-crates/cffi-mixed", None, "integration-cffi-mixed", false, None, )); } #[test] fn integration_uniffi_pure() { if env::var("GITHUB_ACTIONS").is_ok() || which("uniffi-bindgen").is_ok() { handle_result(integration::test_integration( "test-crates/uniffi-pure", None, "integration-uniffi-pure", false, None, )); } } #[test] fn integration_uniffi_pure_proc_macro() { handle_result(integration::test_integration( "test-crates/uniffi-pure-proc-macro", None, "integration-uniffi-pure-proc-macro", false, None, )); } #[test] fn integration_uniffi_mixed() { if env::var("GITHUB_ACTIONS").is_ok() || which("uniffi-bindgen").is_ok() { handle_result(integration::test_integration( "test-crates/uniffi-mixed", None, "integration-uniffi-mixed", false, None, )); } } #[test] fn integration_hello_world() { handle_result(integration::test_integration( "test-crates/hello-world", None, "integration-hello-world", false, None, )); } #[test] fn integration_pyo3_ffi_pure() { handle_result(integration::test_integration( "test-crates/pyo3-ffi-pure", None, "integration-pyo3-ffi-pure", false, None, )); } #[test] fn integration_with_data() { handle_result(integration::test_integration( "test-crates/with-data", None, "integration-with-data", false, None, )); } #[test] // Sourced from https://pypi.org/project/wasmtime/11.0.0/#files // update with wasmtime updates #[cfg(any( all(target_os = "windows", target_arch = "x86_64"), all( target_os = "linux", any(target_arch = "x86_64", target_arch = "aarch64"), target_env = "gnu", ), all( target_os = "macos", any(target_arch = "x86_64", target_arch = "aarch64") ), ))] fn integration_wasm_hello_world() { use std::path::Path; handle_result(integration::test_integration( "test-crates/hello-world", None, "integration-wasm-hello-world", false, Some("wasm32-wasi"), )); let python = test_python_path().map(PathBuf::from).unwrap_or_else(|| { let target = Target::from_target_triple(None).unwrap(); target.get_python() }); let python_implementation = get_python_implementation(&python).unwrap(); let venv_name = format!("integration-wasm-hello-world-py3-wasm32-wasi-{python_implementation}"); // Make sure we're actually running wasm assert!(Path::new("test-crates") .join("venvs") .join(venv_name) .join(if cfg!(target_os = "windows") { "Scripts" } else { "bin" }) .join("hello-world.wasm") .is_file()) } #[test] fn abi3_without_version() { handle_result(errors::abi3_without_version()) } #[test] // Only run this test on platforms that has manylinux support #[cfg_attr( not(all( target_os = "linux", target_env = "gnu", any( target_arch = "i686", target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", target_arch = "powerpc64le", target_arch = "s390x", target_arch = "armv7" ) )), ignore )] fn pyo3_no_extension_module() { let python = test_python_path().map(PathBuf::from).unwrap_or_else(|| { let target = Target::from_target_triple(None).unwrap(); target.get_python() }); let python_implementation = get_python_implementation(&python).unwrap(); if python_implementation == "cpython" { handle_result(errors::pyo3_no_extension_module()) } } #[test] fn locked_doesnt_build_without_cargo_lock() { handle_result(errors::locked_doesnt_build_without_cargo_lock()) } #[test] #[cfg_attr(not(all(target_os = "linux", target_env = "gnu")), ignore)] fn invalid_manylinux_does_not_panic() { handle_result(errors::invalid_manylinux_does_not_panic()) } #[test] fn warn_on_missing_python_source() { handle_result(errors::warn_on_missing_python_source()) } #[test] #[cfg_attr(not(target_os = "linux"), ignore)] fn musl() { let ran = handle_result(other::test_musl()); if !ran { eprintln!("âš ï¸ Warning: rustup and/or musl target not installed, test didn't run"); } } #[test] fn workspace_cargo_lock() { handle_result(other::test_workspace_cargo_lock()) } #[test] fn workspace_members_beneath_pyproject_sdist() { let cargo_toml = expect![[r#" [workspace] resolver = "2" members = ["pyo3-mixed-workspace", "python/pyo3-mixed-workspace-py"] "#]]; handle_result(other::test_source_distribution( "test-crates/pyo3-mixed-workspace/rust/python/pyo3-mixed-workspace-py", SdistGenerator::Cargo, expect![[r#" { "pyo3_mixed_workspace-2.1.3/PKG-INFO", "pyo3_mixed_workspace-2.1.3/pyproject.toml", "pyo3_mixed_workspace-2.1.3/rust/Cargo.lock", "pyo3_mixed_workspace-2.1.3/rust/Cargo.toml", "pyo3_mixed_workspace-2.1.3/rust/pyo3-mixed-workspace/Cargo.toml", "pyo3_mixed_workspace-2.1.3/rust/pyo3-mixed-workspace/src/lib.rs", "pyo3_mixed_workspace-2.1.3/rust/python/pyo3-mixed-workspace-py/Cargo.toml", "pyo3_mixed_workspace-2.1.3/rust/python/pyo3-mixed-workspace-py/src/lib.rs", "pyo3_mixed_workspace-2.1.3/src/pyo3_mixed_workspace/__init__.py", "pyo3_mixed_workspace-2.1.3/src/pyo3_mixed_workspace/python_module/__init__.py", "pyo3_mixed_workspace-2.1.3/src/pyo3_mixed_workspace/python_module/double.py", "pyo3_mixed_workspace-2.1.3/src/tests/test_pyo3_mixed.py", } "#]], Some(( Path::new("pyo3_mixed_workspace-2.1.3/rust/Cargo.toml"), cargo_toml, )), "sdist-workspace-members-beneath_pyproject", )) } #[test] fn workspace_members_non_local_dep_sdist() { let cargo_toml = expect![[r#" [package] authors = ["konstin "] name = "pyo3-pure" version = "2.1.2" edition = "2021" description = "Implements a dummy function (get_fortytwo.DummyClass.get_42()) in rust" license = "MIT" [dependencies] pyo3 = { version = "0.19.0", features = ["abi3-py37", "extension-module", "generate-import-lib"] } [lib] name = "pyo3_pure" crate-type = ["cdylib"] "#]]; handle_result(other::test_source_distribution( "test-crates/pyo3-pure", SdistGenerator::Cargo, expect![[r#" { "pyo3_pure-0.1.0+abc123de/Cargo.lock", "pyo3_pure-0.1.0+abc123de/Cargo.toml", "pyo3_pure-0.1.0+abc123de/LICENSE", "pyo3_pure-0.1.0+abc123de/PKG-INFO", "pyo3_pure-0.1.0+abc123de/README.md", "pyo3_pure-0.1.0+abc123de/check_installed/check_installed.py", "pyo3_pure-0.1.0+abc123de/pyo3_pure.pyi", "pyo3_pure-0.1.0+abc123de/pyproject.toml", "pyo3_pure-0.1.0+abc123de/src/lib.rs", "pyo3_pure-0.1.0+abc123de/tests/test_pyo3_pure.py", "pyo3_pure-0.1.0+abc123de/tox.ini", } "#]], Some((Path::new("pyo3_pure-0.1.0+abc123de/Cargo.toml"), cargo_toml)), "sdist-workspace-members-non-local-dep", )) } #[test] fn lib_with_path_dep_sdist() { handle_result(other::test_source_distribution( "test-crates/sdist_with_path_dep", SdistGenerator::Cargo, expect![[r#" { "sdist_with_path_dep-0.1.0/PKG-INFO", "sdist_with_path_dep-0.1.0/pyproject.toml", "sdist_with_path_dep-0.1.0/sdist_with_path_dep/Cargo.lock", "sdist_with_path_dep-0.1.0/sdist_with_path_dep/Cargo.toml", "sdist_with_path_dep-0.1.0/sdist_with_path_dep/src/lib.rs", "sdist_with_path_dep-0.1.0/some_path_dep/Cargo.toml", "sdist_with_path_dep-0.1.0/some_path_dep/src/lib.rs", "sdist_with_path_dep-0.1.0/transitive_path_dep/Cargo.toml", "sdist_with_path_dep-0.1.0/transitive_path_dep/src/lib.rs", } "#]], None, "sdist-lib-with-path-dep", )) } #[test] fn lib_with_target_path_dep_sdist() { let cargo_toml = expect![[r#" [package] name = "sdist_with_target_path_dep" version = "0.1.0" authors = ["konstin "] edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] # Don't use the macros feature, which makes compilation much faster pyo3 = { version = "0.19.0", default-features = false, features = ["extension-module"] } [target.'cfg(not(target_endian = "all-over-the-place"))'.dependencies] some_path_dep = { path = "../some_path_dep" } "#]]; handle_result(other::test_source_distribution( "test-crates/sdist_with_target_path_dep", SdistGenerator::Cargo, expect![[r#" { "sdist_with_target_path_dep-0.1.0/PKG-INFO", "sdist_with_target_path_dep-0.1.0/pyproject.toml", "sdist_with_target_path_dep-0.1.0/sdist_with_target_path_dep/Cargo.lock", "sdist_with_target_path_dep-0.1.0/sdist_with_target_path_dep/Cargo.toml", "sdist_with_target_path_dep-0.1.0/sdist_with_target_path_dep/src/lib.rs", "sdist_with_target_path_dep-0.1.0/some_path_dep/Cargo.toml", "sdist_with_target_path_dep-0.1.0/some_path_dep/src/lib.rs", "sdist_with_target_path_dep-0.1.0/transitive_path_dep/Cargo.toml", "sdist_with_target_path_dep-0.1.0/transitive_path_dep/src/lib.rs", } "#]], Some(( Path::new("sdist_with_target_path_dep-0.1.0/sdist_with_target_path_dep/Cargo.toml"), cargo_toml, )), "sdist-lib-with-target-path-dep", )) } #[test] fn pyo3_mixed_src_layout_sdist() { handle_result(other::test_source_distribution( "test-crates/pyo3-mixed-src/rust", SdistGenerator::Cargo, expect![[r#" { "pyo3_mixed_src-2.1.3/PKG-INFO", "pyo3_mixed_src-2.1.3/pyproject.toml", "pyo3_mixed_src-2.1.3/rust/Cargo.lock", "pyo3_mixed_src-2.1.3/rust/Cargo.toml", "pyo3_mixed_src-2.1.3/rust/src/lib.rs", "pyo3_mixed_src-2.1.3/src/pyo3_mixed_src/__init__.py", "pyo3_mixed_src-2.1.3/src/pyo3_mixed_src/python_module/__init__.py", "pyo3_mixed_src-2.1.3/src/pyo3_mixed_src/python_module/double.py", "pyo3_mixed_src-2.1.3/src/tests/test_pyo3_mixed.py", } "#]], None, "sdist-pyo3-mixed-src-layout", )) } #[test] fn pyo3_mixed_include_exclude_sdist() { handle_result(other::test_source_distribution( "test-crates/pyo3-mixed-include-exclude", SdistGenerator::Cargo, expect![[r#" { "pyo3_mixed_include_exclude-2.1.3/Cargo.lock", "pyo3_mixed_include_exclude-2.1.3/Cargo.toml", "pyo3_mixed_include_exclude-2.1.3/PKG-INFO", "pyo3_mixed_include_exclude-2.1.3/README.md", "pyo3_mixed_include_exclude-2.1.3/check_installed/check_installed.py", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/__init__.py", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/include_this_file", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/python_module/__init__.py", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/python_module/double.py", "pyo3_mixed_include_exclude-2.1.3/pyproject.toml", "pyo3_mixed_include_exclude-2.1.3/src/lib.rs", "pyo3_mixed_include_exclude-2.1.3/tox.ini", } "#]], None, "sdist-pyo3-mixed-include-exclude", )) } #[test] fn pyo3_mixed_include_exclude_git_sdist_generator() { if !Path::new(".git").exists() { return; } handle_result(other::test_source_distribution( "test-crates/pyo3-mixed-include-exclude", SdistGenerator::Git, expect![[r#" { "pyo3_mixed_include_exclude-2.1.3/Cargo.lock", "pyo3_mixed_include_exclude-2.1.3/Cargo.toml", "pyo3_mixed_include_exclude-2.1.3/PKG-INFO", "pyo3_mixed_include_exclude-2.1.3/README.md", "pyo3_mixed_include_exclude-2.1.3/check_installed/check_installed.py", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/__init__.py", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/include_this_file", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/python_module/__init__.py", "pyo3_mixed_include_exclude-2.1.3/pyo3_mixed_include_exclude/python_module/double.py", "pyo3_mixed_include_exclude-2.1.3/pyproject.toml", "pyo3_mixed_include_exclude-2.1.3/src/lib.rs", "pyo3_mixed_include_exclude-2.1.3/tox.ini", } "#]], None, "sdist-pyo3-mixed-include-exclude-git", )) } #[test] fn pyo3_mixed_include_exclude_wheel_files() { handle_result(other::check_wheel_files( "test-crates/pyo3-mixed-include-exclude", vec![ "pyo3_mixed_include_exclude-2.1.3.dist-info/METADATA", "pyo3_mixed_include_exclude-2.1.3.dist-info/RECORD", "pyo3_mixed_include_exclude-2.1.3.dist-info/WHEEL", "pyo3_mixed_include_exclude-2.1.3.dist-info/entry_points.txt", "pyo3_mixed_include_exclude/__init__.py", "pyo3_mixed_include_exclude/include_this_file", "pyo3_mixed_include_exclude/python_module/__init__.py", "pyo3_mixed_include_exclude/python_module/double.py", "README.md", ], "wheel-files-pyo3-mixed-include-exclude", )) } #[test] fn workspace_sdist() { handle_result(other::test_source_distribution( "test-crates/workspace/py", SdistGenerator::Cargo, expect![[r#" { "py-0.1.0/Cargo.lock", "py-0.1.0/Cargo.toml", "py-0.1.0/PKG-INFO", "py-0.1.0/py/Cargo.toml", "py-0.1.0/py/src/main.rs", "py-0.1.0/pyproject.toml", } "#]], None, "sdist-workspace", )) } #[test] fn workspace_with_path_dep_sdist() { handle_result(other::test_source_distribution( "test-crates/workspace_with_path_dep/python", SdistGenerator::Cargo, expect![[r#" { "workspace_with_path_dep-0.1.0/Cargo.lock", "workspace_with_path_dep-0.1.0/Cargo.toml", "workspace_with_path_dep-0.1.0/PKG-INFO", "workspace_with_path_dep-0.1.0/generic_lib/Cargo.toml", "workspace_with_path_dep-0.1.0/generic_lib/src/lib.rs", "workspace_with_path_dep-0.1.0/pyproject.toml", "workspace_with_path_dep-0.1.0/python/Cargo.toml", "workspace_with_path_dep-0.1.0/python/src/lib.rs", "workspace_with_path_dep-0.1.0/transitive_lib/Cargo.toml", "workspace_with_path_dep-0.1.0/transitive_lib/src/lib.rs", } "#]], None, "sdist-workspace-with-path-dep", )) } #[test] fn workspace_with_path_dep_git_sdist_generator() { if !Path::new(".git").exists() { return; } handle_result(other::test_source_distribution( "test-crates/workspace_with_path_dep/python", SdistGenerator::Git, expect![[r#" { "workspace_with_path_dep-0.1.0/Cargo.toml", "workspace_with_path_dep-0.1.0/PKG-INFO", "workspace_with_path_dep-0.1.0/pyproject.toml", "workspace_with_path_dep-0.1.0/src/lib.rs", } "#]], None, "sdist-workspace-with-path-dep-git", )) } #[rustversion::since(1.64)] #[test] fn workspace_inheritance_sdist() { handle_result(other::test_source_distribution( "test-crates/workspace-inheritance/python", SdistGenerator::Cargo, expect![[r#" { "workspace_inheritance-0.1.0/Cargo.lock", "workspace_inheritance-0.1.0/Cargo.toml", "workspace_inheritance-0.1.0/PKG-INFO", "workspace_inheritance-0.1.0/generic_lib/Cargo.toml", "workspace_inheritance-0.1.0/generic_lib/src/lib.rs", "workspace_inheritance-0.1.0/pyproject.toml", "workspace_inheritance-0.1.0/python/Cargo.toml", "workspace_inheritance-0.1.0/python/src/lib.rs", } "#]], None, "sdist-workspace-inheritance", )) } #[test] fn abi3_python_interpreter_args() { handle_result(other::abi3_python_interpreter_args()); } #[test] fn pyo3_source_date_epoch() { env::set_var("SOURCE_DATE_EPOCH", "0"); handle_result(other::check_wheel_mtimes( "test-crates/pyo3-mixed-include-exclude", vec![datetime!(1980-01-01 0:00 UTC)], "pyo3_source_date_epoch", )) } python-maturin_1.3.2.orig/tests/cmd/build.stderr0000644000000000000000000000000014320267102016676 0ustar00python-maturin_1.3.2.orig/tests/cmd/build.stdout0000644000000000000000000000674414446366340016757 0ustar00Build the crate into python packages Usage: maturin[EXE] build [OPTIONS] [ARGS]... Arguments: [ARGS]... Rustc flags Options: -r, --release Build artifacts in release mode, with optimizations --strip Strip the library for minimum file size --sdist Build a source distribution --compatibility [...] Control the platform tag on linux. Options are `manylinux` tags (for example `manylinux2014`/`manylinux_2_24`) or `musllinux` tags (for example `musllinux_1_2`) and `linux` for the native linux tag. Note that `manylinux1` and `manylinux2010` is unsupported by the rust compiler. Wheels with the native `linux` tag will be rejected by pypi, unless they are separately validated by `auditwheel`. The default is the lowest compatible `manylinux` tag, or plain `linux` if nothing matched This option is ignored on all non-linux platforms -i, --interpreter [...] The python versions to build wheels for, given as the executables of interpreters such as `python3.9` or `/usr/bin/python3.8` -f, --find-interpreter Find interpreters from the host machine -b, --bindings Which kind of bindings to use [possible values: pyo3, pyo3-ffi, rust-cpython, cffi, uniffi, bin] -o, --out The directory to store the built wheels in. Defaults to a new "wheels" directory in the project's target directory --skip-auditwheel Don't check for manylinux compliance --zig For manylinux targets, use zig to ensure compliance for the chosen manylinux version Default to manylinux2014/manylinux_2_17 if you do not specify an `--compatibility` Make sure you installed zig with `pip install maturin[zig]` -q, --quiet Do not print cargo log messages -j, --jobs Number of parallel jobs, defaults to # of CPUs --profile Build artifacts with the specified Cargo profile -F, --features Space or comma separated list of features to activate --all-features Activate all available features --no-default-features Do not activate the `default` feature --target Build for the target triple [env: CARGO_BUILD_TARGET=] --target-dir Directory for all generated artifacts -m, --manifest-path Path to Cargo.toml --ignore-rust-version Ignore `rust-version` specification in packages -v, --verbose... Use verbose output (-vv very verbose/build.rs output) --color Coloring: auto, always, never --frozen Require Cargo.lock and cache are up to date --locked Require Cargo.lock is up to date --offline Run without accessing the network --config Override a configuration value (unstable) -Z Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details --timings= Timing output formats (unstable) (comma separated): html, json --future-incompat-report Outputs a future incompatibility report at the end of the build (unstable) -h, --help Print help (see a summary with '-h') python-maturin_1.3.2.orig/tests/cmd/build.toml0000644000000000000000000000005314320267102016356 0ustar00bin.name = "maturin" args = "build --help" python-maturin_1.3.2.orig/tests/cmd/develop.stderr0000644000000000000000000000000014320267102017235 0ustar00python-maturin_1.3.2.orig/tests/cmd/develop.stdout0000644000000000000000000000476214525221045017302 0ustar00Install the crate as module in the current virtualenv Usage: maturin[EXE] develop [OPTIONS] [ARGS]... Arguments: [ARGS]... Rustc flags Options: -b, --bindings Which kind of bindings to use [possible values: pyo3, pyo3-ffi, rust-cpython, cffi, uniffi, bin] -r, --release Pass --release to cargo --strip Strip the library for minimum file size -E, --extras Install extra requires aka. optional dependencies Use as `--extras=extra1,extra2` --skip-install Skip installation, only build the extension module inplace Only works with mixed Rust/Python project layout --pip-path Use a specific pip installation instead of the default one. This can be used to supply the path to a pip executable when the current virtualenv does not provide one. -q, --quiet Do not print cargo log messages -j, --jobs Number of parallel jobs, defaults to # of CPUs --profile Build artifacts with the specified Cargo profile -F, --features Space or comma separated list of features to activate --all-features Activate all available features --no-default-features Do not activate the `default` feature --target Build for the target triple [env: CARGO_BUILD_TARGET=] --target-dir Directory for all generated artifacts -m, --manifest-path Path to Cargo.toml --ignore-rust-version Ignore `rust-version` specification in packages -v, --verbose... Use verbose output (-vv very verbose/build.rs output) --color Coloring: auto, always, never --frozen Require Cargo.lock and cache are up to date --locked Require Cargo.lock is up to date --offline Run without accessing the network --config Override a configuration value (unstable) -Z Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details --timings= Timing output formats (unstable) (comma separated): html, json --future-incompat-report Outputs a future incompatibility report at the end of the build (unstable) -h, --help Print help (see a summary with '-h') python-maturin_1.3.2.orig/tests/cmd/develop.toml0000644000000000000000000000005514320267102016717 0ustar00bin.name = "maturin" args = "develop --help" python-maturin_1.3.2.orig/tests/cmd/generate-ci.stderr0000644000000000000000000000000014367164206017776 0ustar00python-maturin_1.3.2.orig/tests/cmd/generate-ci.stdout0000644000000000000000000000137714407041274020031 0ustar00Generate CI configuration Usage: maturin[EXE] generate-ci [OPTIONS] Arguments: CI provider Possible values: - github: GitHub Options: -m, --manifest-path Path to Cargo.toml -o, --output Output path [default: -] --platform ... Platform support [default: linux windows macos] Possible values: - all: All - linux: Linux - windows: Windows - macos: macOS - emscripten: Emscripten --pytest Enable pytest --zig Use zig to do cross compilation -h, --help Print help (see a summary with '-h') python-maturin_1.3.2.orig/tests/cmd/generate-ci.toml0000644000000000000000000000006114367164206017455 0ustar00bin.name = "maturin" args = "generate-ci --help" python-maturin_1.3.2.orig/tests/cmd/init.stderr0000644000000000000000000000000014320267102016542 0ustar00python-maturin_1.3.2.orig/tests/cmd/init.stdout0000644000000000000000000000107214446366340016610 0ustar00Create a new cargo project in an existing directory Usage: maturin[EXE] init [OPTIONS] [PATH] Arguments: [PATH] Project path Options: --name Set the resulting package name, defaults to the directory name --mixed Use mixed Rust/Python project layout --src Use Python first src layout for mixed Rust/Python project -b, --bindings Which kind of bindings to use [possible values: pyo3, rust-cpython, cffi, uniffi, bin] -h, --help Print help python-maturin_1.3.2.orig/tests/cmd/init.toml0000644000000000000000000000005214320267102016221 0ustar00bin.name = "maturin" args = "init --help" python-maturin_1.3.2.orig/tests/cmd/list-python.stderr0000644000000000000000000000000014320267102020071 0ustar00python-maturin_1.3.2.orig/tests/cmd/list-python.stdout0000644000000000000000000000024614446366340020141 0ustar00Search and list the available python installations Usage: maturin[EXE] list-python [OPTIONS] Options: --target -h, --help Print help python-maturin_1.3.2.orig/tests/cmd/list-python.toml0000644000000000000000000000006114320267102017550 0ustar00bin.name = "maturin" args = "list-python --help" python-maturin_1.3.2.orig/tests/cmd/maturin.stderr0000644000000000000000000000000014356714005017266 0ustar00python-maturin_1.3.2.orig/tests/cmd/maturin.stdout0000644000000000000000000000155514407041274017323 0ustar00Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages Usage: maturin[EXE] Commands: build Build the crate into python packages publish Build and publish the crate as python packages to pypi list-python Search and list the available python installations develop Install the crate as module in the current virtualenv sdist Build only a source distribution (sdist) without compiling init Create a new cargo project in an existing directory new Create a new cargo project generate-ci Generate CI configuration upload Upload python packages to pypi help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version Visit https://maturin.rs to learn more about maturin. python-maturin_1.3.2.orig/tests/cmd/maturin.toml0000644000000000000000000000004514356714005016747 0ustar00bin.name = "maturin" args = "--help" python-maturin_1.3.2.orig/tests/cmd/new.stderr0000644000000000000000000000000014320267102016370 0ustar00python-maturin_1.3.2.orig/tests/cmd/new.stdout0000644000000000000000000000104014446366340016431 0ustar00Create a new cargo project Usage: maturin[EXE] new [OPTIONS] Arguments: Project path Options: --name Set the resulting package name, defaults to the directory name --mixed Use mixed Rust/Python project layout --src Use Python first src layout for mixed Rust/Python project -b, --bindings Which kind of bindings to use [possible values: pyo3, rust-cpython, cffi, uniffi, bin] -h, --help Print help python-maturin_1.3.2.orig/tests/cmd/new.toml0000644000000000000000000000005114320267102016046 0ustar00bin.name = "maturin" args = "new --help" python-maturin_1.3.2.orig/tests/cmd/publish.stderr0000644000000000000000000000000014320267102017245 0ustar00python-maturin_1.3.2.orig/tests/cmd/publish.stdout0000644000000000000000000001175614525221045017313 0ustar00Build and publish the crate as python packages to pypi Usage: maturin[EXE] publish [OPTIONS] [ARGS]... Arguments: [ARGS]... Rustc flags Options: --debug Do not pass --release to cargo --no-strip Do not strip the library for minimum file size --no-sdist Don't build a source distribution -r, --repository The repository (package index) to upload the package to. Should be a section in the config file. Can also be set via MATURIN_REPOSITORY environment variable. [env: MATURIN_REPOSITORY=] [default: pypi] --repository-url The URL of the registry where the wheels are uploaded to. This overrides --repository. Can also be set via MATURIN_REPOSITORY_URL environment variable. [env: MATURIN_REPOSITORY_URL=] -u, --username Username for pypi or your custom registry. Can also be set via MATURIN_USERNAME environment variable. Set MATURIN_PYPI_TOKEN variable to use token-based authentication instead [env: MATURIN_USERNAME=] -p, --password Password for pypi or your custom registry. Can also be set via MATURIN_PASSWORD environment variable. [env: MATURIN_PASSWORD] --skip-existing Continue uploading files if one already exists. (Only valid when uploading to PyPI. Other implementations may not support this.) --non-interactive Do not interactively prompt for username/password if the required credentials are missing. Can also be set via MATURIN_NON_INTERACTIVE environment variable. [env: MATURIN_NON_INTERACTIVE=] --compatibility [...] Control the platform tag on linux. Options are `manylinux` tags (for example `manylinux2014`/`manylinux_2_24`) or `musllinux` tags (for example `musllinux_1_2`) and `linux` for the native linux tag. Note that `manylinux1` and `manylinux2010` is unsupported by the rust compiler. Wheels with the native `linux` tag will be rejected by pypi, unless they are separately validated by `auditwheel`. The default is the lowest compatible `manylinux` tag, or plain `linux` if nothing matched This option is ignored on all non-linux platforms -i, --interpreter [...] The python versions to build wheels for, given as the executables of interpreters such as `python3.9` or `/usr/bin/python3.8` -f, --find-interpreter Find interpreters from the host machine -b, --bindings Which kind of bindings to use [possible values: pyo3, pyo3-ffi, rust-cpython, cffi, uniffi, bin] -o, --out The directory to store the built wheels in. Defaults to a new "wheels" directory in the project's target directory --skip-auditwheel Don't check for manylinux compliance --zig For manylinux targets, use zig to ensure compliance for the chosen manylinux version Default to manylinux2014/manylinux_2_17 if you do not specify an `--compatibility` Make sure you installed zig with `pip install maturin[zig]` -q, --quiet Do not print cargo log messages -j, --jobs Number of parallel jobs, defaults to # of CPUs --profile Build artifacts with the specified Cargo profile -F, --features Space or comma separated list of features to activate --all-features Activate all available features --no-default-features Do not activate the `default` feature --target Build for the target triple [env: CARGO_BUILD_TARGET=] --target-dir Directory for all generated artifacts -m, --manifest-path Path to Cargo.toml --ignore-rust-version Ignore `rust-version` specification in packages -v, --verbose... Use verbose output (-vv very verbose/build.rs output) --color Coloring: auto, always, never --frozen Require Cargo.lock and cache are up to date --locked Require Cargo.lock is up to date --offline Run without accessing the network --config Override a configuration value (unstable) -Z Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details --timings= Timing output formats (unstable) (comma separated): html, json --future-incompat-report Outputs a future incompatibility report at the end of the build (unstable) -h, --help Print help (see a summary with '-h') python-maturin_1.3.2.orig/tests/cmd/publish.toml0000644000000000000000000000005514320267102016727 0ustar00bin.name = "maturin" args = "publish --help" python-maturin_1.3.2.orig/tests/cmd/sdist.stderr0000644000000000000000000000000014320267102016725 0ustar00python-maturin_1.3.2.orig/tests/cmd/sdist.stdout0000644000000000000000000000110114446366340016764 0ustar00Build only a source distribution (sdist) without compiling. Building a source distribution requires a pyproject.toml with a `[build-system]` table. This command is a workaround for [pypa/pip#6041](https://github.com/pypa/pip/issues/6041) Usage: maturin[EXE] sdist [OPTIONS] Options: -m, --manifest-path The path to the Cargo.toml -o, --out The directory to store the built wheels in. Defaults to a new "wheels" directory in the project's target directory -h, --help Print help (see a summary with '-h') python-maturin_1.3.2.orig/tests/cmd/sdist.toml0000644000000000000000000000005314320267102016405 0ustar00bin.name = "maturin" args = "sdist --help" python-maturin_1.3.2.orig/tests/cmd/upload.stderr0000644000000000000000000000000014320267102017063 0ustar00python-maturin_1.3.2.orig/tests/cmd/upload.stdout0000644000000000000000000000346414525221045017126 0ustar00Upload python packages to pypi It is mostly similar to `twine upload`, but can only upload python wheels and source distributions. Usage: maturin[EXE] upload [OPTIONS] [FILE]... Arguments: [FILE]... The python packages to upload Options: -r, --repository The repository (package index) to upload the package to. Should be a section in the config file. Can also be set via MATURIN_REPOSITORY environment variable. [env: MATURIN_REPOSITORY=] [default: pypi] --repository-url The URL of the registry where the wheels are uploaded to. This overrides --repository. Can also be set via MATURIN_REPOSITORY_URL environment variable. [env: MATURIN_REPOSITORY_URL=] -u, --username Username for pypi or your custom registry. Can also be set via MATURIN_USERNAME environment variable. Set MATURIN_PYPI_TOKEN variable to use token-based authentication instead [env: MATURIN_USERNAME=] -p, --password Password for pypi or your custom registry. Can also be set via MATURIN_PASSWORD environment variable. [env: MATURIN_PASSWORD] --skip-existing Continue uploading files if one already exists. (Only valid when uploading to PyPI. Other implementations may not support this.) --non-interactive Do not interactively prompt for username/password if the required credentials are missing. Can also be set via MATURIN_NON_INTERACTIVE environment variable. [env: MATURIN_NON_INTERACTIVE=] -h, --help Print help (see a summary with '-h') python-maturin_1.3.2.orig/tests/cmd/upload.toml0000644000000000000000000000005414320267102016544 0ustar00bin.name = "maturin" args = "upload --help" python-maturin_1.3.2.orig/tests/common/develop.rs0000644000000000000000000000357614525221045017133 0ustar00use crate::common::{check_installed, create_conda_env, create_virtualenv, maybe_mock_cargo}; use anyhow::Result; use maturin::{develop, CargoOptions, DevelopOptions}; use std::path::{Path, PathBuf}; use std::process::Command; use std::str; /// Creates a virtualenv and activates it, checks that the package isn't installed, uses /// "maturin develop" to install it and checks it is working pub fn test_develop( package: impl AsRef, bindings: Option, unique_name: &str, conda: bool, ) -> Result<()> { maybe_mock_cargo(); let package = package.as_ref(); let (venv_dir, python) = if conda { create_conda_env(&format!("maturin-{unique_name}"), 3, 10)? } else { create_virtualenv(unique_name, None)? }; // Ensure the test doesn't wrongly pass check_installed(package, &python).unwrap_err(); let output = Command::new(&python) .args([ "-m", "pip", "install", "--disable-pip-version-check", "cffi", ]) .output()?; if !output.status.success() { panic!( "Failed to install cffi: {}\n---stdout:\n{}---stderr:\n{}", output.status, str::from_utf8(&output.stdout)?, str::from_utf8(&output.stderr)? ); } let manifest_file = package.join("Cargo.toml"); let develop_options = DevelopOptions { bindings, release: false, strip: false, extras: Vec::new(), skip_install: false, pip_path: None, cargo_options: CargoOptions { manifest_path: Some(manifest_file), quiet: true, target_dir: Some(PathBuf::from(format!("test-crates/targets/{unique_name}"))), ..Default::default() }, }; develop(develop_options, &venv_dir)?; check_installed(package, &python)?; Ok(()) } python-maturin_1.3.2.orig/tests/common/errors.rs0000644000000000000000000001155714446366340017021 0ustar00use anyhow::format_err; use anyhow::{bail, Result}; use clap::Parser; use maturin::BuildOptions; use pretty_assertions::assert_eq; use std::path::Path; use std::process::Command; use std::str; pub fn abi3_without_version() -> Result<()> { // The first argument is ignored by clap let cli = vec![ "build", "--manifest-path", "test-crates/pyo3-abi3-without-version/Cargo.toml", "--quiet", "--target-dir", "test-targets/wheels/abi3_without_version", ]; let options = BuildOptions::try_parse_from(cli)?; let result = options.into_build_context(false, cfg!(feature = "faster-tests"), false); if let Err(err) = result { assert_eq!(err.to_string(), "You have selected the `abi3` feature but not a minimum version (e.g. the `abi3-py36` feature). \ maturin needs a minimum version feature to build abi3 wheels." ); } else { bail!("Should have errored"); } Ok(()) } /// Check that you get a good error message if you forgot to set the extension-module feature pub fn pyo3_no_extension_module() -> Result<()> { // The first argument is ignored by clap let cli = vec![ "build", "--manifest-path", "test-crates/pyo3-no-extension-module/Cargo.toml", "--quiet", "--target-dir", "test-crates/targets/pyo3_no_extension_module", "--out", "test-crates/targets/pyo3_no_extension_module", ]; let options = BuildOptions::try_parse_from(cli)?; let result = options .into_build_context(false, cfg!(feature = "faster-tests"), false)? .build_wheels(); if let Err(err) = result { if !(err .source() .ok_or_else(|| format_err!("{}", err))? .to_string() .starts_with("Your library links libpython")) { return Err(err); } } else { bail!("Should have errored"); } Ok(()) } /// Make sure cargo metadata doesn't create a lock file when --locked was passed /// /// https://github.com/PyO3/maturin/issues/472 pub fn locked_doesnt_build_without_cargo_lock() -> Result<()> { // The first argument is ignored by clap let cli = vec![ "build", "--manifest-path", "test-crates/lib_with_path_dep/Cargo.toml", "--locked", "-itargetspython", "--target-dir", "test-crates/targets/locked_doesnt_build_without_cargo_lock", ]; let options = BuildOptions::try_parse_from(cli)?; let result = options.into_build_context(false, cfg!(feature = "faster-tests"), false); if let Err(err) = result { let err_string = err .source() .ok_or_else(|| format_err!("{}", err))? .to_string(); if !err_string.starts_with("`cargo metadata` exited with an error:") { bail!("{:?}", err_string); } } else { bail!("Should have errored"); } Ok(()) } /// Don't panic if the manylinux version doesn't exit /// /// https://github.com/PyO3/maturin/issues/739 pub fn invalid_manylinux_does_not_panic() -> Result<()> { // The first argument is ignored by clap let cli = vec![ "build", "-m", "test-crates/pyo3-mixed/Cargo.toml", "--compatibility", "manylinux_2_99", "--target-dir", "test-crates/targets/invalid_manylinux_does_not_panic", "--out", "test-crates/targets/invalid_manylinux_does_not_panic", ]; let options: BuildOptions = BuildOptions::try_parse_from(cli)?; let result = options .into_build_context(false, cfg!(feature = "faster-tests"), false)? .build_wheels(); if let Err(err) = result { assert_eq!(err.to_string(), "Error ensuring manylinux_2_99 compliance"); let err_string = err .source() .ok_or_else(|| format_err!("{}", err))? .to_string(); assert_eq!(err_string, "manylinux_2_99 compatibility policy is not defined by auditwheel yet, pass `--skip-auditwheel` to proceed anyway"); } else { bail!("Should have errored"); } Ok(()) } /// The user set `python-source` in pyproject.toml, but there is no python module in there pub fn warn_on_missing_python_source() -> Result<()> { let output = Command::new(env!("CARGO_BIN_EXE_maturin")) .arg("build") .arg("-m") .arg( Path::new("test-crates") .join("wrong-python-source") .join("Cargo.toml"), ) .output() .unwrap(); if !output.status.success() { bail!( "Failed to run: {}\n---stdout:\n{}---stderr:\n{}", output.status, str::from_utf8(&output.stdout)?, str::from_utf8(&output.stderr)? ); } assert!(str::from_utf8(&output.stderr)?.contains("Warning: You specified the python source as")); Ok(()) } python-maturin_1.3.2.orig/tests/common/integration.rs0000644000000000000000000001721214525221045020010 0ustar00use crate::common::{check_installed, create_virtualenv, maybe_mock_cargo, test_python_path}; use anyhow::{bail, Context, Result}; #[cfg(feature = "zig")] use cargo_zigbuild::Zig; use clap::Parser; use maturin::{BuildOptions, PlatformTag, PythonInterpreter}; use std::env; use std::path::Path; use std::process::Command; use std::str; /// For each installed python version, this builds a wheel, creates a virtualenv if it /// doesn't exist, installs the package and runs check_installed.py pub fn test_integration( package: impl AsRef, bindings: Option, unique_name: &str, zig: bool, target: Option<&str>, ) -> Result<()> { maybe_mock_cargo(); // Pass CARGO_BIN_EXE_maturin for testing purpose env::set_var( "CARGO_BIN_EXE_cargo-zigbuild", env!("CARGO_BIN_EXE_maturin"), ); let package_string = package.as_ref().join("Cargo.toml").display().to_string(); // The first argument is ignored by clap let shed = format!("test-crates/wheels/{unique_name}"); let target_dir = format!("test-crates/targets/{unique_name}"); let python_interp = test_python_path(); let mut cli = vec![ "build", "--quiet", "--manifest-path", &package_string, "--target-dir", &target_dir, "--out", &shed, ]; if let Some(ref bindings) = bindings { cli.push("--bindings"); cli.push(bindings); } if let Some(target) = target { cli.push("--target"); cli.push(target) } #[cfg(feature = "zig")] let zig_found = Zig::find_zig().is_ok(); #[cfg(not(feature = "zig"))] let zig_found = false; let test_zig = if zig && (env::var("GITHUB_ACTIONS").is_ok() || zig_found) { cli.push("--zig"); true } else { cli.push("--compatibility"); cli.push("linux"); false }; if let Some(interp) = python_interp.as_ref() { cli.push("--interpreter"); cli.push(interp); } let options: BuildOptions = BuildOptions::try_parse_from(cli)?; let build_context = options.into_build_context(false, cfg!(feature = "faster-tests"), false)?; let wheels = build_context.build_wheels()?; // For abi3 on unix, we didn't use a python interpreter, but we need one here let interpreter = if build_context.interpreter.is_empty() { let error_message = "python3 should be a python interpreter"; let venv_interpreter = PythonInterpreter::check_executable( python_interp.as_deref().unwrap_or("python3"), &build_context.target, build_context.bridge(), ) .context(error_message)? .context(error_message)?; vec![venv_interpreter] } else { build_context.interpreter }; // We can do this since we know that wheels are built and returned in the // order they are in the build context for ((filename, supported_version), python_interpreter) in wheels.iter().zip(interpreter) { if test_zig && build_context.target.is_linux() && !build_context.target.is_musl_libc() && build_context.target.get_minimum_manylinux_tag() != PlatformTag::Linux { let rustc_ver = rustc_version::version()?; let python_arch = build_context.target.get_python_arch(); let file_suffix = if rustc_ver >= semver::Version::new(1, 64, 0) { format!("manylinux_2_17_{python_arch}.manylinux2014_{python_arch}.whl") } else { format!("manylinux_2_12_{python_arch}.manylinux2010_{python_arch}.whl") }; assert!(filename.to_string_lossy().ends_with(&file_suffix)) } let mut venv_name = if supported_version == "py3" { format!("{unique_name}-py3") } else { format!( "{}-py{}.{}", unique_name, python_interpreter.major, python_interpreter.minor, ) }; if let Some(target) = target { venv_name = format!("{venv_name}-{target}"); } let (venv_dir, python) = create_virtualenv(&venv_name, Some(python_interpreter.executable.clone()))?; let command = [ "-m", "pip", "--disable-pip-version-check", "--no-cache-dir", "install", "--force-reinstall", ]; let output = Command::new(&python) .args(command) .arg(dunce::simplified(filename)) .output() .context(format!("pip install failed with {python:?}"))?; if !output.status.success() { let full_command = format!("{} {}", python.display(), command.join(" ")); bail!( "pip install in {} failed running {:?}: {}\n--- Stdout:\n{}\n--- Stderr:\n{}\n---\n", venv_dir.display(), full_command, output.status, str::from_utf8(&output.stdout)?.trim(), str::from_utf8(&output.stderr)?.trim(), ); } if !output.stderr.is_empty() { bail!( "pip raised a warning running {:?}: {}\n--- Stdout:\n{}\n--- Stderr:\n{}\n---\n", &command, output.status, str::from_utf8(&output.stdout)?.trim(), str::from_utf8(&output.stderr)?.trim(), ); } check_installed(package.as_ref(), &python)?; } Ok(()) } pub fn test_integration_conda(package: impl AsRef, bindings: Option) -> Result<()> { use crate::common::create_conda_env; use std::path::PathBuf; use std::process::Stdio; let package_string = package.as_ref().join("Cargo.toml").display().to_string(); // Create environments to build against, prepended with "A" to ensure that integration // tests are executed with these environments let mut interpreters = Vec::new(); for minor in 7..=10 { let (_, venv_python) = create_conda_env(&format!("A-maturin-env-3{minor}"), 3, minor)?; interpreters.push(venv_python); } // The first argument is ignored by clap let mut cli = vec![ "build", "--manifest-path", &package_string, "--quiet", "--interpreter", ]; for interp in &interpreters { cli.push(interp.to_str().unwrap()); } if let Some(ref bindings) = bindings { cli.push("--bindings"); cli.push(bindings); } let options = BuildOptions::try_parse_from(cli)?; let build_context = options.into_build_context(false, cfg!(feature = "faster-tests"), false)?; let wheels = build_context.build_wheels()?; let mut conda_wheels: Vec<(PathBuf, PathBuf)> = vec![]; for ((filename, _), python_interpreter) in wheels.iter().zip(build_context.interpreter) { let executable = python_interpreter.executable; if executable.to_str().unwrap().contains("maturin-env-") { conda_wheels.push((filename.clone(), executable)) } } assert_eq!( interpreters.len(), conda_wheels.len(), "Error creating or detecting conda environments." ); for (wheel_file, executable) in conda_wheels { let output = Command::new(&executable) .args([ "-m", "pip", "--disable-pip-version-check", "install", "--force-reinstall", ]) .arg(dunce::simplified(&wheel_file)) .stderr(Stdio::inherit()) .output()?; if !output.status.success() { panic!(); } check_installed(package.as_ref(), &executable)?; } Ok(()) } python-maturin_1.3.2.orig/tests/common/mod.rs0000644000000000000000000001344514446366340016262 0ustar00use anyhow::{bail, Result}; use fs_err as fs; use maturin::Target; use normpath::PathExt as _; use std::path::Path; use std::path::PathBuf; use std::process::{Command, Stdio}; use std::{env, io, str}; pub mod develop; pub mod errors; pub mod integration; pub mod other; /// Check that the package is either not installed or works correctly pub fn check_installed(package: &Path, python: &Path) -> Result<()> { let path = if cfg!(windows) { // on Windows, also add Scripts to PATH let python_dir = python.parent().unwrap(); env::join_paths([&python_dir.join("Scripts"), python_dir])?.into() } else { python.parent().unwrap().to_path_buf() }; let mut check_installed = Path::new(package) .join("check_installed") .join("check_installed.py"); if !check_installed.is_file() { check_installed = Path::new(package) .parent() .unwrap() .join("check_installed") .join("check_installed.py"); } let output = Command::new(python) .arg(check_installed) .env("PATH", path) .output() .unwrap(); if !output.status.success() { bail!( "Check install fail: {} \n--- Stdout:\n{}\n--- Stderr:\n{}", output.status, str::from_utf8(&output.stdout)?, str::from_utf8(&output.stderr)? ); } let message = str::from_utf8(&output.stdout).unwrap().trim(); if message != "SUCCESS" { panic!("Not SUCCESS: {message}"); } Ok(()) } /// Replaces the real cargo with cargo-mock if the mock crate has been compiled /// /// If the mock crate hasn't been compile this does nothing pub fn maybe_mock_cargo() { // libtest spawns multiple threads to run the tests in parallel, but all of those threads share // the same environment variables, so this uses the also global stdout lock to // make this region exclusive let stdout = io::stdout(); let handle = stdout.lock(); let mock_cargo_path = PathBuf::from("test-crates/cargo-mock/target/release/"); if mock_cargo_path.join("cargo").is_file() || mock_cargo_path.join("cargo.exe").is_file() { let old_path = env::var_os("PATH").expect("PATH must be set"); let mut path_split: Vec = env::split_paths(&old_path).collect(); // Another thread might have already modified the path if mock_cargo_path != path_split[0] { path_split.insert(0, mock_cargo_path); let new_path = env::join_paths(path_split).expect("Expected to be able to re-join PATH"); env::set_var("PATH", new_path); } } drop(handle); } /// Better error formatting pub fn handle_result(result: Result) -> T { match result { Err(e) => { for cause in e.chain().rev() { eprintln!("Cause: {cause}"); } panic!("{}", e); } Ok(result) => result, } } /// Get Python implementation pub fn get_python_implementation(python_interp: &Path) -> Result { let code = "import sys; print(sys.implementation.name, end='')"; let output = Command::new(python_interp).arg("-c").arg(code).output()?; let python_impl = String::from_utf8(output.stdout).unwrap(); Ok(python_impl) } /// Create virtualenv pub fn create_virtualenv(name: &str, python_interp: Option) -> Result<(PathBuf, PathBuf)> { let interp = python_interp.or_else(|| test_python_path().map(PathBuf::from)); let venv_interp = interp.clone().unwrap_or_else(|| { let target = Target::from_target_triple(None).unwrap(); target.get_python() }); let venv_name = match get_python_implementation(&venv_interp) { Ok(python_impl) => format!("{name}-{python_impl}"), Err(_) => name.to_string(), }; let venv_dir = PathBuf::from("test-crates") .normalize()? .into_path_buf() .join("venvs") .join(venv_name); let target = Target::from_target_triple(None)?; if venv_dir.is_dir() { fs::remove_dir_all(&venv_dir)?; } let mut cmd = Command::new("virtualenv"); if let Some(interp) = interp { cmd.arg("-p").arg(interp); } let output = cmd .arg(dunce::simplified(&venv_dir)) .stderr(Stdio::inherit()) .output() .expect("Failed to create a virtualenv"); if !output.status.success() { panic!( "Failed to run virtualenv: {}\n---stdout:\n{}---stderr:\n{}", output.status, str::from_utf8(&output.stdout)?, str::from_utf8(&output.stderr)? ); } let python = target.get_venv_python(&venv_dir); Ok((venv_dir, python)) } /// Creates conda environments pub fn create_conda_env(name: &str, major: usize, minor: usize) -> Result<(PathBuf, PathBuf)> { use serde::Deserialize; #[derive(Deserialize)] struct CondaCreateResult { prefix: PathBuf, success: bool, } let mut cmd = if cfg!(windows) { let mut cmd = Command::new("cmd.exe"); cmd.arg("/c").arg("conda"); cmd } else { Command::new("conda") }; let output = cmd .arg("create") .arg("-n") .arg(name) .arg(format!("python={major}.{minor}")) .arg("-q") .arg("-y") .arg("--json") .output() .expect("Conda not available."); let result: CondaCreateResult = serde_json::from_slice(&output.stdout)?; if !result.success { bail!("Failed to create conda environment {}.", name); } let target = Target::from_target_triple(None)?; let python = target.get_venv_python(&result.prefix); Ok((result.prefix, python)) } /// Path to the python interpreter for testing pub fn test_python_path() -> Option { env::var("MATURIN_TEST_PYTHON").ok() } python-maturin_1.3.2.orig/tests/common/other.rs0000644000000000000000000002402314525221045016604 0ustar00use anyhow::{Context, Result}; use clap::Parser; use expect_test::Expect; use flate2::read::GzDecoder; use maturin::pyproject_toml::{SdistGenerator, ToolMaturin}; use maturin::{BuildOptions, CargoOptions, PlatformTag}; use pretty_assertions::assert_eq; use std::collections::BTreeSet; use std::fs::File; use std::io::Read; use std::path::{Path, PathBuf}; use tar::Archive; use time::OffsetDateTime; use zip::ZipArchive; /// Tries to compile a sample crate (pyo3-pure) for musl, /// given that rustup and the the musl target are installed /// /// The bool in the Ok() response says whether the test was actually run pub fn test_musl() -> Result { use anyhow::bail; use fs_err as fs; use fs_err::File; use goblin::elf::Elf; use std::io::ErrorKind; use std::process::Command; let get_target_list = Command::new("rustup") .args(["target", "list", "--installed"]) .output(); match get_target_list { Ok(output) => { if output.status.success() { let has_musl = String::from_utf8_lossy(&output.stdout) .lines() .any(|line| line.trim() == "x86_64-unknown-linux-musl"); if !has_musl { return Ok(false); } } else { bail!( "`rustup target list --installed` failed with status {}", output.status ) } } // Ignore installations without rustup Err(err) if err.kind() == ErrorKind::NotFound => return Ok(false), Err(err) => return Err(err.into()), }; // The first arg gets ignored let options: BuildOptions = BuildOptions::try_parse_from([ "build", "--manifest-path", "test-crates/hello-world/Cargo.toml", "--interpreter", "python3", "--target", "x86_64-unknown-linux-musl", "--compatibility", "linux", "--quiet", "--target-dir", "test-crates/targets/test_musl", "--out", "test-crates/wheels/test_musl", ])?; let build_context = options.into_build_context(false, cfg!(feature = "faster-tests"), false)?; let built_lib = PathBuf::from("test-crates/targets/test_musl/x86_64-unknown-linux-musl/debug/hello-world"); if built_lib.is_file() { fs::remove_file(&built_lib)?; } let wheels = build_context.build_wheels()?; assert_eq!(wheels.len(), 1); // Ensure that we've actually built for musl assert!(built_lib.is_file()); let mut file = File::open(built_lib)?; let mut buffer = Vec::new(); file.read_to_end(&mut buffer)?; let elf = Elf::parse(&buffer)?; assert_eq!(elf.libraries, Vec::<&str>::new()); Ok(true) } /// Test that we ignore non-existent Cargo.lock file listed by `cargo package --list`, /// which seems to only occur with workspaces. /// See https://github.com/rust-lang/cargo/issues/7938#issuecomment-593280660 and /// https://github.com/PyO3/maturin/issues/449 pub fn test_workspace_cargo_lock() -> Result<()> { // The first arg gets ignored let options: BuildOptions = BuildOptions::try_parse_from([ "build", "--manifest-path", "test-crates/workspace/py/Cargo.toml", "--compatibility", "linux", "--quiet", "--target-dir", "test-crates/targets/test_workspace_cargo_lock", "--out", "test-crates/wheels/test_workspace_cargo_lock", ])?; let build_context = options.into_build_context(false, false, false)?; let source_distribution = build_context.build_source_distribution()?; assert!(source_distribution.is_some()); Ok(()) } pub fn test_source_distribution( package: impl AsRef, sdist_generator: SdistGenerator, expected_files: Expect, expected_cargo_toml: Option<(&Path, Expect)>, unique_name: &str, ) -> Result<()> { let manifest_path = package.as_ref().join("Cargo.toml"); let sdist_directory = Path::new("test-crates").join("wheels").join(unique_name); let build_options = BuildOptions { out: Some(sdist_directory), cargo: CargoOptions { manifest_path: Some(manifest_path), quiet: true, target_dir: Some(PathBuf::from( "test-crates/targets/test_workspace_cargo_lock", )), ..Default::default() }, ..Default::default() }; let mut build_context = build_options.into_build_context(false, false, false)?; // Override the sdist generator for testing let mut pyproject_toml = build_context.pyproject_toml.take().unwrap(); let mut tool = pyproject_toml.tool.clone().unwrap_or_default(); if let Some(ref mut tool_maturin) = tool.maturin { tool_maturin.sdist_generator = sdist_generator; } else { tool.maturin = Some(ToolMaturin { sdist_generator, ..Default::default() }); } pyproject_toml.tool = Some(tool); build_context.pyproject_toml = Some(pyproject_toml); let (path, _) = build_context .build_source_distribution()? .context("Failed to build source distribution")?; let tar_gz = fs_err::File::open(path)?; let tar = GzDecoder::new(tar_gz); let mut archive = Archive::new(tar); let mut files = BTreeSet::new(); let mut file_count = 0; let mut cargo_toml = None; for entry in archive.entries()? { let mut entry = entry?; files.insert(format!("{}", entry.path()?.display())); file_count += 1; if let Some(cargo_toml_path) = expected_cargo_toml.as_ref().map(|(p, _)| *p) { if entry.path()? == cargo_toml_path { let mut contents = String::new(); entry.read_to_string(&mut contents)?; cargo_toml = Some(contents); } } } expected_files.assert_debug_eq(&files); assert_eq!(file_count, files.len(), "duplicated files found in sdist"); if let Some((cargo_toml_path, expected)) = expected_cargo_toml { let cargo_toml = cargo_toml .with_context(|| format!("{} not found in sdist", cargo_toml_path.display()))?; expected.assert_eq(&cargo_toml.replace("\r\n", "\n")); } Ok(()) } fn build_wheel_files(package: impl AsRef, unique_name: &str) -> Result> { let manifest_path = package.as_ref().join("Cargo.toml"); let wheel_directory = Path::new("test-crates").join("wheels").join(unique_name); let build_options = BuildOptions { out: Some(wheel_directory), cargo: CargoOptions { manifest_path: Some(manifest_path), quiet: true, target_dir: Some(PathBuf::from(format!("test-crates/targets/{unique_name}"))), ..Default::default() }, platform_tag: vec![PlatformTag::Linux], ..Default::default() }; let build_context = build_options.into_build_context(false, false, false)?; let wheels = build_context .build_wheels() .context("Failed to build wheels")?; assert!(!wheels.is_empty()); let (wheel_path, _) = &wheels[0]; let wheel = ZipArchive::new(File::open(wheel_path)?)?; Ok(wheel) } pub fn check_wheel_mtimes( package: impl AsRef, expected_mtime: Vec, unique_name: &str, ) -> Result<()> { let mut wheel = build_wheel_files(package, unique_name)?; let mut mtimes = BTreeSet::::new(); for idx in 0..wheel.len() { let mtime = wheel.by_index(idx)?.last_modified().to_time()?; mtimes.insert(mtime); } assert_eq!(mtimes, expected_mtime.into_iter().collect::>()); Ok(()) } pub fn check_wheel_files( package: impl AsRef, expected_files: Vec<&str>, unique_name: &str, ) -> Result<()> { let wheel = build_wheel_files(package, unique_name)?; let drop_platform_specific_files = |file: &&str| -> bool { !matches!(Path::new(file).extension(), Some(ext) if ext == "pyc" || ext == "pyd" || ext == "so") }; assert_eq!( wheel .file_names() .filter(drop_platform_specific_files) .collect::>(), expected_files.into_iter().collect::>() ); Ok(()) } pub fn abi3_python_interpreter_args() -> Result<()> { // Case 1: maturin build without `-i`, should work let options = BuildOptions::try_parse_from(vec![ "build", "--manifest-path", "test-crates/pyo3-pure/Cargo.toml", "--quiet", ])?; let result = options.into_build_context(false, cfg!(feature = "faster-tests"), false); assert!(result.is_ok()); // Case 2: maturin build -i python3.10, should work because python3.10 is in bundled sysconfigs let options = BuildOptions::try_parse_from(vec![ "build", "--manifest-path", "test-crates/pyo3-pure/Cargo.toml", "--quiet", "-i", "python3.10", ])?; let result = options.into_build_context(false, cfg!(feature = "faster-tests"), false); assert!(result.is_ok()); // Windows is a bit different so we exclude it from case 3 & 4 // Case 3: maturin build -i python2.7, errors because python2.7 is supported #[cfg(not(windows))] { let options = BuildOptions::try_parse_from(vec![ "build", "--manifest-path", "test-crates/pyo3-pure/Cargo.toml", "--quiet", "-i", "python2.7", ])?; let result = options.into_build_context(false, cfg!(feature = "faster-tests"), false); assert!(result.is_err()); // Case 4: maturin build -i python-does-not-exists, errors because python executable is not found let options = BuildOptions::try_parse_from(vec![ "build", "--manifest-path", "test-crates/pyo3-pure/Cargo.toml", "--quiet", "-i", "python-does-not-exists", ])?; let result = options.into_build_context(false, cfg!(feature = "faster-tests"), false); assert!(result.is_err()); } Ok(()) }