diff --git a/.github/workflows/Nuget-publishing.yml b/.github/workflows/Nuget-publishing.yml index 505f416d..820a7a05 100644 --- a/.github/workflows/Nuget-publishing.yml +++ b/.github/workflows/Nuget-publishing.yml @@ -288,7 +288,7 @@ jobs: - name: '🚧 Linux ppc64le build' if: contains(matrix.config.arch, 'ppc64le') - uses: uraimo/run-on-arch-action@v2 + uses: uraimo/run-on-arch-action@v3 with: arch: ${{ matrix.config.arch }} distro: ${{ matrix.config.distro }} diff --git a/.github/workflows/build-uc2.yml b/.github/workflows/build-uc2.yml index fc6e678f..01bd14c6 100644 --- a/.github/workflows/build-uc2.yml +++ b/.github/workflows/build-uc2.yml @@ -494,7 +494,7 @@ jobs: - name: '🚧 Linux ppc64le build' if: contains(matrix.config.arch, 'ppc64le') - uses: uraimo/run-on-arch-action@v2 + uses: uraimo/run-on-arch-action@v3 with: arch: ${{ matrix.config.arch }} distro: ${{ matrix.config.distro }} diff --git a/.github/workflows/build-wheels-publish.yml b/.github/workflows/build-wheels-publish.yml index 56708b12..c68bad74 100644 --- a/.github/workflows/build-wheels-publish.yml +++ b/.github/workflows/build-wheels-publish.yml @@ -296,11 +296,9 @@ jobs: - name: Build SDist run: | - cd bindings/python python3 -m pip install -U pip build - python3 -m build --sdist - python3 -m pip install dist/*.tar.gz - cd ~ + python3 -m build --sdist bindings/python + python3 -m pip install bindings/python/dist/*.tar.gz python3 -c 'import unicorn; print(f"Unicorn version installed from sdist: {unicorn.__version__}")' - uses: actions/upload-artifact@v4 diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index f9562d00..e897e289 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -6,6 +6,9 @@ build-backend = "setuptools.build_meta" name = "unicorn" dynamic = ["version"] requires-python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*" +dependencies = [ + "importlib_resources; python_version < '3.9'" +] authors = [ { name = "Nguyen Anh Quynh", email = "quynh@gmail.com" }, ] diff --git a/bindings/python/unicorn/unicorn_py3/unicorn.py b/bindings/python/unicorn/unicorn_py3/unicorn.py index 8684a391..0a6b3150 100644 --- a/bindings/python/unicorn/unicorn_py3/unicorn.py +++ b/bindings/python/unicorn/unicorn_py3/unicorn.py @@ -109,19 +109,17 @@ def __load_uc_lib() -> ctypes.CDLL: # Loading attempts, in order # - user-provided environment variable - # - pkg_resources can get us the path to the local libraries + # - importlib.resources/importlib_resources can get us the path to the local libraries # - we can get the path to the local libraries by parsing our filename # - global load # - python's lib directory - if sys.version_info.minor >= 12: - from importlib import resources - - canonicals = resources.files('unicorn') / 'lib' + if sys.version_info >= (3, 9): + import importlib.resources as resources else: - import pkg_resources + import importlib_resources as resources - canonicals = pkg_resources.resource_filename('unicorn', 'lib') + canonicals = resources.files('unicorn') / 'lib' lib_locations = [ os.getenv('LIBUNICORN_PATH'),