#!/bin/sh # Slackware build script for eclim # Copyright 2016-2017 Andrew Clemons, Wellington New Zealand # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=eclim # temporarily build the oxygen branch until released so i don't hold up # updating the eclipse slackbuilds any longer GITREV=${GITREV:-c977952934d6317380458618484bd577e2cab2d0} VERSION=${VERSION:-git$(echo "$GITREV" | sed 's/^\(.\{7\}\).*$/\1/')} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" LIBDIRSUFFIX="64" else SLKCFLAGS="-O2" LIBDIRSUFFIX="" fi set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$GITREV tar xvf $CWD/$PRGNAM-$GITREV.tar.gz cd $PRGNAM-$GITREV # this is a git submodule, but not filled when directly downloading a revision rm -rf doc/theme tar xvf $CWD/sphinx-bootstrap-theme-f32f006f06092eb57814b41fe66e1b423d622e88.tar.gz mv sphinx-bootstrap-theme-f32f006f06092eb57814b41fe66e1b423d622e88 doc/theme chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ -o -perm 511 \) -exec chmod 755 {} \; -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; # manually set the version - will be removed when 2.7.0 is finally released echo "2.6.0" > .version sed -i 's/^ version = dotversion.getText.*$/ version = "2.6.0.24-gc977952"/' ant/build.gant sed -i 's/^ release = version/ release = "2.6.0"/' ant/build.gant # http://eclim.org/install.html#install-source ( # rebuild nailgun cd org.eclim/nailgun chmod +x configure sed -i 's/ -s -O3//' Makefile.in CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure make find . -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true ) chmod +x bin/sphinx # allow building with root - eek sed -i "s/'root'/'dummy'/g" ant/build.gant # eclim fails to build with ant-1.9.7 on slackbuilds.org # revert gant jar to fix # https://github.com/ervandew/eclim/issues/330 rm -f ant/lib/gant-1.9.11-patched.jar cp $CWD/gant_groovy2.2-1.9.11.jar ant/lib sed -i '/useCache=/d' build.xml sed -i '/cacheDir=/d' build.xml ECLIPSE_HOME=${ECLIPSE_HOME:-/opt/eclipse-java} ECLIPSE_HOME=${ECLIPSE_HOME%/} # thanks to the archlinux maintainer (thanks to mikezackles) sed -i \ -e "s|File(getVariable('eclipse')|File('$ECLIPSE_HOME/'|g" \ -e 's|${user.home}/\.|${vim.files}/|g' \ -e '68,88d' \ ant/build.gant ant build -Declipse.home=$ECLIPSE_HOME -Dvim.files=/usr/share/vim/vimfiles mkdir -p $PKG/usr/share/vim/vimfiles mkdir -p $PKG$ECLIPSE_HOME ant docs vimdocs -Declipse.home=$ECLIPSE_HOME -Dvim.files=$PKG/usr/share/vim/vimfiles ant deploy -Declipse.home=$PKG$ECLIPSE_HOME -Dvim.files=$PKG/usr/share/vim/vimfiles # manually set the version - will be removed when 2.7.0 is finally released ECLIM_VERSION=2.6.0.24-gc977952 # tidy up sed -i "s#$PKG##" $PKG$ECLIPSE_HOME/plugins/org.eclim_$ECLIM_VERSION/bin/eclimd \ $PKG$ECLIPSE_HOME/plugins/org.eclim_$ECLIM_VERSION/plugin.properties \ $PKG/usr/share/vim/vimfiles/eclim/plugin/eclim.vim sed -i "s#\${eclipse.home}#$ECLIPSE_HOME#" $PKG$ECLIPSE_HOME/plugins/org.eclim_$ECLIM_VERSION/bin/native/linux/eclimd $PKG$ECLIPSE_HOME/plugins/org.eclim_$ECLIM_VERSION/bin/native/linux/eclimd.desktop find $PKG$ECLIPSE_HOME/plugins/org.eclim_$ECLIM_VERSION/nailgun \! -name ng -mindepth 1 -print0 | xargs -0 rm -rf rm -rf build/doc/site/.doctrees mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ build/doc/site \ $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild 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}