HPA's Trivial File Transfer Protocol (tftp) server.

This commit is contained in:
Eric Andersen 2005-02-16 21:17:18 +00:00
parent 298bf4d52d
commit cbe260d167
5 changed files with 181 additions and 0 deletions

View File

@ -89,6 +89,7 @@ source "package/slang/Config.in"
source "package/socat/Config.in"
source "package/strace/Config.in"
source "package/tcpdump/Config.in"
source "package/tftpd/Config.in"
source "package/tinylogin/Config.in"
source "package/tinyx/Config.in"
source "package/tn5250/Config.in"

6
package/tftpd/Config.in Normal file
View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_TFTPD
bool "tftpd"
default n
help
HPA's Trivial File Transfer Protocol (tftp) server.

View File

@ -0,0 +1,3 @@
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

93
package/tftpd/init-tftpd Executable file
View File

@ -0,0 +1,93 @@
#! /bin/sh
#
# Author: Jaakko Niemi <liiwi@iki.fi>
# Modified from skeleton file in sarge
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="HPA's tftpd"
NAME=in.tftpd
DAEMON=/usr/sbin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/tftpd-hpa
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/default/tftpd-hpa ]
then
. /etc/default/tftpd-hpa
fi
if [ "$RUN_DAEMON" = "yes" ] ; then
echo "tftpd-hpa disabled in /etc/default/tftpd-hpa"
exit 0
fi
#
# Function that starts the daemon/service.
#
d_start() {
start-stop-daemon --start --quiet --exec $DAEMON -- $OPTIONS
}
#
# Function that stops the daemon/service.
#
d_stop() {
start-stop-daemon --stop --quiet --name $NAME
}
#
# Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
start-stop-daemon --stop --quiet --name $NAME --signal 1
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
#reload)
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this an "exit 0".
#
# echo -n "Reloading $DESC configuration..."
# d_reload
# echo "done."
#;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
# echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

78
package/tftpd/tftpd.mk Normal file
View File

@ -0,0 +1,78 @@
#############################################################
#
# tftpd
#
#############################################################
TFTP_HPA_VER:=0.40
TFTP_HPA_SOURCE:=tftp-hpa-$(TFTP_HPA_VER).tar.bz2
TFTP_HPA_SITE:=http://www.kernel.org/pub/software/network/tftp/
TFTP_HPA_DIR:=$(BUILD_DIR)/tftp-hpa-$(TFTP_HPA_VER)
TFTP_HPA_CAT:=bzcat
TFTP_HPA_BINARY:=tftpd/tftpd
TFTP_HPA_TARGET_BINARY:=usr/sbin/in.tftpd
$(DL_DIR)/$(TFTP_HPA_SOURCE):
$(WGET) -P $(DL_DIR) $(TFTP_HPA_SITE)/$(TFTP_HPA_SOURCE)
tftpd-source: $(DL_DIR)/$(TFTP_HPA_SOURCE)
$(TFTP_HPA_DIR)/.unpacked: $(DL_DIR)/$(TFTP_HPA_SOURCE)
$(TFTP_HPA_CAT) $(DL_DIR)/$(TFTP_HPA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(TFTP_HPA_DIR) package/tftpd/ tftpd*.patch
touch $(TFTP_HPA_DIR)/.unpacked
$(TFTP_HPA_DIR)/.configured: $(TFTP_HPA_DIR)/.unpacked
(cd $(TFTP_HPA_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
$(DISABLE_LARGEFILE) \
--without-tcpwrappers \
);
touch $(TFTP_HPA_DIR)/.configured
$(TFTP_HPA_DIR)/$(TFTP_HPA_BINARY): $(TFTP_HPA_DIR)/.configured
$(MAKE) -C $(TFTP_HPA_DIR)
# This stuff is needed to work around GNU make deficiencies
$(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY): $(TFTP_HPA_DIR)/$(TFTP_HPA_BINARY)
@if [ -L $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY) ] ; then \
rm -f $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY); fi;
@if [ ! -f $(TFTP_HPA_DIR)/$(TFTP_HPA_BINARY) -o $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY) \
-ot $(TFTP_HPA_DIR)/$(TFTP_HPA_BINARY) ] ; then \
set -x; \
rm -f $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY); \
cp -a $(TFTP_HPA_DIR)/$(TFTP_HPA_BINARY) $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY); fi ;
$(INSTALL) -D -m 0755 package/tftpd/init-tftpd $(TARGET_DIR)/etc/init.d/S80tftpd-hpa
$(INSTALL) -D -m 0644 package/tftpd/default-tftpd $(TARGET_DIR)/etc/default/tftpd-hpa
tftpd: uclibc $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY)
tftpd-clean:
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(TFTP_HPA_DIR) uninstall
-$(MAKE) -C $(TFTP_HPA_DIR) clean
tftpd-dirclean:
rm -rf $(TFTP_HPA_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_TFTPD)),y)
TARGETS+=tftpd
endif