aboutsummaryrefslogtreecommitdiff
path: root/app/shells/rssh-chroot/rssh-chroot.mkbuild
blob: 3819d273126ef6a3808e3c0e2a3d6860a79ffbb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#
#  This mkbuild 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.
#
#  This mkbuild 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
#

#--------------------
# Personal variables
#--------------------
# Author name
[[SLACKBUILD AUTHOR]]="Silvio Rhatto"

# Initials author name
[[SLACKBUILD AUTHOR INITIALS]]="rha"

#------------------------
# Construction Variables
#------------------------
# Dependency list input
[[SLACK REQUIRED]]="rssh"

# SlackBuild model
[[SLACKBUILD MODEL]]="generic.mkSlackBuild"

# SlackBuild PATH in Slack.Sarava tree
[[SLACKBUILD PATH]]="app/shells/rssh-chroot"

[[REST OF DOINST.SH]]="( echo Please check if $CHROOT_BASE/dev/null was correctly created )"

# TODO: remove this when mkbuild became able to run without it
[[DOWNLOAD FOLDER URL]]="http://downloads.sourceforge.net/rssh/rssh-2.3.2.tar.gz"
[[PACKAGE NAME]]="rssh-chroot"

#---------------------
# SlackBuild Sections
#---------------------
# Default sections:
#      head, set_variables, slkflags, start_structure, untar_source,
#      make_package, install_package, build_package
# Warning: don't remove '#>>' and "#<<" tags.
#>> Start SlackBuild Sections:
 on: head
 on: slackbuildrc
 on: set_variables
off: slkflags
 on: error_codes
 on: start_structure
off: create_build_user_and_group
off: download_source
off: md5sum_download_and_check_0
off: md5sum_download_and_check_1
off: gpg_signature_check
 on: manifest_check
off: untar_source
off: patch_source
off: configure
 on: make_package
off: install_package
off: strip_binaries
off: compress_manpages
off: compress_info_files
off: install_documentation
 on: slackdesc
off: move_config_files
 on: postinstall_script
 on: slack_required
 on: build_package
 on: clean_builds
#<< End SlackBuild Sections

#------------------
# Sections changes
#------------------
#>slackdesc
rssh-chroot: rssh-chroot: a chroot jail to use with rssh restricted secure shell 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
rssh-chroot: 
#<slackdesc

#>make_package
# Adjust to where your rssh chroot system will be located
CHROOT_BASE="/var/users"
mkdir -p $PKG/$CHROOT_BASE/{bin,etc,lib,lib/tls,usr/lib,usr/libexec,usr/bin,usr/doc,home,dev}

if [ "$ARCH" == "x86_64" ]; then
  mkdir -p $PKG/$CHROOT_BASE/{lib64/tls,usr/lib64}
fi

for ldfile in ld.so.cache ld.so.conf ld.so.preload; do
  if [ -f "/etc/$ldfile" ]; then
    cp /etc/$ldfile $PKG/$CHROOT_BASE/etc
  fi
done

# Inspired by http://www.howtoforge.com/chrooted_ssh_howto_debian_p2
APPS="/usr/bin/rssh /usr/bin/scp /usr/libexec/sftp-server /usr/libexec/rssh_chroot_helper"
for app in $APPS; do
  cp $app $PKG/$CHROOT_BASE/$app

  # Get a list of related libraries
  ldd $app > /dev/null
  if [ "$?" = 0 ] ; then
    libs="`ldd $app | sed -e 's/=>//' -e 's/(.*)//' | awk '{ print $1 "\n" $2 }'`"
    for lib in $libs; do
      if [ -a "$lib" ]; then
        mkdir -p $PKG/$CHROOT_BASE/`dirname $lib` > /dev/null 2>&1
        cp $lib $PKG/$CHROOT_BASE/$lib
      fi
    done
  fi
done

# Might not work inside vservers
echo "Trying to create /dev/null inside this jail..."
echo "May not work if you're creating this package inside a vserver"
mknod -m 666 $PKG/$CHROOT_BASE/dev/null c 1 3 || exit $ERROR_INSTALL

mkdir -p $PKG/usr/doc/$PACKAGE-$VERSION
cp $CWD/COPYING* $PKG/usr/doc/$PACKAGE-$VERSION/

chmod 755 $PKG/$CHROOT_BASE/{bin,etc,lib,lib/tls,usr/lib,usr/libexec,usr/bin,usr/doc,dev}
chmod 111 $PKG/$CHROOT_BASE/home
#<make_package