From ca1cd7a26a559c5f98165c867b43814d0de3fbeb Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Mon, 16 Dec 2024 19:42:12 +0100 Subject: [PATCH 1/4] new setuptools broken in github workflow --- .github/workflows/abicheck.yml | 2 +- .github/workflows/check.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/abicheck.yml b/.github/workflows/abicheck.yml index 3ac39146..6149f050 100644 --- a/.github/workflows/abicheck.yml +++ b/.github/workflows/abicheck.yml @@ -4,7 +4,7 @@ env: build_options: -Dbuildtype=debug -Denable-true-color=yes -Dwith-proxy=yes -Dc_args=-DPERL_EUPXS_ALWAYS_EXPORT prefix: /usr/local apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev - get_pip_build_deps: pip3 install setuptools; pip3 install wheel; pip3 install 'meson<0.59.0' + get_pip_build_deps: pip3 install 'setuptools<66'; pip3 install wheel; pip3 install 'meson<0.59.0' getabidef_def: getabidef() { awk '$1=="#define" && $2=="IRSSI_ABI_VERSION" { print $3 }' "$1"/include/irssi/src/common.h; } jobs: build-base-ref: diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 2fee4b8b..c771504e 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -38,6 +38,7 @@ jobs: builder: [meson] compiler: [clang, gcc] flags: [regular] + setuptools_ver: [<66] include: - os: ubuntu-20.04 builder: meson From a775f50572bc7751b5ff01e7aa3e2e2d3ea5d262 Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Mon, 16 Dec 2024 19:57:30 +0100 Subject: [PATCH 2/4] add glib dependency to github workflows --- .github/workflows/abicheck.yml | 2 +- .github/workflows/check.yml | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/abicheck.yml b/.github/workflows/abicheck.yml index 6149f050..d1387b82 100644 --- a/.github/workflows/abicheck.yml +++ b/.github/workflows/abicheck.yml @@ -3,7 +3,7 @@ name: abicheck env: build_options: -Dbuildtype=debug -Denable-true-color=yes -Dwith-proxy=yes -Dc_args=-DPERL_EUPXS_ALWAYS_EXPORT prefix: /usr/local - apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev + apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev libglib2.0-dev get_pip_build_deps: pip3 install 'setuptools<66'; pip3 install wheel; pip3 install 'meson<0.59.0' getabidef_def: getabidef() { awk '$1=="#define" && $2=="IRSSI_ABI_VERSION" { print $3 }' "$1"/include/irssi/src/common.h; } jobs: diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index c771504e..646b58d8 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -5,8 +5,7 @@ on: pull_request: name: Check Irssi env: - apt_build_deps: libutf8proc-dev libperl-dev libotr5-dev - apt_build_deps_meson: ninja-build + apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev libglib2.0-dev get_pip_build_deps_meson: pip3 install setuptools${setuptools_ver}; pip3 install wheel; pip3 install meson${meson_ver} build_options_meson: -Dwith-proxy=yes -Dwith-bot=yes -Dwith-perl=yes -Dwith-otr=yes prefix: ~/irssi-build @@ -35,20 +34,16 @@ jobs: fail-fast: false matrix: os: [ubuntu-20.04, ubuntu-latest] - builder: [meson] compiler: [clang, gcc] flags: [regular] setuptools_ver: [<66] include: - os: ubuntu-20.04 - builder: meson meson_ver: ==0.53.2 setuptools_ver: <51 - os: ubuntu-latest - builder: meson meson_ver: <0.63.0 - os: ubuntu-latest - builder: meson flags: meson-latest FAILURE-OK steps: - name: fetch dist @@ -61,8 +56,8 @@ jobs: meson_ver: ${{ matrix.meson_ver }} setuptools_ver: ${{ matrix.setuptools_ver }} run: | - sudo apt update && sudo apt install $apt_build_deps $apt_build_deps_${{ matrix.builder }} - eval "$get_pip_build_deps_${{ matrix.builder }}" + sudo apt update && sudo apt install $apt_build_deps + eval "$get_pip_build_deps_meson" curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl - name: unpack archive run: tar xaf artifact/irssi-*.tar.gz @@ -73,14 +68,12 @@ jobs: meson Build $build_options_meson --prefix=${prefix/\~/~} ninja -C Build ninja -C Build install - if: ${{ matrix.builder == 'meson' }} - name: run tests with Meson run: | # ninja test cd irssi-*/ ninja -C Build test find -name testlog.txt -exec sed -i -e '/Inherited environment:.* GITHUB/d' {} + -exec cat {} + - if: ${{ matrix.builder == 'meson' }} - name: run launch test env: TERM: xterm @@ -125,7 +118,7 @@ jobs: meson_ver: ${{ matrix.meson_ver }} setuptools_ver: ${{ matrix.setuptools_ver }} run: | - sudo apt update && sudo apt install $apt_build_deps $apt_build_deps_meson + sudo apt update && sudo apt install $apt_build_deps eval "$get_pip_build_deps_meson" curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl - name: build and install with meson From a7bb40f5301f28476493162e2375dc0c3d07bf72 Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Mon, 16 Dec 2024 20:11:24 +0100 Subject: [PATCH 3/4] pin setuptools and meson ver for make dist in workflow --- .github/workflows/check.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 646b58d8..37b59749 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,10 +12,14 @@ env: jobs: dist: runs-on: ubuntu-latest + env: + meson_ver: <0.63.0 + setuptools_ver: <66 steps: - name: prepare required software run: | sudo apt update && sudo apt install $apt_build_deps + eval "$get_pip_build_deps_meson" - uses: actions/checkout@main - name: make dist run: | From e8e5bf5d817f5a8b590c8da4b21ebd8d4550f267 Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Mon, 16 Dec 2024 20:43:48 +0100 Subject: [PATCH 4/4] patch old setuptools for python 3.12 for github workflow --- .github/workflows/check.yml | 24 ++++++++++++++++++++++++ utils/make-dist.sh | 9 +++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 37b59749..67465f1a 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -20,6 +20,30 @@ jobs: run: | sudo apt update && sudo apt install $apt_build_deps eval "$get_pip_build_deps_meson" + patch ~/.local/lib/python3.12/site-packages/pkg_resources/__init__.py <<- PATCH + --- __init__.py 2024-12-16 20:37:46.733230351 +0100 + +++ __init__.py 2024-12-16 20:38:42.479554540 +0100 + @@ -2188,7 +2188,8 @@ def resolve_egg_link(path): + return next(dist_groups, ()) + + + -register_finder(pkgutil.ImpImporter, find_on_path) + +if hasattr(pkgutil, 'ImpImporter'): + + register_finder(pkgutil.ImpImporter, find_on_path) + + if hasattr(importlib_machinery, 'FileFinder'): + register_finder(importlib_machinery.FileFinder, find_on_path) + @@ -2345,7 +2346,8 @@ def file_ns_handler(importer, path_item, + return subpath + + + -register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) + +if hasattr(pkgutil, 'ImpImporter'): + + register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) + register_namespace_handler(zipimport.zipimporter, file_ns_handler) + + if hasattr(importlib_machinery, 'FileFinder'): + PATCH - uses: actions/checkout@main - name: make dist run: | diff --git a/utils/make-dist.sh b/utils/make-dist.sh index 3ea56599..81d450d7 100755 --- a/utils/make-dist.sh +++ b/utils/make-dist.sh @@ -80,10 +80,11 @@ echo "Creating sdist..." python3 -W ignore -c 'from setuptools import *;setup()' --quiet sdist --formats=tar tar --delete --file "dist/$name-$version.tar" \ - "$name-$version/setup.cfg" \ - "$name-$version/pyproject.toml" \ - "$name-$version/$name.egg-info" \ - "$name-$version/PKG-INFO" + $(tar tf "dist/$name-$version.tar" | grep -F \ + "$name-$version/setup.cfg +$name-$version/pyproject.toml +$name-$version/$name.egg-info +$name-$version/PKG-INFO") echo "Zipping..." xz -k "dist/$name-$version.tar"