diff options
Diffstat (limited to 'app')
-rwxr-xr-x | app/shells/rssh/rssh.SlackBuild | 284 |
1 files changed, 134 insertions, 150 deletions
diff --git a/app/shells/rssh/rssh.SlackBuild b/app/shells/rssh/rssh.SlackBuild index 911e7831..2b48672c 100755 --- a/app/shells/rssh/rssh.SlackBuild +++ b/app/shells/rssh/rssh.SlackBuild @@ -1,183 +1,172 @@ #!/bin/bash # -# rssh.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. +# rssh.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. # -# rssh.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. +# rssh.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 rssh -# - -if [ -s "slack-required" ]; then - echo Recomended and required packages for building rssh are: - cat slack-required | sed -e 's/^/\t/' - if [ "$INTERACT" != "no" ]; then - echo If you dont have those installed, press Ctrl-C. Otherwise, hit ENTER. - read crap -# else -# echo Sleeping 3 seconds... -# sleep 3 - fi -fi - -CWD="`pwd`" +# slackbuild for rssh, by Silvio Rhatto +# requires: +# tested: rssh-2.3.2 +# +# Look for slackbuildrc if [ -f ~/.slackbuildrc ]; then source ~/.slackbuildrc elif [ -f /etc/slackbuildrc ]; then source /etc/slackbuildrc fi -# default settings -PRGNAM="rssh" -PACKAGE="$PRGNAM" +# Set variables +CWD="$(pwd)" +SRC_NAME="rssh" +PKG_NAME="rssh" ARCH=${ARCH:=i486} -VERSION=${VERSION:=2.3.2} -BUILD=${BUILD:=2rha} -SRC_DIR=${SRC:=$CWD} +SRC_VERSION=${VERSION:=2.3.2} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rha} +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:="--sysconfdir=/etc"} +NUMJOBS=${NUMJOBS:=""} -# ------- error codes for 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 - -if [ "$ARCH" == "x86_64" ]; then - LIBDIR=/usr/lib64 -else - LIBDIR=/usr/lib -fi - -PACKAGE_EXT="gz" -KEY="http://www.pizzashack.org/ddmkey.txt" -SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT" -URL="http://easynews.dl.sourceforge.net/sourceforge/$PACKAGE/$SRC" -RTOOL="wget" +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2" + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" fi -SRC_DIR="$SRC_DIR/$PACKAGE" -mkdir -p $SRC_DIR +# 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 -if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then - wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET - wget "$URL.sig" -O "$SRC_DIR/$SRC.sig" || exit $ERROR_WGET -fi +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null -if [ ! -f "$SRC_DIR/$PACKAGE-key.asc" ]; then - # $KEY url seens broken - # wget "$KEY" -O "$SRC_DIR/$PACKAGE-key.asc" && gpg --import $SRC_DIR/$PACKAGE-key.asc - gpg --import <<EOGPG ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.6 (GNU/Linux) - -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 -xu6I00NvAJwJeUXDTl3izErhyjY8haSynXuEbw== -=cblu ------END PGP PUBLIC KEY BLOCK----- -EOGPG +# 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 +SRC="$SRC_NAME-$VERSION.tar.gz" +URL="http://downloads.sourceforge.net/rssh/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! gunzip -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET fi -gpg --verify $SRC_DIR/$SRC.sig $SRC_DIR/$SRC || exit $ERROR_GPG +# Import minimized signing key from +if echo http://www.pizzashack.org/ddmkey.txt | grep -q -v "SIGNING KEY URL"; then + lynx -dump http://www.pizzashack.org/ddmkey.txt | gpg --import || exit $ERROR_GPG +else + gpg --import << EOKEY || exit $ERROR_GPG +[[SIGNING KEY]] +EOKEY +fi -TMP="$TMP/$PACKAGE" -rm -rf $TMP -mkdir -p $TMP -cd $TMP +# Download source's signature if necessary and check it +if echo [[SIGNING URL]] | grep -q -v "SIGNING URL"; then + SIGNATURE="`basename [[SIGNING URL]]`" + if [ ! -s "$SRC_DIR/$SIGNATURE" ]; then + wget "[[SIGNING URL]]" -O "$SRC_DIR/$SIGNATURE" || exit $ERROR_WGET + fi +else + if [ -s "$SRC_DIR/$SRC.sig" ]; then + SIGNATURE="$SRC.sig" + elif [ -s "$SRC_DIR/$SRC.asc" ]; then + SIGNATURE="$SRC.asc" + else + echo Trying to get signature file from $URL.sig... + if wget "$URL.sig" -O "$SRC_DIR/$SRC.sig"; then + SIGNATURE="$SRC.sig" + else + rm $SRC_DIR/$SRC.sig + echo Trying to get signature file from $URL.asc... + if wget "$URL.asc" -O "$SRC_DIR/$SRC.asc"; then + SIGNATURE="$SRC.asc" + else + rm $SRC_DIR/$SRC.asc + echo "Error getting source's signature file" + exit $ERROR_GPG + fi + fi + fi +fi -rm -rf $PACKAGE-$VERSION $PACKAGE-$VERSION-$ARCH-$BUILD.tgz +echo Checking $SRC_DIR/$SRC with gpg using $SRC_DIR/$SIGNATURE... +gpg --verify "$SRC_DIR/$SIGNATURE" "$SRC_DIR/$SRC" || exit $ERROR_GPG +echo Success. -tar xvf $SRC_DIR/$PACKAGE-$VERSION.tar.$PACKAGE_EXT || exit $ERROR_TAR -cd $PACKAGE-$VERSION +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $8 }'`" +cd "$PKG_SRC" -# small fix for Makefile correctly honour DESTDIR +# Makefile DESTDIR fix sed -e 's/chmod u+s \$(libexecdir)\/rssh_chroot_helper/chmod u+s \$(DESTDIR)\$(libexecdir)\/rssh_chroot_helper/' \ Makefile.in > Makefile.in.new && mv Makefile.in.new Makefile.in -./configure --prefix=/usr --sysconfdir=/etc --libdir=$LIBDIR || exit $ERROR_CONF -make || exit $ERROR_MAKE -make install DESTDIR=$TMP/package-$PACKAGE || exit $ERROR_INSTALL - -CWD="`pwd`" - -mkdir -p $TMP/package-$PACKAGE/install -cd $TMP/package-$PACKAGE - -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 - -mv etc/rssh.conf etc/rssh.conf.new +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# 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="AUTHORS CHROOT COPYING ChangeLog INSTALL LICENSE NEWS README SECURITY TODO" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done -cat << EOF > install/slack-desc +# 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 '|' @@ -185,7 +174,7 @@ cat << EOF > install/slack-desc # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. - |-----handy-ruler-----------------------------------------------------| + |-----handy-ruler---------------------------------------------------------| rssh: rssh: restricted shell for ssh connections rssh: rssh: rssh is a restricted shell for use with OpenSSH, allowing only scp @@ -197,18 +186,13 @@ rssh: rssh: rssh: rssh: -EOF +EODESC -# docs -mkdir -p usr/doc/$PACKAGE-$VERSION -cp $CWD/{AUTHORS,CHROOT,COPYING,ChangeLog,INSTALL,LICENSE,NEWS,README,SECURITY,TODO} usr/doc/$PACKAGE-$VERSION/ - -# install script -echo '( if [ ! -f "etc/rssh.conf" ]; then mv etc/rssh.conf.new etc/rssh.conf; fi )' > install/doinst.sh - -makepkg -c y $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG +# 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 $TMP + rm -rf "$PKG_WORK" "$PKG" fi - |