diff options
Diffstat (limited to 'development/racer/racer.SlackBuild')
-rw-r--r-- | development/racer/racer.SlackBuild | 117 |
1 files changed, 46 insertions, 71 deletions
diff --git a/development/racer/racer.SlackBuild b/development/racer/racer.SlackBuild index ff8b181330..f4901fce37 100644 --- a/development/racer/racer.SlackBuild +++ b/development/racer/racer.SlackBuild @@ -1,8 +1,9 @@ -#!/bin/sh +#!/bin/bash # Slackware build script for racer -# Copyright 2017-2018 Andrew Clemons, Wellington New Zealand +# Copyright 2017-2018,2020-2021 Andrew Clemons, Wellington New Zealand +# Copyright 2022 Andrew Clemons, Tokyo Japan # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,10 +23,13 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +cd $(dirname $0) ; CWD=$(pwd) + PRGNAM=racer -VERSION=${VERSION:-2.0.14} +VERSION=${VERSION:-2.2.2} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -41,7 +45,11 @@ if [ -z "$ARCH" ]; then fi fi -CWD=$(pwd) +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} @@ -49,15 +57,15 @@ OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" - CARGOTARGET="--target i586-unknown-linux-gnu" + CARGOTARGET="--target $ARCH-unknown-linux-gnu" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" LIBDIRSUFFIX="" - CARGOTARGET="--target i686-unknown-linux-gnu" -elif [ "$ARCH" = "x86_64" ]; then + CARGOTARGET="--target $ARCH-unknown-linux-gnu" +elif [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ]; then SLKCFLAGS="-O2 -fPIC" LIBDIRSUFFIX="64" - CARGOTARGET="--target x86_64-unknown-linux-gnu" + CARGOTARGET="--target $ARCH-unknown-linux-gnu" else SLKCFLAGS="-O2" LIBDIRSUFFIX="" @@ -70,7 +78,7 @@ rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION.crate cd $PRGNAM-$VERSION # build offline @@ -91,65 +99,13 @@ mkdir vendor ( cd vendor - for dependency in aho-corasick=0.6.4 \ - ansi_term=0.11.0 \ - atty=0.2.8 \ - bitflags=0.7.0 \ - bitflags=1.0.1 \ - cfg-if=0.1.2 \ - clap=2.31.1 \ - clippy=0.0.103 \ - clippy_lints=0.0.103 \ - env_logger=0.5.5 \ - fuchsia-zircon-sys=0.3.3 \ - fuchsia-zircon=0.3.3 \ - humantime=1.1.1 \ - kernel32-sys=0.2.2 \ - lazy_static=1.0.0 \ - libc=0.2.39 \ - log=0.3.9 \ - log=0.4.1 \ - matches=0.1.6 \ - memchr=2.0.1 \ - nom=1.2.4 \ - quick-error=1.2.1 \ - quine-mc_cluskey=0.2.4 \ - rand=0.4.2 \ - redox_syscall=0.1.37 \ - redox_termios=0.1.1 \ - regex-syntax=0.3.9 \ - regex-syntax=0.5.3 \ - regex=0.2.10 \ - rustc-serialize=0.3.24 \ - semver=0.2.3 \ - serde=1.0.36 \ - strsim=0.7.0 \ - syntex_errors=0.52.0 \ - syntex_pos=0.52.0 \ - syntex_syntax=0.52.0 \ - term=0.4.6 \ - termcolor=0.3.5 \ - termion=1.5.1 \ - textwrap=0.9.0 \ - thread_local=0.3.5 \ - toml=0.1.30 \ - toml=0.4.5 \ - ucd-util=0.1.1 \ - unicode-normalization=0.1.5 \ - unicode-width=0.1.4 \ - unicode-xid=0.0.3 \ - unreachable=1.0.0 \ - utf8-ranges=1.0.0 \ - vec_map=0.8.0 \ - void=1.0.2 \ - winapi-build=0.1.1 \ - winapi-i686-pc-windows-gnu=0.4.0 \ - winapi-x86_64-pc-windows-gnu=0.4.0 \ - winapi=0.2.8 \ - winapi=0.3.4 \ - wincolor=0.1.6; do - dep="$(echo "$dependency" | cut -d= -f1)" - ver="$(echo "$dependency" | cut -d= -f2)" + 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 @@ -171,10 +127,24 @@ mkdir vendor sha256sum "$CWD/$dep-$ver.crate" | cut -f1 -d' ' | sed 's/$/"/' printf "}\n" - } | python -c "import sys, json; data = sys.stdin.read(); print json.dumps(json.loads(data), sort_keys=True, indent=4, separators=(',', ' : '))" > $dep-$ver/.cargo-checksum.json + } > $dep-$ver/.cargo-checksum.json done ) +# racer needs a specific nightly version of rust +tar -xf $CWD/rust-nightly-$ARCH*-unknown-linux-gnu*.tar.gz +tar -xf $CWD/rustc-dev-nightly-$ARCH*-unknown-linux-gnu*.tar.gz +( + cd rust-nightly-$ARCH*-unknown-linux-gnu* + ./install.sh --destdir=../.rust --prefix="" --without=rust-docs --disable-ldconfig +) +( + cd rustc-dev-nightly-$ARCH*-unknown-linux-gnu* + ./install.sh --destdir=../.rust --prefix="" --disable-ldconfig +) +rm -rf rust-nightly-$ARCH*-unknown-linux-gnu* +rm -rf rustc-dev-nightly-$ARCH*-unknown-linux-gnu* + chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -182,11 +152,16 @@ 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 {} \; + +PATH="$(pwd)/.rust/bin/:$PATH" \ +LD_LIBRARY_PATH="$(pwd)/.rust/lib:$LD_LIBRARY_PATH" \ +CARGO_HOME=.cargo \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ cargo build --release $CARGOTARGET -mkdir -p $PKG/usr/bin +mkdir -p $PKG/usr/bin/ + find target -name racer -exec install -m 755 {} $PKG/usr/bin/racer \; find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ @@ -200,4 +175,4 @@ mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |