{"id":28829620,"url":"https://github.com/jvolkman/repairwheel","last_synced_at":"2026-05-12T07:02:10.750Z","repository":{"id":137747791,"uuid":"586285013","full_name":"jvolkman/repairwheel","owner":"jvolkman","description":"Repair any wheel, anywhere","archived":false,"fork":false,"pushed_at":"2024-10-16T19:53:21.000Z","size":885,"stargazers_count":46,"open_issues_count":4,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-24T15:34:56.742Z","etag":null,"topics":["auditwheel","python","wheel"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jvolkman.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-07T15:45:26.000Z","updated_at":"2025-04-02T15:33:55.000Z","dependencies_parsed_at":"2023-11-25T01:33:20.218Z","dependency_job_id":"49aff4b7-60bc-47f1-8242-e8a5d98bc54b","html_url":"https://github.com/jvolkman/repairwheel","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/jvolkman/repairwheel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvolkman%2Frepairwheel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvolkman%2Frepairwheel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvolkman%2Frepairwheel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvolkman%2Frepairwheel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jvolkman","download_url":"https://codeload.github.com/jvolkman/repairwheel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvolkman%2Frepairwheel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260691043,"owners_count":23047108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auditwheel","python","wheel"],"created_at":"2025-06-19T05:14:14.628Z","updated_at":"2026-05-12T07:02:10.743Z","avatar_url":"https://github.com/jvolkman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# repairwheel\n\n[![CI - Test](https://github.com/jvolkman/repairwheel/actions/workflows/test.yml/badge.svg)](https://github.com/jvolkman/repairwheel/actions/workflows/test.yml)\n[![PyPI - Version](https://img.shields.io/pypi/v/repairwheel.svg?logo=pypi\u0026label=PyPI\u0026logoColor=gold)](https://pypi.org/project/repairwheel/)\n\n## Overview\n\n- `repairwheel` combines the \"repair\" steps from [`auditwheel`](https://github.com/pypa/auditwheel), [`delocate`](https://github.com/matthew-brett/delocate),\n  and [`delvewheel`](https://github.com/adang1345/delvewheel) into a single tool, enabling cross-platform wheel repair.\n- It includes pure-python replacements for external tools like `patchelf`, `otool`, `install_name_tool`, and `codesign`, so no non-python dependencies are required.\n\n## What's it do?\n\n1. When invoked, `repairwheel` first looks at the platform tag on the input wheel.\n2. Based on the tag, `repairwheel` selects a repair step from `auditwheel`, `delocate`, or `delvewheel` (or nothing, if it's a pure-Python wheel)\n3. Finally, `repairwheel` rewrites the result in a canonical form ensuring that:\n   1. File timestamps are set to a constant value;\n   2. Files in the archive are ordered lexicographically; and\n   3. Files in `RECORD` are ordered lexicographically\n\nThe final result _should_ be bitwise-identitcal regardless of the system used to perform the repair.\n\n## Usage\n\n```\nusage: repairwheel [-h] -o OUTPUT_DIR [-l LIB_DIR] wheel\n\npositional arguments:\n  wheel\n\noptions:\n  -h, --help            show this help message and exit\n  -o OUTPUT_DIR, --output-dir OUTPUT_DIR\n  -l LIB_DIR, --lib-dir LIB_DIR\n```\n\n## Example\n\n```shell\n$ repairwheel \\\n  tests/testwheel/cp36-abi3-macosx_10_11_arm64/testwheel-0.0.1-cp36-abi3-macosx_10_11_arm64.whl \\\n  -l tests/testwheel/cp36-abi3-macosx_10_11_arm64/lib \\\n  -o /tmp/wheelout\n\n$ repairwheel \\\n  tests/testwheel/cp36-abi3-linux_x86_64/testwheel-0.0.1-cp36-abi3-linux_x86_64.whl \\\n  -l tests/testwheel/cp36-abi3-linux_x86_64/lib \\\n  -o /tmp/wheelout\n\n$ ls /tmp/wheelout\ntestwheel-0.0.1-cp36-abi3-macosx_10_11_arm64.whl\ntestwheel-0.0.1-cp36-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvolkman%2Frepairwheel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjvolkman%2Frepairwheel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvolkman%2Frepairwheel/lists"}