diff options
Diffstat (limited to 'python/cryptography/cryptography.SlackBuild')
-rw-r--r-- | python/cryptography/cryptography.SlackBuild | 83 |
1 files changed, 25 insertions, 58 deletions
diff --git a/python/cryptography/cryptography.SlackBuild b/python/cryptography/cryptography.SlackBuild index 49127919a9..6465d1fd2b 100644 --- a/python/cryptography/cryptography.SlackBuild +++ b/python/cryptography/cryptography.SlackBuild @@ -3,7 +3,7 @@ # Slackware build script for cryptography # Copyright 2014-2018 Markus Reichelt, Aachen, DE -# Copyright 2021 Willy Sudiarto Raharjo <willysr@slackbuilds.org> +# Copyright 2021-2024 Willy Sudiarto Raharjo <willysr@slackbuilds.org> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -29,10 +29,12 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=cryptography -VERSION=${VERSION:-35.0.0} -BUILD=${BUILD:-2} +VERSION=${VERSION:-42.0.5} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} +VSBUILD=${VSBUILD:-1} +VSDIR=${VSDIR:-/src/rust/} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -72,60 +74,9 @@ mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-vendored-sources-$VERSION-$VSBUILD.tar.?z cd $PRGNAM-$VERSION -# build offline -# configuration tells cargo to use the configured directory -# for dependencies intead of downloading from crates.io -mkdir .cargo -cat << EOF >> .cargo/config -[source.crates-io] -registry = 'https://github.com/rust-lang/crates.io-index' -replace-with = 'vendored-sources' - -[source.vendored-sources] -directory = '$(pwd)/src/rust/vendor' -EOF - -( - cd src/rust - - # deps and versions come from Cargo.lock - mkdir vendor - cd vendor - - grep -h -A 3 "\[\[package\]\]" $(find ../ -maxdepth 1 -mindepth 1 -name Cargo.lock | tr '\n' ' ') | \ - sed 's/[[:space:]]*=[[:space:]]*/=/g;s/^--//;s/^\[\[/--\n[[/' | \ - awk 'BEGIN { RS = "--\n" ; FS="\n" } { print $2, $3, $4 }' | sed 's/"//g;s/name=//;s/ version=/=/' | \ - grep crates\.io-index | sed 's/ source=.*$//' | sort -u | while read -r dep ; do - - ver="$(printf "%s\n" "$dep" | cut -d= -f2)" - dep="$(printf "%s\n" "$dep" | cut -d= -f1)" - - tar xvf $CWD/$dep-$ver.crate - - touch $dep-$ver/.cargo-ok - - # generate checksum - { - printf "{\n" - printf ' "files": {\n' - - ( - cd $dep-$ver - find . -type f -print0 | xargs -0 sha256sum | sed -n '/\.cargo-checksum\.json/!p' | sed 's/\.\///;s/^\([^ ]*\)[[:space:]][[:space:]]*\(.*\)$/"\2":"\1",/' - ) | sed '$ s/,$//' - - printf " },\n" - printf ' "package": "' - - sha256sum "$CWD/$dep-$ver.crate" | cut -f1 -d' ' | sed 's/$/"/' - - printf "}\n" - } > $dep-$ver/.cargo-checksum.json - done -) - chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -133,10 +84,26 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -export CARGO_HOME=.cargo +# prevent cargo from using the network. +# this only works because we have a vendored sources tarball with +# everything cargo would have downloaded. +export CARGO_NET_OFFLINE=true + +# prevent cargo from writing outside of $TMP +export CARGO_HOME=$(pwd)/$VSDIR/.cargo + +export PATH="/opt/rust16/bin:$PATH" +if [ -z "$LD_LIBRARY_PATH" ]; then + export LD_LIBRARY_PATH="/opt/rust16/lib$LIBDIRSUFFIX" +else + export LD_LIBRARY_PATH="/opt/rust16/lib$LIBDIRSUFFIX:$LD_LIBRARY_PATH" +fi + +PYVER=$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])') +export PYTHONPATH=/opt/python$PYVER/site-packages -sed -i '/install_requires/d' setup.py -python3 setup.py install --root=$PKG +python3 -m build --no-isolation +python3 -m installer -d "$PKG" dist/*.whl find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true |