diet-pure-ftpd.patch
changeset 1 32f160a66da4
child 114 368efadb5348
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/diet-pure-ftpd.patch	Sun Jan 13 23:14:33 2008 +0100
@@ -0,0 +1,710 @@
+From bca72d17e958d2bce147147da167fa17a1cc43f7 Mon Sep 17 00:00:00 2001
+From: Tomas Zeman <tzeman@volny.cz>
+Date: Sun, 16 Dec 2007 12:14:44 +0100
+Subject: [PATCH] diet-pure-ftpd-1.0.21-1-i686:
+ *added
+
+---
+ source/dietlibc/diet-pure-ftpd/FrugalBuild        |   39 ++
+ source/dietlibc/diet-pure-ftpd/pure-config.pl     |  121 ++++++
+ source/dietlibc/diet-pure-ftpd/pure-ftpd.conf     |  435 +++++++++++++++++++++
+ source/dietlibc/diet-pure-ftpd/rc.pure-ftpd       |   42 ++
+ source/dietlibc/diet-pure-ftpd/rc.pure-ftpd-hu.po |   21 +
+ 5 files changed, 658 insertions(+), 0 deletions(-)
+ create mode 100644 source/dietlibc/diet-pure-ftpd/FrugalBuild
+ create mode 100644 source/dietlibc/diet-pure-ftpd/pure-config.pl
+ create mode 100644 source/dietlibc/diet-pure-ftpd/pure-ftpd.conf
+ create mode 100644 source/dietlibc/diet-pure-ftpd/rc.pure-ftpd
+ create mode 100644 source/dietlibc/diet-pure-ftpd/rc.pure-ftpd-hu.po
+
+diff --git a/source/dietlibc/diet-pure-ftpd/FrugalBuild b/source/dietlibc/diet-pure-ftpd/FrugalBuild
+new file mode 100644
+index 0000000..0165876
+--- /dev/null
++++ b/source/dietlibc/diet-pure-ftpd/FrugalBuild
+@@ -0,0 +1,39 @@
++# Maintainer: Tomas Zeman <tzeman@volny.cz>
++
++branch=diet
++pkgorig=pure-ftpd
++pkgname=$branch-$pkgorig
++pkgver=1.0.21
++pkgrel=1
++pkgdesc="A free, secure, production-quality and standard-conformant FTP server"
++url="http://www.pureftpd.org/"
++depends=('perl')
++conflicts=($pkgorig)
++provides=($pkgorig)
++backup=('etc/pure-ftpd.conf')
++archs=('i686')
++up2date="lynx -dump $url |grep Version|sed 's/.*n \(.*\) h.*/\1/'"
++source=(ftp://ftp.pureftpd.org/pub/$pkgorig/releases/$pkgorig-$pkgver.tar.bz2 \
++	pure-config.pl pure-ftpd.conf rc.$pkgorig rc.$pkgorig-hu.po)
++sha1sums=('1405ff2b9b9c3616c4e390eb99779884173a3347' \
++          '274bf6399afa4fbb6cb8593181c103e3ff7f1070' \
++          '7c6b89a0dcefdd96e2da943ec4b21a9d952d86eb' \
++          '2a0b5d5151251deb129c061a78fa5eca5525e99e' \
++          '1a12dbfaa9d2d5914b7a1db040d5d6ced71cd659')
++
++build()
++{
++	export CC="diet -v gcc -Os -nostdinc"
++	export LD="diet -v gcc -s -static"
++	Fcd $pkgorig-$pkgver
++	./configure --with-largefile --with-ftpwho --with-quotas \
++		--with-ratios --with-puredb --with-altlog --with-throttling \
++		--with-privsep --with-tls
++	make || Fdie
++	make prefix=$Fdestdir/usr install
++	install -D -m755 ../rc.pure-ftpd $Fdestdir/etc/rc.d/rc.pure-ftpd || Fdie
++	install -D -m644 ../pure-ftpd.conf $Fdestdir/etc/pure-ftpd.conf || Fdie
++	install -D -m755 ../pure-config.pl $Fdestdir/usr/sbin/pure-config.pl || Fdie
++	Ffile /etc/pure-ftpd.conf
++	Fexe /usr/sbin/pure-config.pl
++}
+diff --git a/source/dietlibc/diet-pure-ftpd/pure-config.pl b/source/dietlibc/diet-pure-ftpd/pure-config.pl
+new file mode 100644
+index 0000000..1f8c28e
+--- /dev/null
++++ b/source/dietlibc/diet-pure-ftpd/pure-config.pl
+@@ -0,0 +1,121 @@
++#! /usr/bin/perl
++
++# (C) 2001-2004 Aristotle Pagaltzis
++# derived from code (C) 2001-2002 Frank Denis and Matthias Andree
++
++use strict;
++
++my ($conffile, @flg) = @ARGV;
++
++my $PUREFTPD;
++-x && ($PUREFTPD=$_, last) for qw(
++	${exec_prefix}/sbin/pure-ftpd
++	/usr/local/pure-ftpd/sbin/pure-ftpd
++	/usr/local/pureftpd/sbin/pure-ftpd
++	/usr/local/sbin/pure-ftpd
++	/usr/sbin/pure-ftpd
++);
++
++my %simple_switch_for = (
++	IPV4Only			=> "-4",
++	IPV6Only			=> "-6",        
++	ChrootEveryone			=> "-A",
++	BrokenClientsCompatibility	=> "-b",
++	Daemonize			=> "-B",
++	VerboseLog			=> "-d",
++	DisplayDotFiles			=> "-D",
++	AnonymousOnly			=> "-e",
++	NoAnonymous			=> "-E",
++	DontResolve			=> "-H",
++	AnonymousCanCreateDirs		=> "-M",
++	NATmode				=> "-N",
++	CallUploadScript		=> "-o",
++	AntiWarez			=> "-s",
++	AllowUserFXP			=> "-w",
++	AllowAnonymousFXP		=> "-W",
++	ProhibitDotFilesWrite		=> "-x",
++	ProhibitDotFilesRead		=> "-X",
++	AllowDotFiles			=> "-z",
++	AutoRename			=> "-r",
++	AnonymousCantUpload		=> "-i",
++	LogPID				=> "-1",
++	NoChmod				=> "-R",
++	KeepAllFiles			=> "-K",
++	CreateHomeDir			=> "-j",
++	NoRename			=> "-G",
++	CustomerProof			=> "-Z",
++	NoTruncate			=> "-0",
++);
++
++my %string_switch_for = (
++	SyslogFacility		=> "-f",
++	FortunesFile		=> "-F",
++	ForcePassiveIP		=> "-P",
++	Bind			=> "-S",
++	AnonymousBandwidth	=> "-t",
++	UserBandwidth		=> "-T",
++	TrustedIP		=> "-V",
++	AltLog			=> "-O",
++	PIDFile			=> "-g",
++);
++
++my %numeric_switch_for = (
++	MaxIdleTime		=> "-I",
++	MaxDiskUsage		=> "-k",
++	TrustedGID		=> "-a",
++	MaxClientsNumber	=> "-c",
++	MaxClientsPerIP		=> "-C",
++	MaxLoad			=> "-m",
++	MinUID			=> "-u",
++	TLS			=> "-Y",
++);
++
++my %numpairb_switch_for = (
++	LimitRecursion		=> "-L",
++	PassivePortRange	=> "-p",
++	AnonymousRatio		=> "-q",
++	UserRatio		=> "-Q",
++);
++
++my %numpairc_switch_for = (
++	Umask		=> "-U",
++	Quota		=> "-n",
++	PerUserLimits	=> "-y",
++);
++
++my %auth_method_for = (
++	LDAPConfigFile		=> "ldap",
++	MySQLConfigFile		=> "mysql",
++	PGSQLConfigFile		=> "pgsql",
++	PureDB			=> "puredb",
++	ExtAuth			=> "extauth",
++);
++
++my $simple_switch = qr/(@{[join "|", keys %simple_switch_for ]})\s+yes/i;
++my $string_switch = qr/(@{[join "|", keys %string_switch_for ]})\s+(\S+)/i;
++my $numeric_switch = qr/(@{[join "|", keys %numeric_switch_for ]})\s+(\d+)/i;
++my $numpairb_switch = qr/(@{[join "|", keys %numpairb_switch_for ]})\s+(\d+)\s+(\d+)/i;
++my $numpairc_switch = qr/(@{[join "|", keys %numpairc_switch_for ]})\s+(\d+):(\d+)/i;
++my $auth_method = qr/(@{[join "|", keys %auth_method_for ]})\s+(\S+)/i;
++
++die "Usage: pure-config.pl <configuration file> [extra options]\n"
++	unless defined $conffile;
++
++open CONF, "< $conffile" or die "Can't open $conffile: $!\n";
++
++!/^\s*(?:$|#)/ and (chomp, push @flg,
++	/$simple_switch/i		? ($simple_switch_for{$1}) :
++	/$string_switch/i		? ($string_switch_for{$1} . $2) :
++	/$numeric_switch/i		? ($numeric_switch_for{$1} . $2) :
++	/$numpairb_switch/i		? ($numpairb_switch_for{$1} . "$2:$3") :
++	/$numpairc_switch/i		? ($numpairc_switch_for{$1} . "$2:$3") :
++	/$auth_method/i			? ("-l" . "$auth_method_for{$1}:$2") :
++	/UnixAuthentication\s+yes/i	? ("-l" . "unix") :
++	/PAMAuthentication\s+yes/i	? ("-l" . "pam") :
++	()
++) while <CONF>;
++
++close CONF;
++
++print "Running: $PUREFTPD ", join(" ", @flg), "\n";
++exec { $PUREFTPD } ($PUREFTPD, @flg) or die "cannot exec $PUREFTPD: $!";
+diff --git a/source/dietlibc/diet-pure-ftpd/pure-ftpd.conf b/source/dietlibc/diet-pure-ftpd/pure-ftpd.conf
+new file mode 100644
+index 0000000..df983a2
+--- /dev/null
++++ b/source/dietlibc/diet-pure-ftpd/pure-ftpd.conf
+@@ -0,0 +1,435 @@
++############################################################
++#                                                          #
++#         Configuration file for pure-ftpd wrappers        #
++#                                                          #
++############################################################
++
++# If you want to run Pure-FTPd with this configuration   
++# instead of command-line options, please run the
++# following command :
++#
++# /usr/sbin/pure-config.pl /usr/etc/pure-ftpd.conf
++#
++# Please don't forget to have a look at documentation at
++# http://www.pureftpd.org/documentation.shtml for a complete list of
++# options.
++
++# Cage in every user in his home directory
++
++ChrootEveryone              yes
++
++
++
++# If the previous option is set to "no", members of the following group
++# won't be caged. Others will be. If you don't want chroot()ing anyone,
++# just comment out ChrootEveryone and TrustedGID.
++
++# TrustedGID                    100
++
++
++
++# Turn on compatibility hacks for broken clients
++
++BrokenClientsCompatibility  no
++
++
++
++# Maximum number of simultaneous users
++
++MaxClientsNumber            50
++
++
++
++# Fork in background
++
++Daemonize                   yes
++
++
++
++# Maximum number of sim clients with the same IP address
++
++MaxClientsPerIP             8
++
++
++
++# If you want to log all client commands, set this to "yes".
++# This directive can be duplicated to also log server responses.
++
++VerboseLog                  no
++
++
++
++# List dot-files even when the client doesn't send "-a".
++
++DisplayDotFiles             yes
++
++
++
++# Don't allow authenticated users - have a public anonymous FTP only.
++
++AnonymousOnly               no
++
++
++
++# Disallow anonymous connections. Only allow authenticated users.
++
++NoAnonymous                 yes
++
++
++
++# Syslog facility (auth, authpriv, daemon, ftp, security, user, local*)
++# The default facility is "ftp". "none" disables logging.
++
++SyslogFacility              ftp
++
++
++
++# Display fortune cookies
++
++# FortunesFile              /usr/share/fortune/zippy
++
++
++
++# Don't resolve host names in log files. Logs are less verbose, but 
++# it uses less bandwidth. Set this to "yes" on very busy servers or
++# if you don't have a working DNS.
++
++DontResolve                 yes
++
++
++
++# Maximum idle time in minutes (default = 15 minutes)
++
++MaxIdleTime                 15
++
++
++
++# LDAP configuration file (see README.LDAP)
++
++# LDAPConfigFile                /etc/pureftpd-ldap.conf
++
++
++
++# MySQL configuration file (see README.MySQL)
++
++# MySQLConfigFile               /etc/pureftpd-mysql.conf
++
++
++# Postgres configuration file (see README.PGSQL)
++
++# PGSQLConfigFile               /etc/pureftpd-pgsql.conf
++
++
++# PureDB user database (see README.Virtual-Users)
++
++# PureDB                        /etc/pureftpd.pdb
++
++
++# Path to pure-authd socket (see README.Authentication-Modules)
++
++# ExtAuth                       /var/run/ftpd.sock
++
++
++
++# If you want to enable PAM authentication, uncomment the following line
++
++# PAMAuthentication             yes
++
++
++
++# If you want simple Unix (/etc/passwd) authentication, uncomment this
++
++# UnixAuthentication            yes
++
++
++
++# Please note that LDAPConfigFile, MySQLConfigFile, PAMAuthentication and
++# UnixAuthentication can be used only once, but they can be combined
++# together. For instance, if you use MySQLConfigFile, then UnixAuthentication,
++# the SQL server will be asked. If the SQL authentication fails because the
++# user wasn't found, another try # will be done with /etc/passwd and
++# /etc/shadow. If the SQL authentication fails because the password was wrong,
++# the authentication chain stops here. Authentication methods are chained in
++# the order they are given. 
++
++
++
++# 'ls' recursion limits. The first argument is the maximum number of
++# files to be displayed. The second one is the max subdirectories depth
++
++LimitRecursion              2000 8
++
++
++
++# Are anonymous users allowed to create new directories ?
++
++AnonymousCanCreateDirs      no
++
++
++
++# If the system is more loaded than the following value,
++# anonymous users aren't allowed to download.
++
++MaxLoad                     4
++
++
++
++# Port range for passive connections replies. - for firewalling.
++
++# PassivePortRange          30000 50000
++
++
++
++# Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
++# Symbolic host names are also accepted for gateways with dynamic IP
++# addresses.
++
++# ForcePassiveIP                192.168.0.1
++
++
++
++# Upload/download ratio for anonymous users.
++
++# AnonymousRatio                1 10
++
++
++
++# Upload/download ratio for all users.
++# This directive superscedes the previous one.
++
++# UserRatio                 1 10
++
++
++
++# Disallow downloading of files owned by "ftp", ie.
++# files that were uploaded but not validated by a local admin.
++
++AntiWarez                   yes
++
++
++
++# IP address/port to listen to (default=all IP and port 21).
++
++# Bind                      127.0.0.1,21
++
++
++
++# Maximum bandwidth for anonymous users in KB/s
++
++# AnonymousBandwidth            8
++
++
++
++# Maximum bandwidth for *all* users (including anonymous) in KB/s
++# Use AnonymousBandwidth *or* UserBandwidth, both makes no sense.
++
++# UserBandwidth             8
++
++
++
++# File creation mask. <umask for files>:<umask for dirs> .
++# 177:077 if you feel paranoid.
++
++Umask                       133:022
++
++
++
++# Minimum UID for an authenticated user to log in.
++
++MinUID                      100
++
++
++
++# Allow FXP transfers for authenticated users.
++
++AllowUserFXP                no
++
++
++
++# Allow anonymous FXP for anonymous and non-anonymous users.
++
++AllowAnonymousFXP           no
++
++
++
++# Users can't delete/write files beginning with a dot ('.')
++# even if they own them. If TrustedGID is enabled, this group
++# will have access to dot-files, though.
++
++ProhibitDotFilesWrite       no
++
++
++
++# Prohibit *reading* of files beginning with a dot (.history, .ssh...)
++
++ProhibitDotFilesRead        no
++
++
++
++# Never overwrite files. When a file whoose name already exist is uploaded,
++# it get automatically renamed to file.1, file.2, file.3, ...
++
++AutoRename                  no
++
++
++
++# Disallow anonymous users to upload new files (no = upload is allowed)
++
++AnonymousCantUpload         no
++
++
++
++# Only connections to this specific IP address are allowed to be
++# non-anonymous. You can use this directive to open several public IPs for
++# anonymous FTP, and keep a private firewalled IP for remote administration.
++# You can also only allow a non-routable local IP (like 10.x.x.x) to
++# authenticate, and keep a public anon-only FTP server on another IP.
++
++#TrustedIP                  10.1.1.1
++
++
++
++# If you want to add the PID to every logged line, uncomment the following
++# line.
++
++#LogPID                     yes
++
++
++
++# Create an additional log file with transfers logged in a Apache-like format :
++# fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
++# This log file can then be processed by www traffic analyzers.
++
++# AltLog                     clf:/var/log/pureftpd.log
++
++
++
++# Create an additional log file with transfers logged in a format optimized
++# for statistic reports.
++
++# AltLog                     stats:/var/log/pureftpd.log
++
++
++
++# Create an additional log file with transfers logged in the standard W3C
++# format (compatible with most commercial log analyzers)
++
++# AltLog                     w3c:/var/log/pureftpd.log
++
++
++
++# Disallow the CHMOD command. Users can't change perms of their files.
++
++#NoChmod                     yes
++
++
++
++# Allow users to resume and upload files, but *NOT* to delete them.
++
++#KeepAllFiles                yes
++
++
++
++# Automatically create home directories if they are missing
++
++#CreateHomeDir               yes
++
++
++
++# Enable virtual quotas. The first number is the max number of files.
++# The second number is the max size of megabytes.
++# So 1000:10 limits every user to 1000 files and 10 Mb.
++
++#Quota                       1000:10
++
++
++
++# If your pure-ftpd has been compiled with standalone support, you can change
++# the location of the pid file. The default is /var/run/pure-ftpd.pid
++
++#PIDFile                     /var/run/pure-ftpd.pid
++
++
++
++# If your pure-ftpd has been compiled with pure-uploadscript support,
++# this will make pure-ftpd write info about new uploads to
++# /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and
++# spawn a script to handle the upload.
++
++#CallUploadScript yes
++
++
++
++# This option is useful with servers where anonymous upload is 
++# allowed. As /var/ftp is in /var, it save some space and protect 
++# the log files. When the partition is more that X percent full,
++# new uploads are disallowed.
++
++MaxDiskUsage               99
++
++
++
++# Set to 'yes' if you don't want your users to rename files.
++
++#NoRename                  yes
++
++
++
++# Be 'customer proof' : workaround against common customer mistakes like
++# 'chmod 0 public_html', that are valid, but that could cause ignorant
++# customers to lock their files, and then keep your technical support busy
++# with silly issues. If you're sure all your users have some basic Unix
++# knowledge, this feature is useless. If you're a hosting service, enable it.
++
++CustomerProof              yes
++
++
++
++# Per-user concurrency limits. It will only work if the FTP server has
++# been compiled with --with-peruserlimits (and this is the case on
++# most binary distributions) .
++# The format is : <max sessions per user>:<max anonymous sessions>
++# For instance, 3:20 means that the same authenticated user can have 3 active
++# sessions max. And there are 20 anonymous sessions max.
++
++# PerUserLimits            3:20
++
++
++
++# When a file is uploaded and there is already a previous version of the file
++# with the same name, the old file will neither get removed nor truncated.
++# Upload will take place in a temporary file and once the upload is complete,
++# the switch to the new version will be atomic. For instance, when a large PHP
++# script is being uploaded, the web server will still serve the old version and
++# immediatly switch to the new one as soon as the full file will have been
++# transfered. This option is incompatible with virtual quotas.
++
++# NoTruncate               yes
++
++
++
++# This option can accept three values :
++# 0 : disable SSL/TLS encryption layer (default).
++# 1 : accept both traditional and encrypted sessions.
++# 2 : refuse connections that don't use SSL/TLS security mechanisms,
++#     including anonymous sessions.
++# Do _not_ uncomment this blindly. Be sure that :
++# 1) Your server has been compiled with SSL/TLS support (--with-tls),
++# 2) A valid certificate is in place,
++# 3) Only compatible clients will log in.
++
++# TLS                      1
++
++
++
++# Listen only to IPv4 addresses in standalone mode (ie. disable IPv6)
++# By default, both IPv4 and IPv6 are enabled.
++
++# IPV4Only                 yes
++
++
++
++# Listen only to IPv6 addresses in standalone mode (ie. disable IPv4)
++# By default, both IPv4 and IPv6 are enabled.
++
++# IPV6Only                 yes
+diff --git a/source/dietlibc/diet-pure-ftpd/rc.pure-ftpd b/source/dietlibc/diet-pure-ftpd/rc.pure-ftpd
+new file mode 100644
+index 0000000..61746ef
+--- /dev/null
++++ b/source/dietlibc/diet-pure-ftpd/rc.pure-ftpd
+@@ -0,0 +1,42 @@
++#!/bin/bash
++
++# (c) 2006 Miklos Vajna <vmiklos@frugalware.org>
++# rc.pure-ftpd for FrugalWare
++# distributed under GPL License
++
++# chkconfig: 2345 60 50
++# description: Pure-FTPd is a ftp daemon, which is the program \
++#              that answers incoming ftp service requests.
++
++source /lib/initscripts/functions
++TEXTDOMAIN=pure-ftpd
++TEXTDOMAINDIR=/lib/initscripts/messages
++
++actions=(restart start status stop)
++daemon=$"Pure-FTPd Server"
++
++pid="cat /var/run/pure-ftpd.pid 2> /dev/null"
++
++rc_start()
++{
++	start_msg
++	if [[ "$(eval $pid)" == "" ]] ; then
++		/usr/sbin/pure-config.pl /etc/pure-ftpd.conf &> /dev/null
++		ok $?
++	else
++		ok 999
++	fi
++}
++
++rc_stop()
++{
++	stop_msg
++	if [[ "$(eval $pid)" != "" ]] ; then
++		kill `cat /var/run/pure-ftpd.pid`
++		ok $?
++	else
++		ok 999
++	fi
++}
++
++rc_exec $1
+diff --git a/source/dietlibc/diet-pure-ftpd/rc.pure-ftpd-hu.po b/source/dietlibc/diet-pure-ftpd/rc.pure-ftpd-hu.po
+new file mode 100644
+index 0000000..b987340
+--- /dev/null
++++ b/source/dietlibc/diet-pure-ftpd/rc.pure-ftpd-hu.po
+@@ -0,0 +1,21 @@
++# Hungarian translations for rc.pure-ftpd package.
++# Copyright (C) 2006 THE rc.pure-ftpd'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the rc.pure-ftpd package.
++#  <vmiklos@frugalware.org>, 2006.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: rc.pure-ftpd\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-02-21 13:18+0100\n"
++"PO-Revision-Date: 2006-02-21 13:18+0100\n"
++"Last-Translator:  <vmiklos@frugalware.org>\n"
++"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=ISO-8859-2\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=1; plural=0;\n"
++
++#: rc.pure-ftpd:16
++msgid "Pure-FTPd Server"
++msgstr "Pure-FTPd szerver"
+-- 
+1.5.3.4
+