[slack-ru] Сделал патчи для proftpd...

  • From: "Dmitry A. Koptev" <dimez@xxxxx>
  • To: slack-ru@xxxxxxxxxxxxx
  • Date: Fri, 11 Mar 2005 13:52:26 +0300

1) Поддержка перекодировки
2) Исправление проблемы с символом "я" в cp1251.
Файлы - в аттаче.
Я не стал выкладывать бинарный пакет - потому-что у всех разные версии glibc и gcc, кому надо - соберёте под свою систему с помощью SlackBuild'а
Инструкция - скачиваете http://www.slackware.at/data/slackware-current/source/n/proftpd/ весь каталог, заменяете proftpd.Slackbuild на мой и собираете в пакет.


--
WBR Dmitry
#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-proftpd

VERSION=1.2.10
DIRVER=1.2.10
ARCH=${ARCH:-i486}
BUILD=2

if [ "$ARCH" = "i386" ]; then
  SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2"
fi

if [ ! -d $TMP ]; then
  mkdir -p $TMP # location to build the source
fi
rm -rf $PKG
mkdir -p $PKG

cd $TMP
rm -rf proftpd-$VERSION
tar xjvf $CWD/proftpd-$VERSION.tar.bz2
cd proftpd-$DIRVER
zcat $CWD/proftpd-$VERSION-iconv.patch.gz | patch -p1
zcat $CWD/proftpd-1.2.10-rus_ya.diff.gz | patch -p1
chown -R root.root .
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --sysconfdir=/etc \
  --enable-autoshadow \
  --localstatedir=/var/run \
  --with-modules=mod_readme:mod_ratio:mod_tls:mod_wrap:mod_codeconv \
  $ARCH-slackware-linux
# This caused funny messages about "Quotas off" with every FTP command,
# and mod_wrap gets a compile error:
# --with-modules= ... mod_quota ...
make
make install DESTDIR=$PKG
rm -f $PKG/etc/*
cat $CWD/etc/proftpd.conf > $PKG/etc/proftpd.conf.new
cat $CWD/etc/ftpusers > $PKG/etc/ftpusers.new
mkdir -p $PKG/home/ftp
gzip -9 $PKG/usr/man/man?/*.?
chown -R root.bin $PKG/usr/bin $PKG/usr/sbin
mkdir -p $PKG/usr/doc/proftpd-$VERSION
cp -a COPYING CREDITS ChangeLog INSTALL NEWS README* \
  contrib/README.mod_wrap contrib/README.ratio \
  $PKG/usr/doc/proftpd-$VERSION
cp -a contrib/README $PKG/usr/doc/proftpd-$VERSION/README.contrib
cp -a doc sample-configurations $PKG/usr/doc/proftpd-$VERSION
( 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
)
mkdir -p $PKG/install
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc

# Build the package:
cd $PKG
makepkg -l y -c n $TMP/proftpd-$VERSION-$ARCH-$BUILD.tgz

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
 rm -rf proftpd-$VERSION
 rm -rf $PKG
fi
# This is a basic ProFTPD configuration file.
# It establishes a single server and a single anonymous login.
# It assumes that you have a user/group "nobody" and "ftp" 
# for normal/anonymous operation.

ServerName                      "ProFTPD Default Installation"
#ServerType                     standalone
ServerType                      inetd
DefaultServer                   on

CharsetLocal            KOI8-R
CharsetRemote           CP1251

# Port 21 is the standard FTP port.
Port                            21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                           022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            nobody
Group                           nogroup

# This next option is required for NIS or NIS+ to work properly:
#PersistentPasswd off

SystemLog                       /var/log/proftpd.log
TransferLog                     /var/log/xferlog

# Normally, we want files to be overwriteable.
<Directory /*>
  AllowOverwrite                on
</Directory>

# A basic anonymous FTP server configuration.
# To enable this, remove the user ftp from /etc/ftpusers.
<Anonymous ~ftp>
  RequireValidShell             off
  User                          ftp
  Group                         ftp
  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias                     anonymous ftp

  # Limit the maximum number of anonymous logins
  MaxClients                    50

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin                  welcome.msg
  DisplayFirstChdir             .message

  # Limit WRITE everywhere in the anonymous chroot
  <Limit WRITE>
    DenyAll
  </Limit>

  # An upload directory that allows storing files but not retrieving
  # or creating directories.
#  <Directory incoming/*>
#    <Limit READ>
#      DenyAll
#    </Limit>
#
#    <Limit STOR>
#      AllowAll
#    </Limit>
#  </Directory>

</Anonymous>

Other related posts: