{"id":18614105,"url":"https://github.com/enthought/machotools","last_synced_at":"2025-04-04T03:23:39.462Z","repository":{"id":6894088,"uuid":"8143738","full_name":"enthought/machotools","owner":"enthought","description":"Default Repo description from terraform module","archived":false,"fork":false,"pushed_at":"2025-02-06T02:07:13.000Z","size":49,"stargazers_count":2,"open_issues_count":7,"forks_count":2,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-02-09T15:11:35.759Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enthought.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-11T18:28:23.000Z","updated_at":"2024-09-21T10:12:30.000Z","dependencies_parsed_at":"2022-09-15T09:12:36.769Z","dependency_job_id":null,"html_url":"https://github.com/enthought/machotools","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fmachotools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fmachotools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fmachotools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fmachotools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enthought","download_url":"https://codeload.github.com/enthought/machotools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247114206,"owners_count":20885896,"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":[],"created_at":"2024-11-07T03:25:13.664Z","updated_at":"2025-04-04T03:23:39.445Z","avatar_url":"https://github.com/enthought.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Machotools is a small set of tools built on top of macholib to retrieve and\nchange informations about mach-o files. Think of it as a pure python,\ncross-platform implementation of install_name_tool\n\nExamples::\n\n        # Print the list of rpath defined in the given .dylib\n        python -m machotools list_rpaths foo.dylib\n\n        # Print the id (i.e. install_name) of the given .dylib\n        python -m machotools install_name foo.dylib\n\n        # Print the list of libraries linked in the given mach-o (simple otool\n        # -L)\n        python -m machotools list_libraries a.out\n\nInternally, machotools is written as a library so that it can be used within\nbigger tools, but the API is currently in-flux until the first 1.0 release.\n\nExample::\n\n        from machotools import rewriter_factory\n\n        rewriter = rewriter_factory(\"foo.dylib\")\n        print rewriter.dependencies\n        # install_name property only available if rewriter is a DylibRewriter\n        # instance (auto-detected in rewriter_factory)\n        print rewriter.install_name\n        print rewriter.rpaths\n\n        rewriter.install_name = \"bar.dylib\"\n        # Changes are not actually written until you call commit()\n        rewriter.commit()\n\n        # When modifying a binary, one can also use context manager so that\n        # changes are automatically committed when exciting the context.\n        with rewriter_factory(\"foo.dylib\") as rewriter:\n            rewriter.install_name = \"bar.dylib\"\n\nMain features:\n\n        - ability to query/change rpath\n        - ability to query/change the install name\n        - ability to query/change the dependencies\n        - should work on any platform supported by macholib (mac os x, unix,\n          windows)\n        - modifications are safe against crash/interruption as files are never\n          modified in place. Instead, modifications are made against a\n          temporary copy, and replace the original file using atomic rename on\n          Posix (emulated on windows).\n\nDevelopment happens on `github \u003chttp://github.com/enthought/machotools\u003e`_\n\nTODO:\n\n        - support for multi arch\n        - more detailed output for list_libraries (including versioning info)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenthought%2Fmachotools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenthought%2Fmachotools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenthought%2Fmachotools/lists"}