[arch-commits] Commit in scponly/repos/community-x86_64 (4 files)

Jelle van der Waa jelle at archlinux.org
Sat Jun 2 14:40:08 UTC 2018


    Date: Saturday, June 2, 2018 @ 14:40:06
  Author: jelle
Revision: 337678

archrelease: copy trunk to community-x86_64

Added:
  scponly/repos/community-x86_64/PKGBUILD
    (from rev 337676, scponly/trunk/PKGBUILD)
  scponly/repos/community-x86_64/setup_chroot.sh
    (from rev 337676, scponly/trunk/setup_chroot.sh)
Deleted:
  scponly/repos/community-x86_64/PKGBUILD
  scponly/repos/community-x86_64/setup_chroot.sh

-----------------+
 PKGBUILD        |   72 +++----
 setup_chroot.sh |  550 +++++++++++++++++++++++++++---------------------------
 2 files changed, 311 insertions(+), 311 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2018-06-02 14:39:56 UTC (rev 337677)
+++ PKGBUILD	2018-06-02 14:40:06 UTC (rev 337678)
@@ -1,36 +0,0 @@
-# $Id$
-# Maintainer: Sergej Pupykin <pupykin.s+arch at gmail.com>
-# Contributor: Roberto Alsina <ralsina at kde.org>
-
-pkgname=scponly
-pkgver=4.8
-pkgrel=9
-pkgdesc="A limited shell for ssh/scp"
-arch=(i686 x86_64)
-url="http://sublimation.org/scponly/"
-depends=('glibc')
-makedepends=('openssh')
-license=('custom')
-options=(docs)
-source=(http://downloads.sourceforge.net/sourceforge/scponly/scponly-$pkgver.tgz
-	setup_chroot.sh)
-md5sums=('139ac9abd7f3b8dbc5c5520745318f8a'
-         'a5e26c355cf4f127a1f2fdf2fb1582cc')
-
-build() {
-  cd $srcdir/$pkgname-$pkgver
-  [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc \
-	--enable-scp-compat --enable-winscp-compat --enable-chrooted-binary \
-	--sbindir=/usr/bin
-  sed -i 's|^#elif|#else|' helper.c
-  make
-}
-
-package() {
-  cd $srcdir/$pkgname-$pkgver
-  make DESTDIR=$pkgdir install
-  install -D -m0644 COPYING $pkgdir/usr/share/licenses/scponly/COPYING
-  mv $pkgdir/usr/man $pkgdir/usr/share/
-  mkdir -p $pkgdir/usr/share/doc/scponly
-  cp $srcdir/setup_chroot.sh config.h $pkgdir/usr/share/doc/scponly/
-}

Copied: scponly/repos/community-x86_64/PKGBUILD (from rev 337676, scponly/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2018-06-02 14:40:06 UTC (rev 337678)
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch at gmail.com>
+# Contributor: Roberto Alsina <ralsina at kde.org>
+
+pkgname=scponly
+pkgver=4.8
+pkgrel=10
+pkgdesc="A limited shell for ssh/scp"
+arch=(x86_64)
+url="http://sublimation.org/scponly/"
+depends=('glibc')
+makedepends=('openssh')
+license=('custom')
+options=(docs)
+source=(https://downloads.sourceforge.net/sourceforge/scponly/scponly-$pkgver.tgz
+	setup_chroot.sh)
+sha256sums=('1693dd678355749c5d9e48ecdd4628dbfe71d82955afde950ee8d88b5adc01cf'
+            'c194a70d992cf265f35b70808edb6ffeac7ef321dbd6bf12038e9a55f3f6799d')
+
+build() {
+  cd "$srcdir"/$pkgname-$pkgver
+  [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc \
+	--enable-scp-compat --enable-winscp-compat --enable-chrooted-binary \
+	--sbindir=/usr/bin
+  sed -i 's|^#elif|#else|' helper.c
+  make
+}
+
+package() {
+  cd "$srcdir"/$pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+  install -D -m0644 COPYING "$pkgdir"/usr/share/licenses/scponly/COPYING
+  mv "$pkgdir"/usr/man "$pkgdir"/usr/share/
+  mkdir -p "$pkgdir"/usr/share/doc/scponly
+  cp "$srcdir"/setup_chroot.sh config.h "$pkgdir"/usr/share/doc/scponly/
+}

Deleted: setup_chroot.sh
===================================================================
--- setup_chroot.sh	2018-06-02 14:39:56 UTC (rev 337677)
+++ setup_chroot.sh	2018-06-02 14:40:06 UTC (rev 337678)
@@ -1,275 +0,0 @@
-#!/bin/sh
-#
-# handy functions:
-#
-# a function to display a failure message and then exit 
-fail ( ) {
-	echo -e $@
-	exit 1
-}
-
-# "get with default" function
-# this function prompts the user with a query and default reply
-# it returns the user reply
-getwd ( ) {
-	query="$1"
-	default="$2"
-	echo -en "$query [$default]" | cat >&2
-	read response
-	if [ x$response = "x" ]; then
-		response=$default
-	fi
-	echo $response
-}
-
-# "get yes no" function
-# this function prompts the user with a query and will continue to do so
-# until they reply with either "y" or "n"
-getyn ( ) {
-	query="$@"
-	echo -en $query | cat >&2
-	read response
-	while [ x$response != "xy" -a x$response != "xn" ]; do
-		echo -e "\n'y' or 'n' only please...\n" | cat >&2
-		echo -en $query | cat >&2
-		read response
-	done	
-	echo $response
-}
-
-# configuration 
-#
-# set defaults
-defaultusername="scponly"
-defaulthomedirprefix="/home"
-defaultwriteabledir="incoming"
-
-osname=`uname -s | tr ' ' '_'`
-# pathname to platform/OS specific setup scripts
-prescript="build_extras/arch/$osname.pre.sh"
-postscript="build_extras/arch/$osname.post.sh"
-
-# the following is a list of binaries that will be staged in the target dir
-BINARIES=`grep '#define PROG_' config.h | cut -f2 -d\" | grep -v ^cd$`
-
-# we set the install path in a variable so the presetup script can overwrite it on systems
-# which require it
-INSTALL_PATHNAME="install -c"
-
-# attempt a best guess at required libs, we can append things in the presetup script if we need to
-LDSOFOUND=0
-
-# default to useradd, not pw
-USE_PW=0
-
-if [ x/usr/bin/ldd = x ]; then
-	echo "this script requires the program ldd to determine which"
-	fail "shared libraries to copy into your chrooted dir..."
-fi
-
-if [ x`uname -s` = "xOpenBSD" ]; then
-	for bin in $BINARIES; do
-		GREP_LIST="$GREP_LIST -e $bin"
-	done
-	LIB_LIST=`ldd $BINARIES 2> /dev/null | /usr/bin/tr -s " " | cut -f5 -d" " | /usrgrep -v "^Name" | /usrgrep -v $GREP_LIST | /usr/bin/sort -u`
-else
-	LIB_LIST=`ldd $BINARIES 2> /dev/null | cut -f2 -d\> | cut -f1 -d\( | grep "^ " | sort -u`
-fi
-
-#
-#	we also need to add some form of ld.so, here are some good guesses.
-#
-LDSO_LIST="/lib/ld.so /libexec/ld-elf.so /libexec/ld-elf.so.1 /usr/libexec/ld.so /lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2 /lib/ld-linux.so.2 /usr/libexec/ld-elf.so.1"
-for lib in $LDSO_LIST; do
-	if [ -f $lib ]; then
-		LDSOFOUND=1;
-		LIB_LIST="$LIB_LIST $lib"
-	fi
-done
-
-#
-#	TODO - i've since forgotten which OS this is for, it should be relocated to a presetup script
-#
-ls /lib/libnss_compat* > /dev/null 2>&1 
-if [ $? -eq 0 ]; then
-	LIB_LIST="$LIB_LIST /lib/libnss_compat*"
-fi
-
-ls /lib/libnss_files* > /dev/null 2>&1 
-if [ $? -eq 0 ]; then
-	LIB_LIST="$LIB_LIST /lib/libnss_files*"
-fi
-
-# check that the configure options are correct for chrooted operation:
-
-if [ x/usr/sbin/useradd = x ]; then
-    if [ x = x ]; then
-		echo "this script requires the program useradd or pw to add your"
-		fail "chrooted scponly user."
-	else
-  		USE_PW=1;
-    fi
-fi
-
-# we need to be root
-if [ `id -u` != "0" ]; then
-	fail "you must be root to run this script\n"
-fi
-
-echo
-echo Next we need to set the home directory for this scponly user.
-echo please note that the user\'s home directory MUST NOT be writeable
-echo by the scponly user.  this is important so that the scponly user
-echo cannot subvert the .ssh configuration parameters.
-echo
-echo for this reason, a writeable subdirectory will be created that
-echo the scponly user can write into.  
-echo
-
-if [ "$2" != "" ] ; then
-	targetuser=$2
-else
-targetuser=`getwd "Username to install" "$defaultusername"`
-fi
-username_collision=`id $targetuser > /dev/null 2> /dev/null; echo $?`
-if [ $username_collision -eq 0 ] ; then
-	fail "the user $targetuser already exists.  please remove this user and their home directory and try again."
-fi 
-
-if [ "$1" != "" ] ; then
-	targetdir=$1
-else
-targetdir=`getwd "home directory you wish to set for this user" "$defaulthomedirprefix/$targetuser"`
-fi
-
-if [ "$3" != "" ] ; then
-	writeabledir=$3
-else
-writeabledir=`getwd "name of the writeable subdirectory" "$defaultwriteabledir"`
-fi
-
-#
-#	if you would like to overwrite/extend any of the variables above, do so in the system specific
-#	presetup script.  
-#
-if [ -f "$prescript" ]; then
-#
-#	this system has a pre-chroot setup script, lets run it
-#
-	. "$prescript"
-fi
-
-# if neither the presetup script or the best guess could find ld.so, we have to bail here
-if [ $LDSOFOUND -eq 0 ]; then
-	fail i cant find your equivalent of ld.so
-fi
-
-#
-#	ACTUAL MODIFICATIONS BEGIN HERE
-#
-
-# this part shouldnt strictly be requried, but i'll leave it in until i'm sure of it
-if [ ! -d $targetdir ]; then
-	$INSTALL_PATHNAME -d $targetdir
-	chmod 755 $targetdir
-fi
-
-if [ ! -d $targetdir/etc ]; then
-	$INSTALL_PATHNAME -d $targetdir/etc
-	chown 0:0 $targetdir/etc
-	chmod 755 $targetdir/etc
-fi
-
-# add all our binaries
-for bin in $BINARIES; do
-	$INSTALL_PATHNAME -d $targetdir/`/usr/bin/dirname $bin`
-	$INSTALL_PATHNAME $bin $targetdir$bin
-done
-
-# and the libs they require
-if [ "x$LIB_LIST" != "x" ]; then
-	for lib in $LIB_LIST; do
-		$INSTALL_PATHNAME -d $targetdir/`/usr/bin/dirname $lib`
-		$INSTALL_PATHNAME $lib $targetdir/$lib
-	done
-fi
-
-# /dev/null is needed inside the chroot
-mkdir -p $targetdir/dev
-mknod -m 666 $targetdir/dev/null c 1 3
-
-if [ "x$USE_PW" = x0 ] ; then
-    /usr/sbin/useradd -d "$targetdir" -s "/usr/sbin/scponlyc" $targetuser
-    if [ $? -ne 0 ]; then
-         fail "if this user exists, remove it and try again"
-    fi
-else
-     useradd -n $targetuser -s "/usr/sbin/scponlyc" -d "$targetdir"
-    if [ $? -ne 0 ]; then
-         fail "if this user exists, remove it and try again"
-    fi
-fi 
-
-#
-#	we must ensure certain directories are root owned.
-#
-chown 0:0 $targetdir 
-if [ -d $targetdir/.ssh ]; then
-	chown 0:0 $targetdir/.ssh
-fi
-
-if [ ! -d $targetdir/$writeabledir ]; then
-	echo -e "\ncreating  $targetdir/$writeabledir directory for uploading files"
-	$INSTALL_PATHNAME -o $targetuser -d $targetdir/$writeabledir
-fi
-
-#
-#	set the perms on the writeable dir so that the new user owns it
-#
-newuid=`id -u $targetuser`
-newgid=`id -g $targetuser`
-chown $newuid:$newgid $targetdir/$writeabledir
-
-if [ -f "$postscript" ]; then
-#
-#   this system has a post-chroot setup script, lets run it
-#
-    . "$postscript"
-else
-#
-#	otherwise, revert to the old "best guess" system, which sucks
-#
-	echo
-	echo "Your platform ($osname) does not have a platform specific setup script."
-	echo "This install script will attempt a best guess."
-	echo "If you perform customizations, please consider sending me your changes."
-	echo "Look to the templates in build_extras/arch."
-	echo " - joe at sublimation dot org"
-	echo
-	if [ x = x ]; then
-	#
-	#	ok we dont have pwd_mkdb, lets improvise:
-	#
-		grep $targetuser /etc/passwd > $targetdir/etc/passwd
-		# Debian: copy /etc/group into the jail, for /usr/bin/groups to work
-		cp /etc/group $targetdir/etc/group
-
-	else
-	#
-	#	this is for systems which do have pwd_mkdb
-	#
-		grep $targetuser /etc/master.passwd > $targetdir/etc/master.passwd
-		 -d "$targetdir/etc" $targetdir/etc/master.passwd
-		rm -rf $targetdir/etc/master.passwd $targetdir/etc/spwd.db
-	fi
-fi
-
-#
-#   the final step is setting the password
-#
-echo "please set the password for $targetuser:"
-passwd $targetuser
-
-echo "if you experience a warning with winscp regarding groups, please install"
-echo "the provided hacked out fake groups program into your chroot, like so:"
-echo "cp groups $targetdir/bin/groups" 

Copied: scponly/repos/community-x86_64/setup_chroot.sh (from rev 337676, scponly/trunk/setup_chroot.sh)
===================================================================
--- setup_chroot.sh	                        (rev 0)
+++ setup_chroot.sh	2018-06-02 14:40:06 UTC (rev 337678)
@@ -0,0 +1,275 @@
+#!/bin/sh
+#
+# handy functions:
+#
+# a function to display a failure message and then exit 
+fail ( ) {
+	echo -e $@
+	exit 1
+}
+
+# "get with default" function
+# this function prompts the user with a query and default reply
+# it returns the user reply
+getwd ( ) {
+	query="$1"
+	default="$2"
+	echo -en "$query [$default]" | cat >&2
+	read response
+	if [ x$response = "x" ]; then
+		response=$default
+	fi
+	echo $response
+}
+
+# "get yes no" function
+# this function prompts the user with a query and will continue to do so
+# until they reply with either "y" or "n"
+getyn ( ) {
+	query="$@"
+	echo -en $query | cat >&2
+	read response
+	while [ x$response != "xy" -a x$response != "xn" ]; do
+		echo -e "\n'y' or 'n' only please...\n" | cat >&2
+		echo -en $query | cat >&2
+		read response
+	done	
+	echo $response
+}
+
+# configuration 
+#
+# set defaults
+defaultusername="scponly"
+defaulthomedirprefix="/home"
+defaultwriteabledir="incoming"
+
+osname=`uname -s | tr ' ' '_'`
+# pathname to platform/OS specific setup scripts
+prescript="build_extras/arch/$osname.pre.sh"
+postscript="build_extras/arch/$osname.post.sh"
+
+# the following is a list of binaries that will be staged in the target dir
+BINARIES=`grep '#define PROG_' config.h | cut -f2 -d\" | grep -v ^cd$`
+
+# we set the install path in a variable so the presetup script can overwrite it on systems
+# which require it
+INSTALL_PATHNAME="install -c"
+
+# attempt a best guess at required libs, we can append things in the presetup script if we need to
+LDSOFOUND=0
+
+# default to useradd, not pw
+USE_PW=0
+
+if [ x/usr/bin/ldd = x ]; then
+	echo "this script requires the program ldd to determine which"
+	fail "shared libraries to copy into your chrooted dir..."
+fi
+
+if [ x`uname -s` = "xOpenBSD" ]; then
+	for bin in $BINARIES; do
+		GREP_LIST="$GREP_LIST -e $bin"
+	done
+	LIB_LIST=`ldd $BINARIES 2> /dev/null | /usr/bin/tr -s " " | cut -f5 -d" " | /usrgrep -v "^Name" | /usrgrep -v $GREP_LIST | /usr/bin/sort -u`
+else
+	LIB_LIST=`ldd $BINARIES 2> /dev/null | cut -f2 -d\> | cut -f1 -d\( | grep "^ " | sort -u`
+fi
+
+#
+#	we also need to add some form of ld.so, here are some good guesses.
+#
+LDSO_LIST="/lib/ld.so /libexec/ld-elf.so /libexec/ld-elf.so.1 /usr/libexec/ld.so /lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2 /lib/ld-linux.so.2 /usr/libexec/ld-elf.so.1"
+for lib in $LDSO_LIST; do
+	if [ -f $lib ]; then
+		LDSOFOUND=1;
+		LIB_LIST="$LIB_LIST $lib"
+	fi
+done
+
+#
+#	TODO - i've since forgotten which OS this is for, it should be relocated to a presetup script
+#
+ls /lib/libnss_compat* > /dev/null 2>&1 
+if [ $? -eq 0 ]; then
+	LIB_LIST="$LIB_LIST /lib/libnss_compat*"
+fi
+
+ls /lib/libnss_files* > /dev/null 2>&1 
+if [ $? -eq 0 ]; then
+	LIB_LIST="$LIB_LIST /lib/libnss_files*"
+fi
+
+# check that the configure options are correct for chrooted operation:
+
+if [ x/usr/sbin/useradd = x ]; then
+    if [ x = x ]; then
+		echo "this script requires the program useradd or pw to add your"
+		fail "chrooted scponly user."
+	else
+  		USE_PW=1;
+    fi
+fi
+
+# we need to be root
+if [ `id -u` != "0" ]; then
+	fail "you must be root to run this script\n"
+fi
+
+echo
+echo Next we need to set the home directory for this scponly user.
+echo please note that the user\'s home directory MUST NOT be writeable
+echo by the scponly user.  this is important so that the scponly user
+echo cannot subvert the .ssh configuration parameters.
+echo
+echo for this reason, a writeable subdirectory will be created that
+echo the scponly user can write into.  
+echo
+
+if [ "$2" != "" ] ; then
+	targetuser=$2
+else
+targetuser=`getwd "Username to install" "$defaultusername"`
+fi
+username_collision=`id $targetuser > /dev/null 2> /dev/null; echo $?`
+if [ $username_collision -eq 0 ] ; then
+	fail "the user $targetuser already exists.  please remove this user and their home directory and try again."
+fi 
+
+if [ "$1" != "" ] ; then
+	targetdir=$1
+else
+targetdir=`getwd "home directory you wish to set for this user" "$defaulthomedirprefix/$targetuser"`
+fi
+
+if [ "$3" != "" ] ; then
+	writeabledir=$3
+else
+writeabledir=`getwd "name of the writeable subdirectory" "$defaultwriteabledir"`
+fi
+
+#
+#	if you would like to overwrite/extend any of the variables above, do so in the system specific
+#	presetup script.  
+#
+if [ -f "$prescript" ]; then
+#
+#	this system has a pre-chroot setup script, lets run it
+#
+	. "$prescript"
+fi
+
+# if neither the presetup script or the best guess could find ld.so, we have to bail here
+if [ $LDSOFOUND -eq 0 ]; then
+	fail i cant find your equivalent of ld.so
+fi
+
+#
+#	ACTUAL MODIFICATIONS BEGIN HERE
+#
+
+# this part shouldnt strictly be requried, but i'll leave it in until i'm sure of it
+if [ ! -d $targetdir ]; then
+	$INSTALL_PATHNAME -d $targetdir
+	chmod 755 $targetdir
+fi
+
+if [ ! -d $targetdir/etc ]; then
+	$INSTALL_PATHNAME -d $targetdir/etc
+	chown 0:0 $targetdir/etc
+	chmod 755 $targetdir/etc
+fi
+
+# add all our binaries
+for bin in $BINARIES; do
+	$INSTALL_PATHNAME -d $targetdir/`/usr/bin/dirname $bin`
+	$INSTALL_PATHNAME $bin $targetdir$bin
+done
+
+# and the libs they require
+if [ "x$LIB_LIST" != "x" ]; then
+	for lib in $LIB_LIST; do
+		$INSTALL_PATHNAME -d $targetdir/`/usr/bin/dirname $lib`
+		$INSTALL_PATHNAME $lib $targetdir/$lib
+	done
+fi
+
+# /dev/null is needed inside the chroot
+mkdir -p $targetdir/dev
+mknod -m 666 $targetdir/dev/null c 1 3
+
+if [ "x$USE_PW" = x0 ] ; then
+    /usr/sbin/useradd -d "$targetdir" -s "/usr/sbin/scponlyc" $targetuser
+    if [ $? -ne 0 ]; then
+         fail "if this user exists, remove it and try again"
+    fi
+else
+     useradd -n $targetuser -s "/usr/sbin/scponlyc" -d "$targetdir"
+    if [ $? -ne 0 ]; then
+         fail "if this user exists, remove it and try again"
+    fi
+fi 
+
+#
+#	we must ensure certain directories are root owned.
+#
+chown 0:0 $targetdir 
+if [ -d $targetdir/.ssh ]; then
+	chown 0:0 $targetdir/.ssh
+fi
+
+if [ ! -d $targetdir/$writeabledir ]; then
+	echo -e "\ncreating  $targetdir/$writeabledir directory for uploading files"
+	$INSTALL_PATHNAME -o $targetuser -d $targetdir/$writeabledir
+fi
+
+#
+#	set the perms on the writeable dir so that the new user owns it
+#
+newuid=`id -u $targetuser`
+newgid=`id -g $targetuser`
+chown $newuid:$newgid $targetdir/$writeabledir
+
+if [ -f "$postscript" ]; then
+#
+#   this system has a post-chroot setup script, lets run it
+#
+    . "$postscript"
+else
+#
+#	otherwise, revert to the old "best guess" system, which sucks
+#
+	echo
+	echo "Your platform ($osname) does not have a platform specific setup script."
+	echo "This install script will attempt a best guess."
+	echo "If you perform customizations, please consider sending me your changes."
+	echo "Look to the templates in build_extras/arch."
+	echo " - joe at sublimation dot org"
+	echo
+	if [ x = x ]; then
+	#
+	#	ok we dont have pwd_mkdb, lets improvise:
+	#
+		grep $targetuser /etc/passwd > $targetdir/etc/passwd
+		# Debian: copy /etc/group into the jail, for /usr/bin/groups to work
+		cp /etc/group $targetdir/etc/group
+
+	else
+	#
+	#	this is for systems which do have pwd_mkdb
+	#
+		grep $targetuser /etc/master.passwd > $targetdir/etc/master.passwd
+		 -d "$targetdir/etc" $targetdir/etc/master.passwd
+		rm -rf $targetdir/etc/master.passwd $targetdir/etc/spwd.db
+	fi
+fi
+
+#
+#   the final step is setting the password
+#
+echo "please set the password for $targetuser:"
+passwd $targetuser
+
+echo "if you experience a warning with winscp regarding groups, please install"
+echo "the provided hacked out fake groups program into your chroot, like so:"
+echo "cp groups $targetdir/bin/groups" 



More information about the arch-commits mailing list