From 5e2da833d5db7c8737e032d26cb2854e634ae20d Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Tue, 25 Nov 2025 19:47:49 +0300 Subject: [PATCH 1/7] Add action to test external build --- .../Build_wheels_for_cpython27_x86_ext.yml | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 .github/workflows/Build_wheels_for_cpython27_x86_ext.yml diff --git a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml new file mode 100644 index 000000000..484e7d87d --- /dev/null +++ b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml @@ -0,0 +1,130 @@ +name: Build wheels for CPython2.7 x86 on Ubuntu18 with GCC-7 with All warnings, test external build + +on: [push, pull_request] + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && github.sha || '' }} + cancel-in-progress: true + +jobs: + build_wheels: + name: Build wheel - ${{ matrix.os.name }} + runs-on: ${{ matrix.os.runs-on }} + strategy: + fail-fast: false + matrix: + os: + - name: Ubuntu 24+18 i386 CPython 2.7 + runs-on: ubuntu-latest + matrix: linux + arch: i386 + tag_arch: i686 + release: bionic + mirror: http://azure.archive.ubuntu.com/ubuntu + #version: 1.5.6.7 + #pyver: "2.7" + getpipurl: https://bootstrap.pypa.io/pip/2.7/get-pip.py + pypkg: python2.7 + pyengine_tag: cp27-cp27mu + libc_tag: manylinux_2_4 + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: 'recursive' + + - name: Update and upgrade Ubuntu 24 + if: matrix.os.matrix == 'linux' + run: | + sudo which apt + sudo apt update; + sudo apt purge -y firefox lxd snapd; + sudo apt install -y zram-config; + sudo apt list --upgradable; + sudo apt upgrade -y; + sudo apt install -f + + - name: Build source distribution with Ubuntu + if: matrix.os.matrix == 'linux' + run: | + sudo apt install -y debootstrap qemu-user; + pip install build; + python -m build --sdist --outdir dist . + + - name: Debootstrap Ubuntu ${{matrix.os.release}} ${{matrix.os.arch}} + if: matrix.os.matrix == 'linux' + run: | + sudo debootstrap --no-merged-usr --verbose --include=sudo,wget,curl,gnupg,ca-certificates --arch=${{matrix.os.arch}} ${{matrix.os.release}} ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} ${{matrix.os.mirror}} || tail ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/debootstrap/debootstrap.log + + - name: Update and Upgrade Ubuntu ${{matrix.os.release}} + if: matrix.os.matrix == 'linux' + run: | + sudo mkdir -p ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel + sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/proc -t proc + sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/dev/pts -t devpts + sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/sys -t sysfs + echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/python ubuntu-${{matrix.os.release}} main" > rusoft-python.list + echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/backports ubuntu-${{matrix.os.release}} main" > rusoft-backports.list + echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list + echo "# deb [trusted=yes] http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu ${{matrix.os.release}} main" > deadsnakes.list + echo "# deb [trusted=yes] http://apt.llvm.org/${{matrix.os.release}}/ llvm-toolchain-${{matrix.os.release}}-20 main " > clang.list + + false && sudo find ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} -iname apt + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update + sudo cp -v ./*.list ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/sources.list.d + false && sudo rm -fv ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/trusted.gpg.d/* && sudo rm -fv ./ubuntu-xenial-x86/etc/apt/trusted.gpg + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'cd /etc/apt/trusted.gpg.d && wget http://packages.rusoft.ru/apt/public.gpg -Orusoft.gpg' + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'cd /etc/apt/trusted.gpg.d && wget http://packages.rusoft.ru/apt/public-old.gpg -Orusoft-old.gpg' + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys A2CE4BCCC50209DD || true' + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt dist-upgrade -y + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt -fy install + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt upgrade -y + + + - name: Pepare dev files + if: matrix.os.matrix == 'linux' + run: | + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install -y libzstd-dev + + - name: Pepare for ${{matrix.os.pypkg}} ${{matrix.os.arch}} + if: matrix.os.matrix == 'linux' + run: | + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt-cache madison clang-18 + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install -y ${{matrix.os.pypkg}}-dev gcc pkg-config ${{matrix.os.pypkgadd}} + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "wget ${{matrix.os.getpipurl}} -O get-pip.py && ${{matrix.os.pypkg}} get-pip.py" + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "${{matrix.os.pypkg}} -m pip install -U 'setuptools'" + + - name: Pepare source and build wheel for ${{matrix.os.pypkg}} ${{matrix.os.arch}} + if: matrix.os.matrix == 'linux' + run: | + sudo mkdir -p ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/ + version=`cat version` + echo "$version" + sudo tar -xvf dist/zstd-$version.tar.gz -C ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/ + false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} env + + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} pkg-config libzstd --modversion + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} gcc -v + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version && _CC=clang-20 ZSTD_ASM=1 ZSTD_WARNINGS=1 _ZSTD_WERRORS=1 _ZSTD_SMALL=1 _ZSTD_ASM_BMI2=1 ZSTD_THREADS=1 ZSTD_EXTERNAL=1 ${{matrix.os.pypkg}} setup.py bdist_wheel " + + - name: Test wheel for ${{matrix.os.pypkg}} ${{matrix.os.arch}} + if: matrix.os.matrix == 'linux' + run: | + false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} find /build_wheel/ + version=`cat version` + echo version=$version + sudo cp -v glibc-check.sh ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/zstd-$version/ + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version/ ; echo LLH; ls -lh build/*/zstd.so; echo LDD; ldd build/*/zstd.so;echo FILE; file build/*/zstd.so; echo LIBC; bash ./glibc-check.sh build/*/zstd.so" + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version && ${{matrix.os.pypkg}} setup.py test" + + - name: Pepare wheel for upload + if: matrix.os.matrix == 'linux' + run: | + version=`cat version` + echo version=$version + sudo cp -v ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/zstd-$version/dist/* ./dist + sudo ls -lh ./dist/* + sudo mv -v ./dist/"zstd-$version-${{matrix.os.pyengine_tag}}-linux_${{matrix.os.tag_arch}}.whl" ./dist/"zstd-$version-${{matrix.os.pyengine_tag}}-${{matrix.os.libc_tag}}_${{matrix.os.tag_arch}}.whl" + From 5db05a2f7f27c6f2b0a7229884c23a2ac2d3ea56 Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Tue, 25 Nov 2025 19:50:44 +0300 Subject: [PATCH 2/7] Issue #304: add two new functions to test external lib version --- setup.py | 12 ++++++++++-- src/python-zstd.c | 23 ++++++++++++++++++++--- src/python-zstd.h | 3 ++- tests/base.py | 18 ++++++++++-------- 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/setup.py b/setup.py index b0c0bf0b3..4f1e1601d 100644 --- a/setup.py +++ b/setup.py @@ -264,7 +264,7 @@ def which(bin_exe): pkgconf = False #if SUP_EXTERNAL: -if platform.system() == "Linux" and "build_ext" in sys.argv or "build" in sys.argv or "bdist_wheel" in sys.argv: +if platform.system() == "Linux" and "build_ext" in sys.argv or "build" in sys.argv or "bdist_wheel" in sys.argv or "test" in sys.argv: # You should add external library by option: --libraries zstd # And probably include paths by option: --include-dirs /usr/include/zstd # And probably library paths by option: --library-dirs /usr/lib/i386-linux-gnu @@ -521,7 +521,7 @@ def build_extensions(self): 'compress/zstd_preSplit.c', 'compress/zstdmt_compress.c', 'compress/zstd_fast.c', - 'compress/zstd_double_fast.c', +# 'compress/zstd_double_fast.c', 'compress/zstd_lazy.c', 'compress/zstd_opt.c', 'compress/zstd_ldm.c', @@ -550,10 +550,16 @@ def build_extensions(self): ]: zstdFiles.append('zstd/lib/'+f) +# files needed always, even for external zstdFiles.append('src/debug.c') zstdFiles.append('src/util.c') zstdFiles.append('src/python-zstd.c') +#for f in [ +# 'decompress/zstd_decompress.c', +# 'decompress/zstd_ddict.c', +# ]: +# zstdFiles.append('zstd/lib/'+f) # Another dirty hack def my_test_suite(): @@ -580,6 +586,8 @@ def my_test_suite(): ld=f.read() f.close() +if SUP_DEBUG: + print("debug: ext_libraries:%r" % (ext_libraries)) setup( name='zstd', version=PKG_VERSION_STR, diff --git a/src/python-zstd.c b/src/python-zstd.c index 42e747451..99737c274 100644 --- a/src/python-zstd.c +++ b/src/python-zstd.c @@ -329,9 +329,24 @@ static PyObject *py_zstd_module_version(PyObject* self, PyObject *args) } /** - * Returns ZSTD library version as string + * Returns ZSTD library version as string - compiled with */ -static PyObject *py_zstd_library_version(PyObject* self, PyObject *args) +static PyObject *py_zstd_library_version_compiled(PyObject* self, PyObject *args) +{ + UNUSED(self); + UNUSED(args); + +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromFormat("%s", ZSTD_VERSION_STRING); +#else + return PyString_FromFormat("%s", ZSTD_VERSION_STRING); +#endif +} + +/** + * Returns ZSTD library version as string - loaded with + */ +static PyObject *py_zstd_library_version_loaded(PyObject* self, PyObject *args) { UNUSED(self); UNUSED(args); @@ -545,7 +560,9 @@ static PyMethodDef ZstdMethods[] = { {"dumps", py_zstd_compress_mt, METH_VARARGS, COMPRESS_DOCSTRING}, {"loads", py_zstd_uncompress, METH_VARARGS, UNCOMPRESS_DOCSTRING}, {"version", py_zstd_module_version, METH_NOARGS, VERSION_DOCSTRING}, - {"ZSTD_version", py_zstd_library_version, METH_NOARGS, ZSTD_VERSION_DOCSTRING}, + {"ZSTD_version", py_zstd_library_version_compiled, METH_NOARGS, ZSTD_VERSION_DOCSTRING}, + {"ZSTD_version_compiled", py_zstd_library_version_compiled, METH_NOARGS, NULL}, + {"ZSTD_version_loaded", py_zstd_library_version_loaded, METH_NOARGS, NULL}, {"ZSTD_version_number", py_zstd_library_version_int, METH_NOARGS, ZSTD_INT_VERSION_DOCSTRING}, {"ZSTD_threads_count", py_zstd_threads_count, METH_NOARGS, ZSTD_THREADS_COUNT_DOCSTRING}, {"ZSTD_max_threads_count", py_zstd_max_threads_count, METH_NOARGS, ZSTD_MAX_THREADS_COUNT_DOCSTRING}, diff --git a/src/python-zstd.h b/src/python-zstd.h index 8c22b5873..2029c0f9e 100644 --- a/src/python-zstd.h +++ b/src/python-zstd.h @@ -96,7 +96,8 @@ static PyObject *py_zstd_compress_mt(PyObject* self, PyObject *args); static PyObject *py_zstd_uncompress(PyObject* self, PyObject *args); static PyObject *py_zstd_check(PyObject* self, PyObject *args); static PyObject *py_zstd_module_version(PyObject* self, PyObject *args); -static PyObject *py_zstd_library_version(PyObject* self, PyObject *args); +static PyObject *py_zstd_library_version_compiled(PyObject* self, PyObject *args); +static PyObject *py_zstd_library_version_loaded(PyObject* self, PyObject *args); static PyObject *py_zstd_library_version_int(PyObject* self, PyObject *args); static PyObject *py_zstd_library_external(PyObject* self, PyObject *args); static PyObject *py_zstd_with_threads(PyObject* self, PyObject *args); diff --git a/tests/base.py b/tests/base.py index 787fd7e15..85870c04d 100644 --- a/tests/base.py +++ b/tests/base.py @@ -22,16 +22,18 @@ def raise_skip(msg): log = logging.getLogger('ZSTD') log.info("Python version: %s" % sys.version) log.info("Machine:%s; processor:%s; system:%r; release:%r" % ( platform.machine(), platform.processor(), platform.system(), platform.release())) -log.info("Module exported interface:%r"% dir(zstd)) -log.info("libzstd linked external:%r"% zstd.ZSTD_external()) -log.info("libzstd built with legacy formats support:%r"% zstd.ZSTD_legacy_support()) -log.info("zstd max number of threads:%r"% zstd.ZSTD_max_threads_count()) -log.info("zstd found CPU cores :%r"% zstd.ZSTD_threads_count()) -log.info("zstd default compression level:%r"% zstd.ZSTD_default_compression_level()) -log.info("zstd max compression level:%r"% zstd.ZSTD_max_compression_level()) -log.info("zstd min compression level:%r"% zstd.ZSTD_min_compression_level()) +log.info("Module exported interfac e:%r"% dir(zstd)) +log.info("libzstd linked external: %r"% zstd.ZSTD_external()) +log.info("libzstd built with legacy formats support: %r"% zstd.ZSTD_legacy_support()) +log.info("zstd max number of threads: %r"% zstd.ZSTD_max_threads_count()) +log.info("zstd found CPU cores : %r"% zstd.ZSTD_threads_count()) +log.info("zstd default compression level: %r"% zstd.ZSTD_default_compression_level()) +log.info("zstd max compression level: %r"% zstd.ZSTD_max_compression_level()) +log.info("zstd min compression level: %r"% zstd.ZSTD_min_compression_level()) log.info("pyzstd module version: %r"% zstd.version()) log.info("libzstd version: %r"% zstd.ZSTD_version()) +log.info("Compiled with libzstd version: %r"% zstd.ZSTD_version_compiled()) +log.info("Loaded with libzstd version: %r"% zstd.ZSTD_version_loaded()) # Classic lorem ipsum From 347de7bd66b9d412f2ebba5a62a282cdba26da89 Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Sun, 28 Dec 2025 21:19:44 +0300 Subject: [PATCH 3/7] Update readme - new functions in api --- README.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.rst b/README.rst index a47b586cc..c743d9889 100644 --- a/README.rst +++ b/README.rst @@ -23,6 +23,9 @@ python-zstd .. |cpython27x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86.yml/badge.svg :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86.yml +.. |cpython27x86ext| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86_ext.yml/badge.svg + :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86_ext.yml + .. |cpython27armhf| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_armhf.yml/badge.svg :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_armhf.yml @@ -123,6 +126,8 @@ python-zstd +============================+======================+ | cpython 2.7 x86 u18 | |cpython27x86| | +----------------------------+----------------------+ +| cpython 2.7 x86 u18 ext | |cpython27x86ext| | ++----------------------------+----------------------+ | cpython 2.7 x64 u18 | |cpython27x64| | +----------------------------+----------------------+ | cpython 2.7 armhf u18 | |cpython27armhf| | @@ -496,6 +501,16 @@ ZSTD_version (): string|bytes Since: 1.3.4.3 +ZSTD_version_compiled (): string|bytes + Returns ZSTD library doted version string, wi which are compiled. + + Since: 1.5.7.3 + +ZSTD_version_loaded (): string|bytes + Returns ZSTD library doted version string, with which currently loaded. + + Since: 1.5.7.3 + ZSTD_version_number (): int Returns ZSTD library version in format: MAJOR*100*100 + MINOR*100 + RELEASE. From 4a4dd6c8b9c558df57f71bbcf48eec0452389e7d Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Mon, 29 Dec 2025 12:13:55 +0300 Subject: [PATCH 4/7] Use ubuntu16 to use updated libzstd --- .github/workflows/Build_wheels_for_cpython27_x86_ext.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml index 484e7d87d..58a8686ef 100644 --- a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml +++ b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml @@ -1,4 +1,4 @@ -name: Build wheels for CPython2.7 x86 on Ubuntu18 with GCC-7 with All warnings, test external build +name: Build wheels for CPython2.7 x86 on Ubuntu16 with GCC-9 with All warnings, test external build on: [push, pull_request] @@ -14,12 +14,12 @@ jobs: fail-fast: false matrix: os: - - name: Ubuntu 24+18 i386 CPython 2.7 + - name: Ubuntu 24+16 i386 CPython 2.7 runs-on: ubuntu-latest matrix: linux arch: i386 tag_arch: i686 - release: bionic + release: xenial mirror: http://azure.archive.ubuntu.com/ubuntu #version: 1.5.6.7 #pyver: "2.7" From 90c20f4d1f99f4e514cb733932b027d283a0c50f Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Mon, 29 Dec 2025 12:43:38 +0300 Subject: [PATCH 5/7] Update action: add search for libzstd --- .../workflows/Build_wheels_for_cpython27_x86_ext.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml index 58a8686ef..74297fa08 100644 --- a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml +++ b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml @@ -50,12 +50,12 @@ jobs: sudo apt install -y debootstrap qemu-user; pip install build; python -m build --sdist --outdir dist . - + - name: Debootstrap Ubuntu ${{matrix.os.release}} ${{matrix.os.arch}} if: matrix.os.matrix == 'linux' run: | sudo debootstrap --no-merged-usr --verbose --include=sudo,wget,curl,gnupg,ca-certificates --arch=${{matrix.os.arch}} ${{matrix.os.release}} ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} ${{matrix.os.mirror}} || tail ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/debootstrap/debootstrap.log - + - name: Update and Upgrade Ubuntu ${{matrix.os.release}} if: matrix.os.matrix == 'linux' run: | @@ -68,11 +68,8 @@ jobs: echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list echo "# deb [trusted=yes] http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu ${{matrix.os.release}} main" > deadsnakes.list echo "# deb [trusted=yes] http://apt.llvm.org/${{matrix.os.release}}/ llvm-toolchain-${{matrix.os.release}}-20 main " > clang.list - - false && sudo find ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} -iname apt sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update sudo cp -v ./*.list ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/sources.list.d - false && sudo rm -fv ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/trusted.gpg.d/* && sudo rm -fv ./ubuntu-xenial-x86/etc/apt/trusted.gpg sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'cd /etc/apt/trusted.gpg.d && wget http://packages.rusoft.ru/apt/public.gpg -Orusoft.gpg' sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'cd /etc/apt/trusted.gpg.d && wget http://packages.rusoft.ru/apt/public-old.gpg -Orusoft-old.gpg' sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys A2CE4BCCC50209DD || true' @@ -80,11 +77,12 @@ jobs: sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt dist-upgrade -y sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt -fy install sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt upgrade -y - - + - name: Pepare dev files if: matrix.os.matrix == 'linux' run: | + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt-cache search libzstd-dev + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt-cache madison libzstd sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install -y libzstd-dev - name: Pepare for ${{matrix.os.pypkg}} ${{matrix.os.arch}} From 7f941078272b0c701dd407aa4f4854bfa57e6295 Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Mon, 29 Dec 2025 13:08:22 +0300 Subject: [PATCH 6/7] Use rusoft packages for xenial --- .github/workflows/Build_wheels_for_cpython27_x86_ext.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml index 74297fa08..c886e1f86 100644 --- a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml +++ b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml @@ -63,9 +63,9 @@ jobs: sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/proc -t proc sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/dev/pts -t devpts sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/sys -t sysfs - echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/python ubuntu-${{matrix.os.release}} main" > rusoft-python.list - echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/backports ubuntu-${{matrix.os.release}} main" > rusoft-backports.list - echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list + echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/python ubuntu-${{matrix.os.release}} main" > rusoft-python.list + echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/backports ubuntu-${{matrix.os.release}} main" > rusoft-backports.list + echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list echo "# deb [trusted=yes] http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu ${{matrix.os.release}} main" > deadsnakes.list echo "# deb [trusted=yes] http://apt.llvm.org/${{matrix.os.release}}/ llvm-toolchain-${{matrix.os.release}}-20 main " > clang.list sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update From 5711e8e67f98b487a8c8be07b82af3a032461fef Mon Sep 17 00:00:00 2001 From: Sergey Dryabzhinsky Date: Tue, 30 Dec 2025 18:13:39 +0300 Subject: [PATCH 7/7] Use system gcc-5 --- .github/workflows/Build_wheels_for_cpython27_x86_ext.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml index c886e1f86..6f9d0c612 100644 --- a/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml +++ b/.github/workflows/Build_wheels_for_cpython27_x86_ext.yml @@ -1,4 +1,4 @@ -name: Build wheels for CPython2.7 x86 on Ubuntu16 with GCC-9 with All warnings, test external build +name: Build wheels for CPython2.7 x86 on Ubuntu16 with GCC-5 with All warnings, test external build on: [push, pull_request] @@ -103,9 +103,9 @@ jobs: false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} env sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} pkg-config libzstd --modversion - sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC - sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} gcc -v - sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version && _CC=clang-20 ZSTD_ASM=1 ZSTD_WARNINGS=1 _ZSTD_WERRORS=1 _ZSTD_SMALL=1 _ZSTD_ASM_BMI2=1 ZSTD_THREADS=1 ZSTD_EXTERNAL=1 ${{matrix.os.pypkg}} setup.py bdist_wheel " + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC-5 + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} gcc-5 -v + sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version && _CC=clang-20 ZSTD_ASM=1 ZSTD_WARNINGS=1 ZSTD_WERRORS=1 _ZSTD_SMALL=1 _ZSTD_ASM_BMI2=1 ZSTD_THREADS=1 ZSTD_EXTERNAL=1 CC=gcc-5 ${{matrix.os.pypkg}} setup.py bdist_wheel " - name: Test wheel for ${{matrix.os.pypkg}} ${{matrix.os.arch}} if: matrix.os.matrix == 'linux'