#!/bin/bash # # eclipse.SlackBuild is free software; you can redistribute # it and/or modify it under the terms of the GNU General Public # License as published by the Free Software Foundation; either # version 2 of the License, or any later version. # # eclipse.SlackBuild is distributed in the hope that it # will be useful, but WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this program; if not, write to the Free # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, # MA 02111-1307, USA # # SlackBuild for Eclipse (Classic) # http://www.eclipse.org/ # # Author: Luis ( luis at riseup d0t net ) # # Look for slackbuildrc if [ -f ~/.slackbuildrc ]; then source ~/.slackbuildrc elif [ -f /etc/slackbuildrc ]; then source /etc/slackbuildrc fi # Set variables CWD="$(pwd)" SRC_NAME="eclipse" PKG_NAME="eclipse" ARCH=${ARCH:=i386} SRC_VERSION=${VERSION:=R-3.3.1.1-200710231652} PKG_VERSION="$(echo "$SRC_VERSION" | cut -d "-" -f 2)" BUILD=${BUILD:=1ls} SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME TMP=${TMP:=/tmp} PKG=${PKG:=$TMP/package-$PKG_NAME} REPOS=${REPOS:=$TMP} PREFIX=${PREFIX:=/usr} PKG_WORK="$TMP/$SRC_NAME" CONF_OPTIONS=${CONF_OPTIONS:=} NUMJOBS=${NUMJOBS:=} # Set system libraries' path and source name #+Also, make sure $ARCH is set either to x86_64 or to i386 if [ "$ARCH" = "x86_64" ]; then LIBDIR="$PREFIX/lib64" SRC="$SRC_NAME-SDK-$PKG_VERSION-linux-gtk-x86_64.tar.gz" else LIBDIR="$PREFIX/lib" SRC="$SRC_NAME-SDK-$PKG_VERSION-linux-gtk.tar.gz" ARCH="i386" fi # Set error codes (used by createpkg) ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 # Clean up any leftovers of previous builds rm -rf "$PKG_WORK" 2> /dev/null rm -rf "$PKG" 2> /dev/null # Create directories if necessary mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR mkdir -p "$PKG" || exit $ERROR_MKDIR mkdir -p "$REPOS" || exit $ERROR_MKDIR mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR # Dowload source if necessary URL="http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/$SRC_VERSION" if [ ! -s "$SRC_DIR/$SRC" ] || ! gzip -t "$SRC_DIR/$SRC" 2> /dev/null; then wget "$URL/$SRC" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET fi # Download source's MD5 checksum if necessary and check it if [ ! -s "$SRC_DIR/$SRC.md5" ]; then wget "$URL/checksum/$SRC.md5" -O "$SRC_DIR/$SRC.md5" || exit $ERROR_WGET fi MD5SUM_SRC="$(md5sum "$SRC_DIR/$SRC" | cut -d " " -f 1)" MD5SUM_URL="$(grep "$SRC[ \t]*$" "$SRC_DIR/$SRC.md5" | cut -d " " -f 1)" [ "$MD5SUM_SRC" == "$MD5SUM_URL" ] || exit $ERROR_MD5 # Untar cd "$PKG_WORK" tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR PKG_SRC=`ls -l | awk '/^d/ { print $8 }'` cd "$PKG_SRC" # Install mkdir -p "$PKG/$LIBDIR/eclipse-$PKG_VERSION" || exit $ERROR_MKDIR cp -a * "$PKG/$LIBDIR/eclipse-$PKG_VERSION" || exit $ERROR_INSTALL chown -R root:root "$PKG/$LIBDIR" ( cd "$PKG/$LIBDIR" ln -sf eclipse-$PKG_VERSION eclipse ) # Install /usr/bin wrapper mkdir -p "$PKG/$PREFIX/bin" || exit $ERROR_MKDIR cat << EOSCRIPT > "$PKG/$PREFIX/bin/eclipse" #!/bin/sh exec $LIBDIR/eclipse/eclipse "\$@" EOSCRIPT chmod 755 "$PKG/$PREFIX/bin/eclipse" # Strip binaries ( cd "$PKG" find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null ) # Install documentation DOCS="about.html about_files/ epl-v10.html notice.html readme/*" mkdir -p "$PKG/$PREFIX/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR cp -a $DOCS "$PKG/$PREFIX/doc/$PKG_NAME-$PKG_VERSION" &> /dev/null # Add package description (slack-desc) mkdir -p "$PKG/install" || exit $ERROR_MKDIR cat << EODESC > "$PKG/install/slack-desc" # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler-------------------------------------------------------| eclipse: eclipse (Eclipse Classic) eclipse: eclipse: Eclipse is an open source platform-independent software framework. eclipse: The Java Development Tools (JDT), a Java IDE that provides code eclipse: validation, incremental compilation, cross-referencing, code assist eclipse: and many other features, come as part of the Eclipse Classic package. eclipse: eclipse: For more information, http://www.eclipse.org/ eclipse: eclipse: eclipse: EODESC # Build the package cd "$PKG" makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG # Delete source and build directories if requested if [ "$CLEANUP" == "yes" ]; then rm -rf "$PKG_WORK" "$PKG" fi