summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2007-04-23 13:20:41 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2007-04-23 13:20:41 +0000
commitd672cab51e3376a5f117a1b35896d2c6b833217c (patch)
tree639021e71cf924752e8e234cc05fb4c133f78e1b /net-misc/scponly
parentUnmask qa and inquisitio use flags. (diff)
downloadgentoo-2-d672cab51e3376a5f117a1b35896d2c6b833217c.tar.gz
gentoo-2-d672cab51e3376a5f117a1b35896d2c6b833217c.tar.bz2
gentoo-2-d672cab51e3376a5f117a1b35896d2c6b833217c.zip
Fixed chroot setup problem, bug #172822.
(Portage version: 2.1.2.4)
Diffstat (limited to 'net-misc/scponly')
-rw-r--r--net-misc/scponly/ChangeLog9
-rw-r--r--net-misc/scponly/files/digest-scponly-4.6-r23
-rw-r--r--net-misc/scponly/scponly-4.6-r2.ebuild147
3 files changed, 157 insertions, 2 deletions
diff --git a/net-misc/scponly/ChangeLog b/net-misc/scponly/ChangeLog
index 72b6004ee9df..99e37cdbef7e 100644
--- a/net-misc/scponly/ChangeLog
+++ b/net-misc/scponly/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for net-misc/scponly
-# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/scponly/ChangeLog,v 1.27 2006/09/14 16:51:27 matsuu Exp $
+# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/scponly/ChangeLog,v 1.28 2007/04/23 13:20:41 matsuu Exp $
+
+*scponly-4.6-r2 (23 Apr 2007)
+
+ 23 Apr 2007; MATSUU Takuto <matsuu@gentoo.org> +scponly-4.6-r2.ebuild:
+ Fixed chroot setup problem, bug #172822.
14 Sep 2006; MATSUU Takuto <matsuu@gentoo.org> -scponly-4.6.ebuild,
scponly-4.6-r1.ebuild:
diff --git a/net-misc/scponly/files/digest-scponly-4.6-r2 b/net-misc/scponly/files/digest-scponly-4.6-r2
new file mode 100644
index 000000000000..7db9b807bbdd
--- /dev/null
+++ b/net-misc/scponly/files/digest-scponly-4.6-r2
@@ -0,0 +1,3 @@
+MD5 0425cb868cadd026851238452f1db907 scponly-4.6.tgz 96578
+RMD160 c30d4b02314b53dce54d2f3f8e531c18792c7f60 scponly-4.6.tgz 96578
+SHA256 dfa5a334d66150289a391aea4dc00d1b039c644fd1c628bdeddaa7b0710e01a7 scponly-4.6.tgz 96578
diff --git a/net-misc/scponly/scponly-4.6-r2.ebuild b/net-misc/scponly/scponly-4.6-r2.ebuild
new file mode 100644
index 000000000000..fcbe8f3af8e4
--- /dev/null
+++ b/net-misc/scponly/scponly-4.6-r2.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/scponly/scponly-4.6-r2.ebuild,v 1.1 2007/04/23 13:20:41 matsuu Exp $
+
+inherit eutils
+
+DESCRIPTION="A tiny pseudoshell which only permits scp and sftp"
+HOMEPAGE="http://www.sublimation.org/scponly/"
+SRC_URI="http://www.sublimation.org/scponly/${P}.tgz"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="subversion"
+
+DEPEND="virtual/libc
+ net-misc/openssh
+ subversion? ( dev-util/subversion )"
+
+myuser="scponly"
+myhome="/home/${myuser}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ # Bug 125796
+ epatch "${FILESDIR}"/${P}-helper.patch
+}
+
+src_compile() {
+ PATH="${PATH}:/usr/$(get_libdir)/misc" \
+ econf \
+ --enable-scp-compat \
+ --enable-winscp-compat \
+ --enable-rsync-compat \
+ --enable-chrooted-binary \
+ $(use_enable subversion svn-compat) \
+ $(use_enable subversion svnserv-compat) \
+ || die "./configure failed"
+ emake || die
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die
+
+ dodoc AUTHOR BUILDING-JAILS.TXT CHANGELOG CONTRIB README TODO
+ dodoc setup_chroot.sh
+}
+
+pkg_postinst() {
+ einfo "You might want to run:"
+ einfo "\"emerge --config =${CATEGORY}/${PF}\""
+ einfo "to setup the chroot."
+ einfo "Otherwise you will have to setup chroot manually."
+
+ # two slashes ('//') are used by scponlyc to determine the chroot point.
+ enewgroup ${myuser}
+ enewuser ${myuser} -1 /usr/sbin/scponlyc ${myhome}// ${myuser}
+}
+
+pkg_config() {
+ # pkg_postinst is based on ${S}/setup_chroot.sh.
+
+ einfo "Updating /etc/shells"
+ { grep -v "^/usr/bin/scponly$" /etc/shells;
+ echo "/usr/bin/scponly"
+ } > ${T}/shells
+ cp ${T}/shells /etc/shells
+
+ { grep -v "^/usr/sbin/scponlyc$" /etc/shells;
+ echo "/usr/sbin/scponlyc"
+ } > ${T}/shells
+ cp ${T}/shells /etc/shells
+
+ BINARIES="/usr/$(get_libdir)/misc/sftp-server /bin/ls /usr/bin/scp /bin/rm /bin/ln /bin/mv /bin/chmod /bin/chown /bin/chgrp /bin/mkdir /bin/rmdir /bin/pwd /bin/groups /usr/bin/ld /bin/echo /usr/bin/rsync"
+ if built_with_use ${PN} subversion; then
+ BINARIES="$BINARIES /usr/bin/svn /usr/bin/svnserve"
+ fi
+ LIB_LIST=`ldd $BINARIES 2> /dev/null | cut -f2 -d\> | cut -f1 -d\( | grep "^[ ]" | sort -u`
+ LDSO_LIST="/$(get_libdir)/ld.so /libexec/ld-elf.so /libexec/ld-elf.so.1 /usr/libexec/ld.so /$(get_libdir)/ld-linux.so.2 /usr/libexec/ld-elf.so.1"
+ for lib in $LDSO_LIST; do
+ if [ -f $lib ]; then
+ LIB_LIST="$LIB_LIST $lib"
+ fi
+ done
+ ls /$(get_libdir)/libnss_compat* > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ LIB_LIST="$LIB_LIST /$(get_libdir)/libnss_compat*"
+ fi
+
+ ldconfig
+ LIB_LIST="$LIB_LIST /etc/ld.so.cache /etc/ld.so.conf"
+
+ if [ ! -d ${myhome} ]; then
+ install -c -d ${myhome}
+ chmod 755 ${myhome}
+ fi
+ if [ ! -d ${myhome} ]; then
+ install -c -d ${myhome}/etc
+ chown 0:0 ${myhome}/etc
+ chmod 755 ${myhome}/etc
+ fi
+ if [ ! -d ${myhome}/$(get_libdir) ]; then
+ install -c -d ${myhome}/$(get_libdir)
+ chmod 755 ${myhome}/$(get_libdir)
+ fi
+ if [ ! -d ${myhome}/lib ]; then
+ ln -s $(get_libdir) ${myhome}/lib
+ fi
+ if [ ! -d ${myhome}/usr/$(get_libdir) ]; then
+ install -c -d ${myhome}/usr/$(get_libdir)
+ chmod 755 ${myhome}/usr/$(get_libdir)
+ fi
+ if [ ! -d ${myhome}/usr/lib ]; then
+ ln -s $(get_libdir) ${myhome}/usr/lib
+ fi
+
+ for bin in $BINARIES; do
+ install -c -d ${myhome}/`/bin/dirname $bin`
+ install -c $bin ${myhome}/$bin
+ done
+ for lib in $LIB_LIST; do
+ install -c -d ${myhome}/`/bin/dirname $lib`
+ install -c $lib ${myhome}/$lib
+ done
+
+ chown 0:0 ${myhome}
+ if [ -d ${myhome}/.ssh ]; then
+ chown 0:0 ${myhome}/.ssh
+ fi
+
+ if [ ! -d ${myhome}/incoming ]; then
+ einfo "creating ${myhome}/incoming directory for uploading files"
+ install -c -o ${myuser} -d ${myhome}/incoming
+ fi
+ chown $myuser:$myuser ${myhome}/incoming
+
+ if [ ! -e ${myhome}/etc/passwd ]; then
+ grep "^${myuser}" /etc/passwd > ${myhome}/etc/passwd
+ fi
+
+ # Bug 135505
+ if [ ! -e ${myhome}/dev/null ]; then
+ install -c -d ${myhome}/dev
+ mknod -m 777 ${myhome}/dev/null c 1 3
+ fi
+}