Hi Mantainers,

using the SCALLYWAG build of rust

$ rustc --version
rustc 1.91.0 (f8297e351 2025-10-28) (built from a source tarball)

I was able to compile the latest versions of

        python-bcrypt
        python-cryptography

that I uploded as TEST.

The build dependency on RUST is currently disabled to avoid complaint
during the upload.

While "python-bcrypt" was relative straightward with minor trick to set RUSTFLAGS for the right version of python

---------------------------------------------------------
BASE_PYTHON_WHEEL_VERSIONS=${PYTHON_WHEEL_VERSIONS}

src_compile() {
        cd ${S}
        lndirs
        cd ${B}
        for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
        do
                export RUSTFLAGS=" -lpython${v}"
                PYTHON_WHEEL_VERSIONS="${v}"
                inform "building ${v}"
                python_wheel_compile
        done
        PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}
---------------------------------------------------------

"python-cryptography" needed an additional package
as the wheel files were NOT in a suitable format

./dist/cryptography-46.0.3-cp312-abi3-cygwin_86_64.whl
./dist/cryptography-46.0.3-cp39-abi3-cygwin_86_64.whl

after installing the "python-maturin" packages the wheel files
were correctly built

./dist/cryptography-46.0.3-cp312-abi3-cygwin_3_6_5_x86_64.whl
./dist/cryptography-46.0.3-cp39-abi3-cygwin_3_6_5_x86_64.whl



Regards
Marco

PYTHON_WHEEL_VERSIONS="3.9:3.12"
inherit python-wheel

NAME="python-bcrypt"
VERSION="5.0.0"
RELEASE="1"

LICENSE="Apache-2.0"
CATEGORY="Python"
SUMMARY="Modern password hashing for your software and your servers"
DESCRIPTION="Password hashing library for Python"
python312_bcrypt_REQUIRES+=" python312-six python312-cffi"
python39_bcrypt_REQUIRES+=" python39-six python39-cffi"

BUILD_REQUIRES+=" ${python312_bcrypt_REQUIRES} python312-devel python312-wheel 
python312-pytest"
BUILD_REQUIRES+=" ${python39_bcrypt_REQUIRES} python39-devel python39-wheel 
python39-pytest"
# to add when "rust" is added as cygwin package
#BUILD_REQUIRES+=" libffi-devel rust"


BASE_PYTHON_WHEEL_VERSIONS=${PYTHON_WHEEL_VERSIONS}

src_compile() {
        cd ${S}
        lndirs
        cd ${B}
        for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
        do
                export RUSTFLAGS=" -lpython${v}"
                PYTHON_WHEEL_VERSIONS="${v}"
                inform "building ${v}"
                python_wheel_compile
        done
        PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}

src_install() {
        cd ${B}
        for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
        do
                export RUSTFLAGS=" -lpython${v}"
                PYTHON_WHEEL_VERSIONS="${v}"
                inform "installing ${v}"
                python_wheel_install
        done
        PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}

src_test() {
        cd ${B}
        for v in ${PYTHON_WHEEL_VERSIONS//:/ }
        do
                echo "testing ${v}"
                export PYTHONPATH=${D}/usr/lib/python${v}/site-packages
                pytest-${v} || true
        done
}
PYTHON_WHEEL_VERSIONS="3.9:3.12"
inherit python-wheel

NAME="python-cryptography"
VERSION=46.0.3
RELEASE=1

LICENSE="Apache-2.0 OR BSD-3-Clause"
CATEGORY="Python"
SUMMARY="Python cryptography primitives"
DESCRIPTION="cryptography is a package which provides cryptographic recipes and
primitives to Python developers."

SRC_DIR="https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz";
SRC_DIR="cryptography-${PV}"

python312_cryptography_REQUIRES="python312-cffi python312-idna"
python39_cryptography_REQUIRES="python39-cffi python39-idna"
python_cryptography_debuginfo_OBSOLETES="python3-cryptography-debuginfo"


BUILD_REQUIRES+=" ${python312__cryptography_REQUIRES} python312-devel 
python312-wheel python312-pytest"
BUILD_REQUIRES+=" ${python39_cryptography_REQUIRES} python39-devel 
python39-wheel python39-pytest"
# BUILD_REQUIRES+=" rust python39-maturin python312-maturin"


BASE_PYTHON_WHEEL_VERSIONS=${PYTHON_WHEEL_VERSIONS}

src_compile() {
    cd ${S}
        lndirs
    cd ${B}
    for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
    do
                export RUSTFLAGS=" -lpython${v}"
                PYTHON_WHEEL_VERSIONS="${v}"
        inform "building ${v}"
                python_wheel_compile
    done
        PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}

src_install() {
    cd ${B}
    for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
    do
        export RUSTFLAGS=" -lpython${v}"
        PYTHON_WHEEL_VERSIONS="${v}"
        inform "installing ${v}"
        python_wheel_install
    done
    PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}

src_test() {
    cd ${B}
    for v in ${PYTHON_WHEEL_VERSIONS//:/ }
    do
        echo "testing ${v}"
                export PYTHONPATH=${D}/usr/lib/python${v}/site-packages
        pytest-${v} || true
    done
}
PYTHON_WHEEL_VERSIONS="3.9:3.12"
inherit python-wheel

NAME="python-maturin"
VERSION="1.10.2"
RELEASE="1"

LICENSE="Apache-2.0 OR MIT "
CATEGORY="Python"
SUMMARY="Build and publish rust crates"
DESCRIPTION="Build and publish crates with pyo3, cffi and uniffi bindings as 
well as rust binaries as python packages"
HOMEPAGE="https://github.com/pyo3/maturin";

BUILD_REQUIRES+=" ${python312_maturin_REQUIRES} python312-devel python312-wheel 
python312-pytest"
BUILD_REQUIRES+=" ${python39_maturin_REQUIRES} python39-devel python39-wheel 
python39-pytest"
# to add when "rust" is added as cygwin package
#BUILD_REQUIRES+=" libffi-devel rust"

PKG_NAMES+=" ${NAME}-tool"
python312_maturin_REQUIRES=" python-maturin-tool"
python39_maturin_REQUIRES=" python-maturin-tool"

python_maturin_tool_CONTENTS="usr/bin/maturin.exe"

BASE_PYTHON_WHEEL_VERSIONS=${PYTHON_WHEEL_VERSIONS}

src_compile() {
        cd ${S}
        lndirs
        cd ${B}
        for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
        do
                export RUSTFLAGS=" -lpython${v}"
                PYTHON_WHEEL_VERSIONS="${v}"
                inform "building ${v}"
                python_wheel_compile
        done
        PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}

src_install() {
        cd ${B}
        for v in ${BASE_PYTHON_WHEEL_VERSIONS//:/ }
        do
                export RUSTFLAGS=" -lpython${v}"
                PYTHON_WHEEL_VERSIONS="${v}"
                inform "installing ${v}"
                python_wheel_install
        done
        PYTHON_WHEEL_VERSIONS=${BASE_PYTHON_WHEEL_VERSIONS}
}

src_test() {
        cd ${B}
        for v in ${PYTHON_WHEEL_VERSIONS//:/ }
        do
                echo "testing ${v}"
                export PYTHONPATH=${D}/usr/lib/python${v}/site-packages
                pytest-${v} || true
        done
}

Reply via email to