#!/bin/sh MAKEDEPS="cmake llvm" DEPS="curl gcc libssh2 openssl" PKG_VER=1.58.1 SOURCE=https://static.rust-lang.org/dist/rustc-$PKG_VER-src.tar.gz DESC="Systems programming language focused on safety, speed and concurrency" prepare () { mkdir -p $PKG_DEST/opt/rustc-$PKG_VER && ln -sf rustc-$PKG_VER $PKG_DEST/opt/rustc openssl_file=vendor/openssl-sys/build/main.rs checksum_before=$(sha256sum $openssl_file | cut -d' ' -f1) sed -i "240i (3, 4, _) => ('3', '4', 'x')," $openssl_file checksum_after=$(sha256sum $openssl_file | cut -d' ' -f1) echo "checksum before: $checksum_before" echo "checksum after: $checksum_after" sed -i "s/$checksum_before/$checksum_after/g" vendor/openssl-sys/.cargo-checksum.json } build () { export RUSTFLAGS="$RUSTFLAGS -C link-arg=-lffi" && target=x86_64-unknown-linux-musl build=x86_64-unknown-linux-musl ./configure \ --build="$build" \ --host="$target" \ --target="$target" \ --prefix="/usr" \ --release-channel="stable" \ --llvm-root="/usr/lib/" \ --disable-docs \ --enable-extended \ --tools="analysis,cargo,src,rustfmt" \ --enable-llvm-link-shared \ --enable-option-checking \ --enable-locked-deps \ --enable-vendor \ --set="rust.musl-root=/usr" \ --set="rust.codegen-units=1" \ --set="rust.codegen-units-std=1" \ --set="rust.parallel-compiler=false" \ --set="target.$target.llvm-config=/usr/bin/llvm-config" \ --set="target.$target.musl-root=/usr" \ --set="target.$target.crt-static=false" \ --set="target.$target.cc=gcc" \ --set="target.$target.cxx=c++" \ --set="target.$target.ar=ar" \ --set="target.$target.linker=gcc" \ --set="target.$build.musl-root=/usr" \ --set="target.$build.crt-static=false" \ --set="target.$build.cc=gcc" \ --set="target.$build.cxx=c++" \ --set="target.$build.ar=ar" \ --set="target.$build.linker=gcc" python ./x.py dist --jobs $JOBS } package () { export LIBSSH2_SYS_USE_PKG_CONFIG=1 && DESTDIR=${PWD}/install python3 ./x.py install && unset LIBSSH2_SYS_USE_PKG_CONFIG chown -R root:root install && cp -a install/* $PKG_DEST mkdir -p $PKG_DEST/etc/profile.d/ cat > $PKG_DEST/etc/profile.d/rustc.sh << "EOF" # Begin /etc/profile.d/rustc.sh pathprepend /opt/rustc/bin PATH # End /etc/profile.d/rustc.sh EOF mkdir -p $PKG_DEST/etc/ld.so.conf.d cat >> $PKG_DEST/etc/ld.so.conf.d/rustc.conf << EOF # Begin rustc addition /opt/rustc/lib # End rustc addition EOF }