mirror of
https://github.com/xcat2/xcat-dep.git
synced 2024-12-03 18:14:35 +00:00
This is the first draft of building packages under Debian
Former-commit-id: 342cdeb67cc99dc5c0da1095d07cf5f239b58c4c
This commit is contained in:
parent
16355bcf7d
commit
bf08ce086d
4
atftp/debian/atftp-xcat.docs
Normal file
4
atftp/debian/atftp-xcat.docs
Normal file
@ -0,0 +1,4 @@
|
||||
TODO
|
||||
README
|
||||
README.CVS
|
||||
README.MCAST
|
2
atftp/debian/atftp-xcat.files
Normal file
2
atftp/debian/atftp-xcat.files
Normal file
@ -0,0 +1,2 @@
|
||||
usr/bin/atftp
|
||||
usr/share/man/man1/atftp.1
|
12
atftp/debian/atftpd-xcat.README.Debian
Normal file
12
atftp/debian/atftpd-xcat.README.Debian
Normal file
@ -0,0 +1,12 @@
|
||||
atftpd for Debian
|
||||
-----------------
|
||||
|
||||
atftpd uses /tftpboot by default as base directory. You can change
|
||||
that by editing /etc/inetd.conf. Remember that you must give the
|
||||
directory appropriate permissions in order to be able to read/write
|
||||
files according to your needs.
|
||||
|
||||
The /tftpboot directory is not created by the package. You need to
|
||||
create it and give appropriate permissions by hand.
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org>, Sun, 20 Aug 2000 14:32:15 -0400
|
50
atftp/debian/atftpd-xcat.atftpd
Normal file
50
atftp/debian/atftpd-xcat.atftpd
Normal file
@ -0,0 +1,50 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# atftpd - Script to launch atftpd server. Based on Skeleton.
|
||||
#
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
DAEMON=/usr/sbin/atftpd
|
||||
NAME=atftpd
|
||||
DESC="Advanced Trivial FTP server"
|
||||
USE_INETD=true
|
||||
OPTIONS=""
|
||||
|
||||
test -f $DAEMON || exit 0
|
||||
|
||||
set -e
|
||||
|
||||
if [ -f /etc/default/atftpd ]; then
|
||||
. /etc/default/atftpd
|
||||
fi
|
||||
|
||||
if [ "$USE_INETD" = "true" ]; then
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting $DESC: "
|
||||
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
|
||||
echo "$NAME."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping $DESC: "
|
||||
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
|
||||
echo "$NAME."
|
||||
;;
|
||||
restart|reload|force-reload)
|
||||
echo -n "Restarting $DESC: "
|
||||
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
|
||||
sleep 1
|
||||
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
|
||||
echo "$NAME."
|
||||
;;
|
||||
*)
|
||||
N=/etc/init.d/$NAME
|
||||
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
1
atftp/debian/atftpd-xcat.conffiles
Normal file
1
atftp/debian/atftpd-xcat.conffiles
Normal file
@ -0,0 +1 @@
|
||||
/etc/init.d/atftpd
|
76
atftp/debian/atftpd-xcat.config
Normal file
76
atftp/debian/atftpd-xcat.config
Normal file
@ -0,0 +1,76 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
db_version 2.0
|
||||
|
||||
# BUG: If you upgrade atftp and you previously configured it with debconf,
|
||||
# that is, the atftpd/configure value in the database is set to true,
|
||||
# then the config script will overwrite the config in inetd.conf with
|
||||
# all values from the database. This could be avoided (or so I thought)
|
||||
# by setting the atftpd/configure value to false in the event db_input
|
||||
# had returned false but this causes the config value to be ignored if
|
||||
# the package is being preconfigured. In such a case, the config script
|
||||
# is called twice, the first time it shows the question and returns
|
||||
# true but the second it doesn't show the question and would return
|
||||
# false, which results in the atftpd/configure value being set to false
|
||||
# and makes the config value being ignore despite the fact the user
|
||||
# answered them (#93398). I didn't find any better way to work around
|
||||
# this. Sorry.
|
||||
|
||||
db_beginblock
|
||||
db_input high atftpd/configure || true
|
||||
db_endblock
|
||||
db_go
|
||||
|
||||
db_get atftpd/configure
|
||||
if [ "$RET" = "true" ]; then
|
||||
|
||||
db_beginblock
|
||||
db_input medium atftpd/use_inetd || true
|
||||
db_endblock
|
||||
db_go
|
||||
|
||||
db_get atftpd/use_inetd
|
||||
|
||||
if [ "$RET" = "true" ]; then
|
||||
db_beginblock
|
||||
db_input medium atftpd/tftpd-timeout || true
|
||||
db_endblock
|
||||
db_go
|
||||
fi
|
||||
|
||||
db_beginblock
|
||||
db_input medium atftpd/port || true
|
||||
db_input medium atftpd/retry-timeout || true
|
||||
db_input medium atftpd/maxthread || true
|
||||
db_input medium atftpd/timeout || true
|
||||
db_input medium atftpd/tsize || true
|
||||
db_input medium atftpd/blksize || true
|
||||
db_input medium atftpd/multicast || true
|
||||
db_endblock
|
||||
db_go
|
||||
|
||||
db_get atftpd/multicast
|
||||
if [ "$RET" = "true" ]; then
|
||||
db_beginblock
|
||||
db_input medium atftpd/mcast_port || true
|
||||
db_input medium atftpd/mcast_addr || true
|
||||
db_endblock
|
||||
db_go
|
||||
fi
|
||||
|
||||
db_beginblock
|
||||
db_input medium atftpd/verbosity || true
|
||||
db_input medium atftpd/basedir || true
|
||||
db_input medium atftpd/logtofile || true
|
||||
db_endblock
|
||||
db_go
|
||||
|
||||
db_get atftpd/logtofile
|
||||
if [ "$RET" = "true" ]; then
|
||||
db_beginblock
|
||||
db_input medium atftpd/logfile || true
|
||||
db_endblock
|
||||
db_go
|
||||
fi
|
||||
fi
|
9
atftp/debian/atftpd-xcat.docs
Normal file
9
atftp/debian/atftpd-xcat.docs
Normal file
@ -0,0 +1,9 @@
|
||||
TODO
|
||||
README
|
||||
README.CVS
|
||||
README.MCAST
|
||||
README.PCRE
|
||||
FAQ
|
||||
BUGS
|
||||
test/mtftp.conf
|
||||
test/pcre_pattern.txt
|
4
atftp/debian/atftpd-xcat.files
Normal file
4
atftp/debian/atftpd-xcat.files
Normal file
@ -0,0 +1,4 @@
|
||||
usr/sbin/atftpd
|
||||
usr/sbin/in.tftpd
|
||||
usr/share/man/man8/atftpd.8
|
||||
usr/share/man/man8/in.tftpd.8
|
140
atftp/debian/atftpd-xcat.postinst
Normal file
140
atftp/debian/atftpd-xcat.postinst
Normal file
@ -0,0 +1,140 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# TODO:
|
||||
# - error checking on values provided by debconf frontend
|
||||
|
||||
BASEDIR=/tftpboot
|
||||
DAEMON="--daemon"
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
db_version 2.0
|
||||
|
||||
db_get atftpd/configure
|
||||
if [ "$RET" = "true" ]; then
|
||||
|
||||
db_get atftpd/use_inetd
|
||||
if [ "$RET" ]; then
|
||||
if [ "$RET" = "true" ]; then
|
||||
USE_INETD=true
|
||||
else
|
||||
USE_INETD=false
|
||||
fi
|
||||
else
|
||||
USE_INETD=true
|
||||
fi
|
||||
|
||||
db_get atftpd/port
|
||||
if [ "$RET" ]; then
|
||||
TFTPD_PORT="--port $RET"
|
||||
fi
|
||||
|
||||
db_get atftpd/tftpd-timeout
|
||||
if [ "$RET" ]; then
|
||||
TFTPD_TIMEOUT="--tftpd-timeout $RET"
|
||||
fi
|
||||
|
||||
db_get atftpd/retry-timeout
|
||||
if [ "$RET" ]; then
|
||||
RETRY_TIMEOUT="--retry-timeout $RET"
|
||||
fi
|
||||
|
||||
db_get atftpd/maxthread
|
||||
if [ "$RET" ]; then
|
||||
MAXTHREAD="--maxthread $RET"
|
||||
fi
|
||||
|
||||
db_get atftpd/timeout
|
||||
if [ "$RET" != "true" ]; then
|
||||
NOTIMEOUT="--no-timeout"
|
||||
fi
|
||||
|
||||
db_get atftpd/tsize
|
||||
if [ "$RET" != "true" ]; then
|
||||
NOTSIZE="--no-tsize"
|
||||
fi
|
||||
|
||||
db_get atftpd/blksize
|
||||
if [ "$RET" != "true" ]; then
|
||||
NOBLKSIZE="--no-blksize"
|
||||
fi
|
||||
|
||||
db_get atftpd/multicast
|
||||
if [ "$RET" != "true" ]; then
|
||||
NOMCAST="--no-multicast"
|
||||
else
|
||||
db_get atftpd/mcast_port
|
||||
if [ "$RET" ]; then
|
||||
MCASTPORT="--mcast-port $RET"
|
||||
fi
|
||||
db_get atftpd/mcast_addr
|
||||
if [ "$RET" ]; then
|
||||
MCASTADDR="--mcast-addr $RET"
|
||||
fi
|
||||
fi
|
||||
|
||||
db_get atftpd/verbosity
|
||||
if [ "$RET" ]; then
|
||||
RET=`echo $RET | cut -f1 -d ' '`
|
||||
VERBOSITY="--verbose=$RET"
|
||||
fi
|
||||
|
||||
db_get atftpd/logtofile
|
||||
if [ "$RET" = "true" ]; then
|
||||
db_get atftpd/logfile
|
||||
if [ "$RET" ]; then
|
||||
LOGFILE="--logfile $RET"
|
||||
# if the file doesn't exist, create it
|
||||
if [ ! -f $RET ]; then
|
||||
touch $RET
|
||||
chown nobody.nogroup $RET
|
||||
chmod 640 $RET
|
||||
fi
|
||||
# modify the logrotate file
|
||||
echo -e "$RET {\n" \
|
||||
" daily\n" \
|
||||
" rotate 5\n" \
|
||||
" compress\n" \
|
||||
" copytruncate\n" \
|
||||
" missingok\n" \
|
||||
"}" > /etc/logrotate.d/atftpd
|
||||
fi
|
||||
else
|
||||
LOGFILE=""
|
||||
# remove the logrotate file
|
||||
rm -f /etc/logrotate.d/atftpd
|
||||
fi
|
||||
|
||||
db_get atftpd/basedir
|
||||
if [ "$RET" ]; then
|
||||
BASEDIR="$RET"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# remove any occurance
|
||||
update-inetd --remove "tftp.*"
|
||||
|
||||
# Make sure atftpd is stoped. Needed for dpkg-reconfigure.
|
||||
if [ -e "/etc/init.d/atftpd" ]; then
|
||||
/etc/init.d/atftpd stop
|
||||
fi
|
||||
|
||||
if [ "$USE_INETD" = "false" ]; then
|
||||
echo "USE_INETD=false" > /etc/default/atftpd
|
||||
echo "OPTIONS=\"$DAEMON $TFTPD_PORT $RETRY_TIMEOUT $NOTIMEOUT $NOTSIZE $NOBLKSIZE $NOMCAST \
|
||||
$MCASTPORT $MCASTADDR $MAXTHREAD $VERBOSITY $LOGFILE $BASEDIR\"" >> /etc/default/atftpd
|
||||
else
|
||||
update-inetd --group BOOT --add "tftp dgram udp wait \
|
||||
nobody /usr/sbin/tcpd /usr/sbin/in.tftpd $TFTPD_TIMEOUT $RETRY_TIMEOUT $NOTIMEOUT $NOTSIZE $NOBLKSIZE \
|
||||
$NOMCAST $MCASTPORT $MCASTADDR $MAXTHREAD $VERBOSITY $LOGFILE $BASEDIR"
|
||||
echo "USE_INETD=true" > /etc/default/atftpd
|
||||
echo "OPTIONS=\"$DAEMON $TFTPD_PORT $TFTPD_TIMEOUT $RETRY_TIMEOUT $NOTIMEOUT $NOTSIZE $NOBLKSIZE $NOMCAST \
|
||||
$MCASTPORT $MCASTADDR $MAXTHREAD $VERBOSITY $LOGFILE $BASEDIR\"" >> /etc/default/atftpd
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
# tell debconf we are done. otherwise, it hangs waiting for the daemon.
|
||||
db_stop;
|
||||
|
||||
exit 0;
|
8
atftp/debian/atftpd-xcat.postrm
Normal file
8
atftp/debian/atftpd-xcat.postrm
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
update-inetd --group BOOT --remove "tftp.*/usr/sbin/in.tftpd.*"
|
||||
rm -f /etc/logorotate.d/atftpd
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
5
atftp/debian/atftpd-xcat.prerm
Normal file
5
atftp/debian/atftpd-xcat.prerm
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
update-inetd --group BOOT --disable tftp
|
||||
|
||||
#DEBHELPER#
|
2
atftp/debian/atftpd-xcat.substvars
Normal file
2
atftp/debian/atftpd-xcat.substvars
Normal file
@ -0,0 +1,2 @@
|
||||
misc:Depends=debconf (>= 0.5) | debconf-2.0
|
||||
shlibs:Depends=libc6 (>= 2.7), libpcre3 (>= 7.7)
|
101
atftp/debian/atftpd-xcat.templates
Normal file
101
atftp/debian/atftpd-xcat.templates
Normal file
@ -0,0 +1,101 @@
|
||||
Template: atftpd/configure
|
||||
Type: boolean
|
||||
Default: true
|
||||
_Description: Do you want to configure the server?
|
||||
atftpd can have various parameters passed to it. These parameters can
|
||||
optimize performances for servers that do heavy work. The default values
|
||||
are suitable for most purposes.
|
||||
|
||||
Template: atftpd/use_inetd
|
||||
Type: boolean
|
||||
Default: true
|
||||
_Description: Should the server be started by inetd?
|
||||
atftpd can be started by the inetd superserver or as a daemon and handle
|
||||
incoming connections by itself. The latter is only recommend for very high
|
||||
usage server.
|
||||
|
||||
Template: atftpd/tftpd-timeout
|
||||
Type: string
|
||||
_Default: 300
|
||||
_Description: Server timeout.
|
||||
How many seconds the main thread waits before exiting.
|
||||
|
||||
Template: atftpd/retry-timeout
|
||||
Type: string
|
||||
_Default: 5
|
||||
_Description: Retry timeout.
|
||||
How many seconds to wait for a reply before retransmitting a packet.
|
||||
|
||||
Template: atftpd/maxthread
|
||||
Type: string
|
||||
_Default: 100
|
||||
_Description: Maximum number of threads.
|
||||
Maximum number of concurrent threads that can be running.
|
||||
|
||||
Template: atftpd/verbosity
|
||||
Type: select
|
||||
_Choices: 7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)
|
||||
Default: 5 (LOG_NOTICE)
|
||||
_Description: Verbosity level.
|
||||
Level of logging. 7 logs everything including debug logs. 1 will log only
|
||||
the system critical logs. 5 (LOG_NOTICE) is the default value.
|
||||
|
||||
Template: atftpd/timeout
|
||||
Type: boolean
|
||||
Default: true
|
||||
_Description: Enable 'timeout' support
|
||||
|
||||
Template: atftpd/tsize
|
||||
Type: boolean
|
||||
Default: true
|
||||
_Description: Enable 'tsize' support
|
||||
|
||||
Template: atftpd/blksize
|
||||
Type: boolean
|
||||
Default: true
|
||||
_Description: Enable 'block size' support
|
||||
|
||||
Template: atftpd/multicast
|
||||
Type: boolean
|
||||
Default: true
|
||||
_Description: Enable 'multicast' support
|
||||
|
||||
Template: atftpd/port
|
||||
Type: string
|
||||
_Default: 69
|
||||
_Description: Port to listen for tftp request
|
||||
|
||||
Template: atftpd/mcast_port
|
||||
Type: string
|
||||
_Default: 1758
|
||||
_Description: Port range for multicast file transfer
|
||||
Multicast transfer will use any available port in a given set. For
|
||||
example, "2000-2003, 3000" allow atftpd to use port 2000 to 2003 and 3000.
|
||||
|
||||
Template: atftpd/mcast_addr
|
||||
Type: string
|
||||
_Default: 239.255.0.0-255
|
||||
_Description: Address range for multicast transfer
|
||||
Multicast transfer will use any available addresses from a given set of
|
||||
addresses. Syntax is "a.b.c.d-d,a.b.c.d,..."
|
||||
|
||||
Template: atftpd/logtofile
|
||||
Type: boolean
|
||||
Default: false
|
||||
_Description: Log to file instead of syslog?
|
||||
If your server does intensive tftp file serving, it is a good idea to say
|
||||
yes. That will avoid to clutter your syslog with tftpd logs.
|
||||
|
||||
Template: atftpd/logfile
|
||||
Type: string
|
||||
_Default: /var/log/atftpd.log
|
||||
_Description: Log file.
|
||||
A file where atftpd write its logs. This file will be made writable for
|
||||
the user 'nobody' and group 'nogroup'.
|
||||
|
||||
Template: atftpd/basedir
|
||||
Type: string
|
||||
_Default: /tftpboot
|
||||
_Description: Base directory.
|
||||
The directory tree from where atftpd can serve files. That directory must
|
||||
be world readable.
|
109
atftp/debian/changelog
Normal file
109
atftp/debian/changelog
Normal file
@ -0,0 +1,109 @@
|
||||
atftp-xcat (0.7-3) unstable; urgency=low
|
||||
|
||||
* Initial Debian build
|
||||
|
||||
-- Mark Hamzy <hamzy@us.ibm.com> Mon, 02 May 2011 13:05:49 -0500
|
||||
|
||||
atftp-xcat (0.7-2) unstable; urgency=low
|
||||
|
||||
* Allow deb package in xCAT
|
||||
* Added a patch so that it compiles in Ubuntu/debian
|
||||
|
||||
-- OCF xCAT <xcat@ocf.co.uk> Fri, 29 Oct 2010 10:10:31 -0000
|
||||
|
||||
atftp (0.7-1) unstable; urgency=low
|
||||
|
||||
* New release
|
||||
|
||||
-- J-P <helix@ste[p.polymtl.ca> Fri, 21 Feb 2003 00:17:31 -0500
|
||||
|
||||
atftp (0.6.2) unstable; urgency=low
|
||||
|
||||
* Fixed local and remote buffer overflow (Closes: #196304)
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Sun, 15 Jun 2003 16:26:13 -0400
|
||||
|
||||
atftp (0.6.1.1) unstable; urgency=low
|
||||
|
||||
* NMU
|
||||
* New config.guess, config.sub. Add libwrap-dev to build-depends.
|
||||
Closes: #142949
|
||||
|
||||
-- LaMont Jones <lamont@debian.org> Wed, 24 Apr 2002 00:23:52 -0600
|
||||
|
||||
atftp (0.6.1) unstable; urgency=low
|
||||
|
||||
* Fixed French translations for real this time (Closes: #136339).
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Sun, 13 Apr 2002 14:09:23 -0500
|
||||
|
||||
atftp (0.6) unstable; urgency=low
|
||||
|
||||
* Update of German translations (Thanks to Christian Neumair)
|
||||
(Closes: #139080)
|
||||
* Update of French translations (Thanks to Denis Barbier) (Closes: #136339).
|
||||
* Fix autoconf issue related to RedHat
|
||||
* Fix bug associated with very small value of blksize
|
||||
* Fix server to allow logging to stdout and stderr in daemon mode
|
||||
* Add --no-fork option for use in conjonction with --daemon
|
||||
* Add command line option to overide the default nobody.nogroup user
|
||||
* Fix bug where server segfault if nobody.nogroup doesn't exist
|
||||
* Fix grave bug with libwrap support causing server to segfault
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Sun, 31 Mar 2002 13:55:54 -0500
|
||||
|
||||
atftp (0.5) unstable; urgency=low
|
||||
|
||||
* Filename length limit increased (Closes: #124052).
|
||||
* General bug fixes.
|
||||
* Autoconf enhancement.
|
||||
* Libwrap support (for spawned thread).
|
||||
* Multicast support (not tested thoroughly).
|
||||
* Be less picky about removing existing tftp entries in inetd.conf
|
||||
(Closes: #107053).
|
||||
* General spelling fixes in the english templates (Closes: #109475).
|
||||
* Swedish templates (Thanks to Martin Sjögren) (Closes: #109523).
|
||||
* Portuguese templates (Thanks to Andre Luis Lopes) (Closes: #107042).
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Sat, 18 Aug 2001 23:13:25 -0400
|
||||
|
||||
atftp (0.4) unstable; urgency=low
|
||||
|
||||
* Now handle SIGINT and SIGTERM in the client and server.
|
||||
* Improved readline support.
|
||||
* Added status info in the client.
|
||||
* Added daemon mode.
|
||||
* Added spanish templates (Thanks to Carlos Valdivia Yagüe) (Closes: #103043).
|
||||
* Added "Provides: tftpd" (Closes: #100676).
|
||||
* Added french templates.
|
||||
* Added german templates (Thanks to Sebastian Feltel) (Closes: #100066).
|
||||
* Fixed config script (Closes: #93398).
|
||||
* Moved over to autoconf (Thanks to Jeffrey Fulmer).
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Sat, 16 Jun 2001 01:27:27 -0500
|
||||
|
||||
atftp (0.3) unstable; urgency=low
|
||||
|
||||
* Fixed format string bug.
|
||||
* Fixed an uninitialised variable bug.
|
||||
* Fixed name resolution.
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Sun, 11 Feb 2001 13:08:34 -0500
|
||||
|
||||
atftp (0.2) unstable; urgency=low
|
||||
|
||||
* Add statistics collecting functions to the server.
|
||||
* Added support for debconf.
|
||||
* Bugfixes.
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Wed, 27 Dec 2000 11:44:02 -0500
|
||||
|
||||
atftp (0.1) unstable; urgency=low
|
||||
|
||||
* Initial Release (Closes: #69486).
|
||||
|
||||
-- Remi Lefebvre <remi@debian.org> Fri, 30 Jun 2000 14:32:15 -0400
|
||||
|
||||
Local variables:
|
||||
mode: debian-changelog
|
||||
End:
|
29
atftp/debian/control
Normal file
29
atftp/debian/control
Normal file
@ -0,0 +1,29 @@
|
||||
Source: atftp-xcat
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Debian QA Group <packages@qa.debian.org>
|
||||
Build-Depends: libreadline-dev, debhelper (>= 4.1.16), po-debconf, libpcre3-dev
|
||||
Standards-Version: 3.6.1
|
||||
|
||||
Package: atftp-xcat
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}
|
||||
Description: Advanced TFTP client.
|
||||
Interactive client for the Trivial File Transfer Protocol (TFTP). Its
|
||||
usage is mainly for testing and debugging the Atftp server. TFTP client
|
||||
is usually implemented in BIOS and bootstrap programs like pxelinux when
|
||||
booting from LAN. Atftp also support non-interactive invocation for
|
||||
easy use in scripts.
|
||||
|
||||
Package: atftpd-xcat
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, netkit-inetd, debconf
|
||||
Conflicts: tftpd
|
||||
Suggests: logrotate
|
||||
Provides: tftpd
|
||||
Description: Advanced TFTP server.
|
||||
Multi-threaded TFTP server implementing all options (option extension and
|
||||
multicast) as specified in RFC1350, RFC2090, RFC2347, RFC2348 and RFC2349.
|
||||
Atftpd also support multicast protocol known as mtftp, defined in the PXE
|
||||
specification. The server supports being started from inetd(8) as well as
|
||||
in daemon mode using init scripts.
|
16
atftp/debian/copyright
Normal file
16
atftp/debian/copyright
Normal file
@ -0,0 +1,16 @@
|
||||
This package was debianized by Remi Lefebvre <remi@debian.org> on
|
||||
Fri, 30 Jun 2000 14:32:15 -0400.
|
||||
|
||||
It was downloaded from ftp://ftp.mamalinux.com/pub/atftp/
|
||||
|
||||
Upstream Authors: Jean-Pierre Lefebvre <helix@step.polymtl.ca>
|
||||
Remi Lefebvre <remi@debian.org>
|
||||
|
||||
Copyright:
|
||||
|
||||
atftp is free software; you can redistribute them and/or modify them under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any later
|
||||
version.
|
||||
|
||||
You can find a copy of the GPL at /usr/share/common-licenses/GPL
|
2
atftp/debian/files
Normal file
2
atftp/debian/files
Normal file
@ -0,0 +1,2 @@
|
||||
atftp-xcat_0.7-2_amd64.deb net optional
|
||||
atftpd-xcat_0.7-2_amd64.deb net optional
|
5522
atftp/debian/patches/atftp_0.7.dfsg-3.diff
Normal file
5522
atftp/debian/patches/atftp_0.7.dfsg-3.diff
Normal file
File diff suppressed because it is too large
Load Diff
69
atftp/debian/patches/dfsg-3-bigfiles.diff
Normal file
69
atftp/debian/patches/dfsg-3-bigfiles.diff
Normal file
@ -0,0 +1,69 @@
|
||||
diff -ur atftp-0.7.dfsg/tftpd_pcre.c atftp-0.7.dfsg-bigfiles/tftpd_pcre.c
|
||||
--- atftp-0.7.dfsg/tftpd_pcre.c 2003-04-24 20:16:19.000000000 -0400
|
||||
+++ atftp-0.7.dfsg-bigfiles/tftpd_pcre.c 2008-06-09 15:37:51.000000000 -0400
|
||||
@@ -213,7 +213,7 @@
|
||||
/* found string */
|
||||
if (rc > 0)
|
||||
{
|
||||
- Strncpy(outchp, tmpstr, rc);
|
||||
+ Strncpy(outchp, tmpstr, rc+1); // atftp's Strncpy seems to have a bug, since rest of codebase seems contented, not changing that..
|
||||
outchp += rc;
|
||||
pcre_free_substring(tmpstr);
|
||||
continue;
|
||||
diff -ur atftp-0.7.dfsg/tftpd_file.c atftp-0.7.dfsg-bigfiles/tftpd_file.c
|
||||
--- atftp-0.7.dfsg/tftpd_file.c 2008-06-09 14:18:29.000000000 -0400
|
||||
+++ atftp-0.7.dfsg-bigfiles/tftpd_file.c 2008-06-09 14:23:17.000000000 -0400
|
||||
@@ -608,22 +608,23 @@
|
||||
logger(LOG_INFO, "blksize option -> %d", result);
|
||||
}
|
||||
|
||||
+
|
||||
+ /* multicast option */
|
||||
+ if (data->tftp_options[OPT_MULTICAST].specified &&
|
||||
+ data->tftp_options[OPT_MULTICAST].enabled && !convert)
|
||||
+ {
|
||||
+ /* Relax the restriction of number of packets to only complian when multicast is attempted */
|
||||
/* Verify that the file can be sent in 2^16 block of BLKSIZE octets */
|
||||
if ((file_stat.st_size / (data->data_buffer_size - 4)) > 65535)
|
||||
{
|
||||
tftp_send_error(sockfd, sa, EUNDEF, data->data_buffer, data->data_buffer_size);
|
||||
- logger(LOG_NOTICE, "Requested file to big, increase BLKSIZE");
|
||||
+ logger(LOG_NOTICE, "Requested file too big, increase BLKSIZE, cannot rollover in multicast transfer");
|
||||
if (data->trace)
|
||||
logger(LOG_DEBUG, "sent ERROR <code: %d, msg: %s>", EUNDEF,
|
||||
tftp_errmsg[EUNDEF]);
|
||||
fclose(fp);
|
||||
return ERR;
|
||||
}
|
||||
-
|
||||
- /* multicast option */
|
||||
- if (data->tftp_options[OPT_MULTICAST].specified &&
|
||||
- data->tftp_options[OPT_MULTICAST].enabled && !convert)
|
||||
- {
|
||||
/*
|
||||
* Find a server with the same options to give up the client.
|
||||
*/
|
||||
@@ -723,6 +724,10 @@
|
||||
tftpd_clientlist_ready(data);
|
||||
}
|
||||
}
|
||||
+ if ((file_stat.st_size / (data->data_buffer_size - 4)) > 65535)
|
||||
+ {
|
||||
+ logger(LOG_NOTICE, "Requested file bigger than tftp is designed to handle, attempting rollover, but not officially in a tftp spec");
|
||||
+ }
|
||||
|
||||
/* copy options to local structure, used when falling back a client to slave */
|
||||
memcpy(options, data->tftp_options, sizeof(options));
|
||||
@@ -934,7 +939,11 @@
|
||||
|
||||
client_info->last_ack = ACK_block_number;
|
||||
|
||||
- block_number = ACK_block_number;
|
||||
+ if (block_number < 65534) { // If getting over 65534 packets, switch to rollover, this would have before been a case to give up
|
||||
+ block_number = ACK_block_number;
|
||||
+ } else { // At this point, the sanity should be checked such that it is a relatively low risk assumption
|
||||
+ block_number++;
|
||||
+ }
|
||||
|
||||
if (data->trace)
|
||||
logger(LOG_DEBUG, "received ACK <block: %d>",
|
31
atftp/debian/patches/dfsg-3-mclistfix.diff
Normal file
31
atftp/debian/patches/dfsg-3-mclistfix.diff
Normal file
@ -0,0 +1,31 @@
|
||||
--- atftp-0.7.dfsg/tftpd_list.c 2008-10-28 09:42:36.000000000 -0500
|
||||
+++ atftp-0.7.dfsg.new/tftpd_list.c 2008-10-28 10:02:55.000000000 -0500
|
||||
@@ -137,7 +137,7 @@
|
||||
struct thread_data *data,
|
||||
struct client_info *client)
|
||||
{
|
||||
- struct thread_data *current = thread_data; /* head of the list */
|
||||
+ struct thread_data *current;
|
||||
struct tftp_opt *tftp_options = data->tftp_options;
|
||||
struct client_info *tmp;
|
||||
|
||||
@@ -146,6 +146,8 @@
|
||||
/* lock the whole list before walking it */
|
||||
pthread_mutex_lock(&thread_list_mutex);
|
||||
|
||||
+ current = thread_data; /* head of the list */
|
||||
+
|
||||
while (current)
|
||||
{
|
||||
if (current != data)
|
||||
--- atftp-0.7.dfsg/options.h 2008-10-28 09:42:36.000000000 -0500
|
||||
+++ atftp-0.7.dfsg.new/options.h 2008-10-28 10:06:06.000000000 -0500
|
||||
@@ -45,6 +45,7 @@
|
||||
void opt_set_multicast(struct tftp_opt *options, char *addr, int port, int mc);
|
||||
void opt_request_to_string(struct tftp_opt *options, char *string, int len);
|
||||
void opt_options_to_string(struct tftp_opt *options, char *string, int len);
|
||||
-int opt_equal(struct tftp_opt *a,struct tftp_opt *b);
|
||||
+int opt_equal(struct tftp_opt *a,struct tftp_opt *b);
|
||||
+int opt_same_file(struct tftp_opt *opt1, struct tftp_opt *opt2);
|
||||
#endif
|
||||
|
574
atftp/debian/patches/dfsg-3-to-multicast.diff
Normal file
574
atftp/debian/patches/dfsg-3-to-multicast.diff
Normal file
@ -0,0 +1,574 @@
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/options.c atftp-0.7.dev/options.c
|
||||
--- atftp-0.7.dfsg/options.c 2003-04-24 19:16:18.000000000 -0500
|
||||
+++ atftp-0.7.dev/options.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -354,3 +354,8 @@
|
||||
else
|
||||
string[0] = 0;
|
||||
}
|
||||
+int opt_equal(struct tftp_opt *opt1, struct tftp_opt *opt2)
|
||||
+{
|
||||
+ return ( (strncmp(opt1->option,opt2->option,OPT_SIZE) == 0) &&
|
||||
+ (strncmp(opt1->value,opt2->value,OPT_SIZE) == 0)) ;
|
||||
+}
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/options.h atftp-0.7.dev/options.h
|
||||
--- atftp-0.7.dfsg/options.h 2001-07-06 18:35:18.000000000 -0500
|
||||
+++ atftp-0.7.dev/options.h 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -45,6 +45,6 @@
|
||||
void opt_set_multicast(struct tftp_opt *options, char *addr, int port, int mc);
|
||||
void opt_request_to_string(struct tftp_opt *options, char *string, int len);
|
||||
void opt_options_to_string(struct tftp_opt *options, char *string, int len);
|
||||
-
|
||||
+int opt_equal(struct tftp_opt *a,struct tftp_opt *b);
|
||||
#endif
|
||||
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftp.c atftp-0.7.dev/tftp.c
|
||||
--- atftp-0.7.dfsg/tftp.c 2008-05-13 13:45:41.000000000 -0500
|
||||
+++ atftp-0.7.dev/tftp.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -408,8 +408,7 @@
|
||||
*/
|
||||
int set_peer(int argc, char **argv)
|
||||
{
|
||||
- struct hostent *host; /* for host name lookup */
|
||||
- struct servent *sp; /* server entry for tftp service */
|
||||
+ int port=-1;
|
||||
|
||||
/* sanity check */
|
||||
if ((argc < 2) || (argc > 3))
|
||||
@@ -418,13 +417,33 @@
|
||||
return ERR;
|
||||
}
|
||||
|
||||
- /* get the server entry */
|
||||
- sp = getservbyname("tftp", "udp");
|
||||
- if (sp == 0) {
|
||||
- fprintf(stderr, "tftp: udp/tftp, unknown service.\n");
|
||||
- return ERR;
|
||||
+ /* get the server port */
|
||||
+ if (argc == 3)
|
||||
+ {
|
||||
+ port = htons(atoi(argv[2]));
|
||||
+ if (port < 0)
|
||||
+ {
|
||||
+ fprintf(stderr, "%s: bad port number.\n", argv[2]);
|
||||
+ data.connected = 0;
|
||||
+ return ERR;
|
||||
+ }
|
||||
+ data.sa_peer.sin_port = port;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /* get the server entry */
|
||||
+ struct servent *sp;
|
||||
+ sp = getservbyname("tftp", "udp");
|
||||
+ if (sp == 0) {
|
||||
+ fprintf(stderr, "tftp: udp/tftp, unknown service.\n");
|
||||
+ return ERR;
|
||||
+ } else
|
||||
+ {
|
||||
+ port = sp->s_port;
|
||||
+ }
|
||||
}
|
||||
|
||||
+ struct hostent *host; /* for host name lookup */
|
||||
/* look up the host */
|
||||
host = gethostbyname(argv[1]);
|
||||
/* if valid, update s_inn structure */
|
||||
@@ -437,7 +456,7 @@
|
||||
Strncpy(data.hostname, host->h_name,
|
||||
sizeof(data.hostname));
|
||||
data.hostname[sizeof(data.hostname)-1] = 0;
|
||||
- data.sa_peer.sin_port = sp->s_port;
|
||||
+ data.sa_peer.sin_port = port;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -445,22 +464,10 @@
|
||||
data.connected = 0;
|
||||
return ERR;
|
||||
}
|
||||
- /* get the server port */
|
||||
- if (argc == 3)
|
||||
- {
|
||||
- sp->s_port = htons(atoi(argv[2]));
|
||||
- if (sp->s_port < 0)
|
||||
- {
|
||||
- fprintf(stderr, "%s: bad port number.\n", argv[2]);
|
||||
- data.connected = 0;
|
||||
- return ERR;
|
||||
- }
|
||||
- data.sa_peer.sin_port = sp->s_port;
|
||||
- }
|
||||
/* copy port number to data structure */
|
||||
- data.port = ntohs(sp->s_port);
|
||||
-
|
||||
+ data.port = ntohs(port);
|
||||
data.connected = 1;
|
||||
+
|
||||
return OK;
|
||||
}
|
||||
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftpd.c atftp-0.7.dev/tftpd.c
|
||||
--- atftp-0.7.dfsg/tftpd.c 2008-05-13 13:45:41.000000000 -0500
|
||||
+++ atftp-0.7.dev/tftpd.c 2008-05-06 11:38:38.000000000 -0500
|
||||
@@ -197,6 +197,7 @@
|
||||
*/
|
||||
open_logger("atftpd", log_file, logging_level);
|
||||
logger(LOG_NOTICE, "Advanced Trivial FTP server started (%s)", VERSION);
|
||||
+ logger(LOG_NOTICE, "Build date: %s %s ", __DATE__,__TIME__);
|
||||
|
||||
#ifdef HAVE_PCRE
|
||||
/* */
|
||||
@@ -474,7 +475,9 @@
|
||||
exit(1);
|
||||
}
|
||||
new->client_info->done = 0;
|
||||
+ new->client_info->bytes_sent = 0;
|
||||
new->client_info->next = NULL;
|
||||
+ new->client_info->last_ack = -1;
|
||||
|
||||
/* Start a new server thread. */
|
||||
if (pthread_create(&tid, NULL, tftpd_receive_request,
|
||||
@@ -650,8 +653,11 @@
|
||||
logger(LOG_ERR, "connect: %s", strerror(errno));
|
||||
retval = ABORT;
|
||||
}
|
||||
- logger(LOG_DEBUG, "Creating new socket: %s:%d",
|
||||
- inet_ntoa(to.sin_addr), ntohs(to.sin_port));
|
||||
+ logger(LOG_DEBUG, "Creating new socket: %s:%d, on interface 0x%x",
|
||||
+ inet_ntoa(to.sin_addr), ntohs(to.sin_port),ntohl(to.sin_addr.s_addr));
|
||||
+
|
||||
+ /* save the dest ip address to bind multicast to correct interface */
|
||||
+ data->mcastaddr.imr_interface.s_addr = to.sin_addr.s_addr;
|
||||
|
||||
/* read options from request */
|
||||
opt_parse_request(data->data_buffer, data_size,
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftp_def.c atftp-0.7.dev/tftp_def.c
|
||||
--- atftp-0.7.dfsg/tftp_def.c 2004-02-12 21:16:09.000000000 -0600
|
||||
+++ atftp-0.7.dev/tftp_def.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -140,8 +140,12 @@
|
||||
*/
|
||||
inline char *Strncpy(char *to, const char *from, size_t size)
|
||||
{
|
||||
- to[size-1] = '\000';
|
||||
- return strncpy(to, from, size - 1);
|
||||
+ if (size > 0)
|
||||
+ {
|
||||
+ to[size-1] = '\000';
|
||||
+ return strncpy(to, from, size - 1);
|
||||
+ } else
|
||||
+ return to;
|
||||
}
|
||||
|
||||
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftpd_file.c atftp-0.7.dev/tftpd_file.c
|
||||
--- atftp-0.7.dfsg/tftpd_file.c 2004-02-17 20:21:47.000000000 -0600
|
||||
+++ atftp-0.7.dev/tftpd_file.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -89,6 +89,27 @@
|
||||
return OK;
|
||||
}
|
||||
|
||||
+int opt_same_file(struct tftp_opt *opt1, struct tftp_opt *opt2)
|
||||
+{
|
||||
+ if ( (strncmp(opt1->option,"filename",OPT_SIZE) == 0) &&
|
||||
+ (strncmp(opt2->option,"filename",OPT_SIZE) == 0))
|
||||
+ {
|
||||
+ char tofilename[MAXLEN];
|
||||
+ char fromfilename[MAXLEN];
|
||||
+ Strncpy(tofilename, opt1->value, MAXLEN);
|
||||
+ tftpd_rules_check(tofilename);
|
||||
+ Strncpy(fromfilename, opt2->value, MAXLEN);
|
||||
+ tftpd_rules_check(fromfilename);
|
||||
+ struct stat tostat;
|
||||
+ struct stat fromstat;
|
||||
+ if( stat(tofilename,&tostat) || stat(fromfilename,&fromstat))
|
||||
+ return 0;
|
||||
+
|
||||
+ return (tostat.st_ino == fromstat.st_ino);
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Receive a file. It is implemented as a state machine using a while loop
|
||||
* and a switch statement. Function flow is as follow:
|
||||
@@ -117,7 +138,6 @@
|
||||
char filename[MAXLEN];
|
||||
char string[MAXLEN];
|
||||
int timeout = data->timeout;
|
||||
- int number_of_timeout = 0;
|
||||
int all_blocks_received = 0; /* temporary kludge */
|
||||
int convert = 0; /* if true, do netascii convertion */
|
||||
|
||||
@@ -265,8 +285,8 @@
|
||||
switch (result)
|
||||
{
|
||||
case GET_TIMEOUT:
|
||||
- number_of_timeout++;
|
||||
- if (number_of_timeout > NB_OF_RETRY)
|
||||
+ data->client_info->number_of_timeout++;
|
||||
+ if (data->client_info->number_of_timeout > NB_OF_RETRY)
|
||||
{
|
||||
logger(LOG_INFO, "client (%s) not responding",
|
||||
inet_ntoa(data->client_info->client.sin_addr));
|
||||
@@ -322,7 +342,7 @@
|
||||
else
|
||||
logger(LOG_WARNING, "source port mismatch, check bypassed");
|
||||
}
|
||||
- number_of_timeout = 0;
|
||||
+ data->client_info->number_of_timeout = 0;
|
||||
state = S_DATA_RECEIVED;
|
||||
break;
|
||||
case GET_DISCARD:
|
||||
@@ -413,13 +433,13 @@
|
||||
char filename[MAXLEN];
|
||||
char string[MAXLEN];
|
||||
int timeout = data->timeout;
|
||||
- int number_of_timeout = 0;
|
||||
int mcast_switch = data->mcast_switch_client;
|
||||
struct stat file_stat;
|
||||
int convert = 0; /* if true, do netascii conversion */
|
||||
struct thread_data *thread = NULL; /* used when looking for a multicast
|
||||
thread */
|
||||
int multicast = 0; /* set to 1 if multicast */
|
||||
+ time_t last_send_time=-1;
|
||||
|
||||
struct client_info *client_info = data->client_info;
|
||||
struct client_info *client_old = NULL;
|
||||
@@ -428,6 +448,8 @@
|
||||
int prev_block_number = 0; /* needed to support netascii convertion */
|
||||
int prev_file_pos = 0;
|
||||
int temp = 0;
|
||||
+ int total_bytes_sent=0;
|
||||
+ int clients_served=0;
|
||||
|
||||
/* look for mode option */
|
||||
if (strcasecmp(data->tftp_options[OPT_MODE].value, "netascii") == 0)
|
||||
@@ -439,6 +461,7 @@
|
||||
/* file name verification */
|
||||
Strncpy(filename, data->tftp_options[OPT_FILENAME].value,
|
||||
MAXLEN);
|
||||
+
|
||||
if (tftpd_rules_check(filename) != OK)
|
||||
{
|
||||
tftp_send_error(sockfd, sa, EACCESS, data->data_buffer, data->data_buffer_size);
|
||||
@@ -497,7 +520,7 @@
|
||||
|
||||
/* To return the size of the file with tsize argument */
|
||||
fstat(fileno(fp), &file_stat);
|
||||
-
|
||||
+
|
||||
/* tsize option */
|
||||
if ((opt_get_tsize(data->tftp_options) > -1) && !convert)
|
||||
{
|
||||
@@ -535,6 +558,32 @@
|
||||
return ERR;
|
||||
}
|
||||
|
||||
+
|
||||
+ /* make sure that the oack packet will fit in the buffer */
|
||||
+ int oacklen = 2;
|
||||
+ int i;
|
||||
+ for (i = 2; i < OPT_NUMBER; i++)
|
||||
+ {
|
||||
+ if (data->tftp_options[i].enabled && data->tftp_options[i].specified)
|
||||
+ {
|
||||
+ oacklen += strlen(data->tftp_options[i].option);
|
||||
+ oacklen++;
|
||||
+ oacklen += strlen(data->tftp_options[i].value);
|
||||
+ oacklen++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (oacklen > result)
|
||||
+ {
|
||||
+ logger(LOG_NOTICE, "OACK will not fit in buffer of size %d. Options rejected.", result);
|
||||
+ tftp_send_error(sockfd, sa, EOPTNEG, data->data_buffer, data->data_buffer_size);
|
||||
+ if (data->trace)
|
||||
+ logger(LOG_DEBUG, "sent ERROR <code: %d, msg: %s>", EOPTNEG,
|
||||
+ tftp_errmsg[EOPTNEG]);
|
||||
+ fclose(fp);
|
||||
+ return ERR;
|
||||
+ }
|
||||
+
|
||||
data->data_buffer_size = result + 4;
|
||||
data->data_buffer = realloc(data->data_buffer, data->data_buffer_size);
|
||||
|
||||
@@ -649,9 +698,14 @@
|
||||
/* initialise multicast address structure */
|
||||
data->mcastaddr.imr_multiaddr.s_addr =
|
||||
data->sa_mcast.sin_addr.s_addr;
|
||||
- data->mcastaddr.imr_interface.s_addr = htonl(INADDR_ANY);
|
||||
+
|
||||
setsockopt(data->sockfd, IPPROTO_IP, IP_MULTICAST_TTL,
|
||||
&data->mcast_ttl, sizeof(data->mcast_ttl));
|
||||
+
|
||||
+ logger(LOG_DEBUG, "Multicast interface = %s \n",inet_ntoa(data->mcastaddr.imr_interface));
|
||||
+ setsockopt(data->sockfd, IPPROTO_IP, IP_MULTICAST_IF,
|
||||
+ &(data->mcastaddr.imr_interface.s_addr),
|
||||
+ sizeof(data->mcastaddr.imr_interface.s_addr));
|
||||
|
||||
/* set options data for OACK */
|
||||
opt_set_multicast(data->tftp_options, data->mc_addr,
|
||||
@@ -674,6 +728,7 @@
|
||||
memcpy(options, data->tftp_options, sizeof(options));
|
||||
opt_set_multicast(options, data->mc_addr, data->mc_port, 0);
|
||||
|
||||
+
|
||||
/* That's it, ready to send the file */
|
||||
while (1)
|
||||
{
|
||||
@@ -728,6 +783,7 @@
|
||||
tftp_send_data(sockfd, &data->sa_mcast,
|
||||
block_number + 1, data_size,
|
||||
data->data_buffer);
|
||||
+ client_info->bytes_sent += data_size-4;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -737,6 +793,8 @@
|
||||
if (data->trace)
|
||||
logger(LOG_DEBUG, "sent DATA <block: %d, size %d>",
|
||||
block_number + 1, data_size - 4);
|
||||
+ time(&last_send_time);
|
||||
+
|
||||
state = S_WAIT_PACKET;
|
||||
break;
|
||||
case S_WAIT_PACKET:
|
||||
@@ -746,12 +804,12 @@
|
||||
switch (result)
|
||||
{
|
||||
case GET_TIMEOUT:
|
||||
- number_of_timeout++;
|
||||
+ client_info->number_of_timeout++;
|
||||
|
||||
- if (number_of_timeout > NB_OF_RETRY)
|
||||
+ if (client_info->number_of_timeout > NB_OF_RETRY)
|
||||
{
|
||||
- logger(LOG_INFO, "client (%s) not responding",
|
||||
- inet_ntoa(client_info->client.sin_addr));
|
||||
+ logger(LOG_INFO, "client (%s) not responding. state=%d block_number=%d",
|
||||
+ inet_ntoa(client_info->client.sin_addr),timeout_state,block_number);
|
||||
state = S_END;
|
||||
}
|
||||
else
|
||||
@@ -779,7 +837,8 @@
|
||||
/* Proceed normally with the next client,
|
||||
going to OACK state */
|
||||
logger(LOG_INFO,
|
||||
- "Serving next client: %s:%d",
|
||||
+ "Serving next client after timeout: state=%d, block_number=%d: %s:%d",
|
||||
+ timeout_state,block_number,
|
||||
inet_ntoa(client_info->client.sin_addr),
|
||||
ntohs(client_info->client.sin_port));
|
||||
sa = &client_info->client;
|
||||
@@ -796,7 +855,7 @@
|
||||
break;
|
||||
}
|
||||
}
|
||||
- logger(LOG_WARNING, "timeout: retrying...");
|
||||
+ logger(LOG_WARNING, "timeout: retrying... state=%d, block_number=%d",timeout_state,block_number);
|
||||
state = timeout_state;
|
||||
}
|
||||
break;
|
||||
@@ -811,7 +870,13 @@
|
||||
* If this is an ACK for the last block, mark this client as
|
||||
* done
|
||||
*/
|
||||
- if ((last_block != -1) && (block_number > last_block))
|
||||
+ logger(LOG_DEBUG,
|
||||
+ "received ACK <block: %d> from wrong client: %s:%d",
|
||||
+ ntohs(tftphdr->th_block),
|
||||
+ inet_ntoa(from.sin_addr),
|
||||
+ ntohs(from.sin_port));
|
||||
+
|
||||
+ if ((last_block != -1) && (ntohs(tftphdr->th_block) > last_block))
|
||||
{
|
||||
if (tftpd_clientlist_done(data, NULL, &from) == 1)
|
||||
logger(LOG_DEBUG, "client done <%s>",
|
||||
@@ -851,11 +916,30 @@
|
||||
}
|
||||
}
|
||||
/* The ACK is from the current client */
|
||||
- number_of_timeout = 0;
|
||||
- block_number = ntohs(tftphdr->th_block);
|
||||
+ client_info->number_of_timeout = 0;
|
||||
+ int ACK_block_number = ntohs(tftphdr->th_block);
|
||||
+ if (ACK_block_number == client_info->last_ack) {
|
||||
+ /* duplicate ACK, ignore */
|
||||
+ time_t now;
|
||||
+ time(&now);
|
||||
+ /* if a timeout has occurred, resend last block */
|
||||
+ if ((now-last_send_time) > timeout) {
|
||||
+ state = S_SEND_DATA;
|
||||
+ logger(LOG_DEBUG, "Duplicate ACK packet discarded <%d>, timeout. Resend last block.", ACK_block_number);
|
||||
+ } else {
|
||||
+ logger(LOG_DEBUG, "Duplicate ACK packet discarded <%d>.", ACK_block_number);
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ client_info->last_ack = ACK_block_number;
|
||||
+
|
||||
+ block_number = ACK_block_number;
|
||||
+
|
||||
if (data->trace)
|
||||
logger(LOG_DEBUG, "received ACK <block: %d>",
|
||||
block_number);
|
||||
+
|
||||
if ((last_block != -1) && (block_number > last_block))
|
||||
{
|
||||
state = S_END;
|
||||
@@ -932,10 +1016,14 @@
|
||||
}
|
||||
break;
|
||||
case S_END:
|
||||
+ total_bytes_sent+=client_info->bytes_sent;
|
||||
if (multicast)
|
||||
{
|
||||
logger(LOG_DEBUG, "End of multicast transfer");
|
||||
+ logger(LOG_INFO,
|
||||
+ "Bytes sent while this client was master: %d",client_info->bytes_sent);
|
||||
/* mark the current client done */
|
||||
+ clients_served++;
|
||||
tftpd_clientlist_done(data, client_info, NULL);
|
||||
/* Look if there is another client to serve. We lock list of
|
||||
client to make sure no other thread try to add clients in
|
||||
@@ -948,13 +1036,21 @@
|
||||
ntohs(client_info->client.sin_port));
|
||||
/* client is a new client structure */
|
||||
sa = &client_info->client;
|
||||
- /* nedd to send an oack to that client */
|
||||
+
|
||||
+ /* send an oack to that client */
|
||||
state = S_SEND_OACK;
|
||||
fseek(fp, 0, SEEK_SET);
|
||||
}
|
||||
else
|
||||
{
|
||||
- logger(LOG_INFO, "No more client, end of tranfers");
|
||||
+ int fs = file_stat.st_size;
|
||||
+ int blksze = (data->data_buffer_size - 4);
|
||||
+ int ttlblks = fs/blksze;
|
||||
+ int blksretry = (total_bytes_sent-file_stat.st_size)/blksze;
|
||||
+ logger(LOG_INFO, "No more client, end of tranfers. %d clients served",clients_served);
|
||||
+ logger(LOG_INFO, "Bytes saved over unicast: %ld", (clients_served*file_stat.st_size)-total_bytes_sent);
|
||||
+ logger(LOG_INFO, "File size: %d, total data bytes sent %d",file_stat.st_size,total_bytes_sent);
|
||||
+ logger(LOG_INFO, "Block re-sent: %d of %d = %f percent",blksretry, ttlblks, ((float)blksretry/(float)ttlblks)*100);
|
||||
fclose(fp);
|
||||
return OK;
|
||||
}
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftpd.h atftp-0.7.dev/tftpd.h
|
||||
--- atftp-0.7.dfsg/tftpd.h 2004-02-26 20:05:26.000000000 -0600
|
||||
+++ atftp-0.7.dev/tftpd.h 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -71,6 +71,9 @@
|
||||
struct client_info {
|
||||
struct sockaddr_in client;
|
||||
int done; /* that client as receive it's file */
|
||||
+ int bytes_sent;
|
||||
+ int number_of_timeout; /* number of timeouts while sending to this client */
|
||||
+ int last_ack; /* last ACK received from this client */
|
||||
struct client_info *next;
|
||||
};
|
||||
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftpd_list.c atftp-0.7.dev/tftpd_list.c
|
||||
--- atftp-0.7.dfsg/tftpd_list.c 2004-02-26 20:05:26.000000000 -0600
|
||||
+++ atftp-0.7.dev/tftpd_list.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -140,17 +140,9 @@
|
||||
struct thread_data *current = thread_data; /* head of the list */
|
||||
struct tftp_opt *tftp_options = data->tftp_options;
|
||||
struct client_info *tmp;
|
||||
- char options[MAXLEN];
|
||||
- char string[MAXLEN];
|
||||
- char *index;
|
||||
- int len;
|
||||
|
||||
*thread = NULL;
|
||||
|
||||
- opt_request_to_string(tftp_options, options, MAXLEN);
|
||||
- index = strstr(options, "multicast");
|
||||
- len = (int)index - (int)options;
|
||||
-
|
||||
/* lock the whole list before walking it */
|
||||
pthread_mutex_lock(&thread_list_mutex);
|
||||
|
||||
@@ -162,9 +154,9 @@
|
||||
pthread_mutex_lock(¤t->client_mutex);
|
||||
if (current->client_ready == 1)
|
||||
{
|
||||
- opt_request_to_string(current->tftp_options, string, MAXLEN);
|
||||
- /* must have exact same option string */
|
||||
- if (strncmp(string, options, len) == 0)
|
||||
+ /* must have exact same mode and refer to the same file */
|
||||
+ if (opt_same_file(current->tftp_options,tftp_options) &&
|
||||
+ opt_equal(&(current->tftp_options[OPT_MODE]), &(tftp_options[OPT_MODE])))
|
||||
{
|
||||
*thread = current;
|
||||
/* insert the new client at the end. If the client is already
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftpd_mtftp.c atftp-0.7.dev/tftpd_mtftp.c
|
||||
--- atftp-0.7.dfsg/tftpd_mtftp.c 2004-02-26 20:05:26.000000000 -0600
|
||||
+++ atftp-0.7.dev/tftpd_mtftp.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -369,6 +369,13 @@
|
||||
logger(LOG_ERR, "mtftp: can't open socket");
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
+
|
||||
+ int one=1;
|
||||
+ if (setsockopt(sockfd, SOL_IP, IP_PKTINFO, &one, sizeof(one)) != 0)
|
||||
+ {
|
||||
+ logger(LOG_WARNING, "Failed to set socket option: %s", strerror(errno));
|
||||
+ }
|
||||
+
|
||||
/* bind the socket to the tftp port */
|
||||
if (bind(sockfd, (struct sockaddr*)&sa, sizeof(sa)) < 0)
|
||||
{
|
||||
@@ -389,7 +396,8 @@
|
||||
that file name */
|
||||
memset(&sa, 0, sizeof(sa)); /* this will hold the client info */
|
||||
data_size = data->data_buffer_size;
|
||||
- retval = tftp_get_packet(sockfd, -1, NULL, &sa, NULL, NULL,
|
||||
+ struct sockaddr_in toaddr;
|
||||
+ retval = tftp_get_packet(sockfd, -1, NULL, &sa, NULL, &toaddr,
|
||||
data->timeout,
|
||||
&data_size, data->data_buffer);
|
||||
|
||||
@@ -463,6 +471,7 @@
|
||||
getsockname(sockfd, (struct sockaddr *)&(sa), &len);
|
||||
//memset(&sa, 0, sizeof(sa));
|
||||
sa.sin_port = 0;
|
||||
+
|
||||
/* bind the socket to the tftp port */
|
||||
if (bind(thread->sockfd, (struct sockaddr*)&sa, sizeof(sa)) < 0)
|
||||
{
|
||||
@@ -472,8 +481,12 @@
|
||||
getsockname(thread->sockfd, (struct sockaddr *)&(sa), &len);
|
||||
|
||||
/* configure multicast socket */
|
||||
- thread->mcastaddr.imr_multiaddr.s_addr = thread->sa_mcast.sin_addr.s_addr;
|
||||
- thread->mcastaddr.imr_interface.s_addr = htonl(INADDR_ANY);
|
||||
+ thread->mcastaddr.imr_interface.s_addr = toaddr.sin_addr.s_addr;
|
||||
+
|
||||
+ setsockopt(thread->sockfd, IPPROTO_IP, IP_MULTICAST_IF,
|
||||
+ &(thread->mcastaddr.imr_interface.s_addr),
|
||||
+ sizeof(thread->mcastaddr.imr_interface.s_addr));
|
||||
+
|
||||
setsockopt(thread->sockfd, IPPROTO_IP, IP_MULTICAST_TTL,
|
||||
&data->mcast_ttl, sizeof(data->mcast_ttl));
|
||||
|
||||
diff -uNr --exclude='*[^ch]' atftp-0.7.dfsg/tftp_file.c atftp-0.7.dev/tftp_file.c
|
||||
--- atftp-0.7.dfsg/tftp_file.c 2008-05-13 13:45:41.000000000 -0500
|
||||
+++ atftp-0.7.dev/tftp_file.c 2008-05-06 11:29:24.000000000 -0500
|
||||
@@ -484,6 +484,14 @@
|
||||
sa_mcast.sin_family = AF_INET;
|
||||
sa_mcast.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
sa_mcast.sin_port = htons(mc_port);
|
||||
+ int yes=1;
|
||||
+ if (setsockopt(mcast_sockfd, SOL_SOCKET,
|
||||
+ SO_REUSEADDR,
|
||||
+ &yes, sizeof(yes)) < 0)
|
||||
+ {
|
||||
+ perror("setsockopt");
|
||||
+ exit(1);
|
||||
+ }
|
||||
|
||||
if (bind(mcast_sockfd, (struct sockaddr *)&sa_mcast,
|
||||
sizeof(sa_mcast)) < 0)
|
32
atftp/debian/patches/dfsg-3-to-winpaths.diff
Normal file
32
atftp/debian/patches/dfsg-3-to-winpaths.diff
Normal file
@ -0,0 +1,32 @@
|
||||
diff -urN atftp-0.7.dfsg/tftpd_file.c atftp-0.7.dfsg-winpaths/tftpd_file.c
|
||||
--- atftp-0.7.dfsg/tftpd_file.c 2008-06-20 10:33:43.000000000 -0400
|
||||
+++ atftp-0.7.dfsg-winpaths/tftpd_file.c 2008-06-20 10:39:51.000000000 -0400
|
||||
@@ -474,6 +474,28 @@
|
||||
/* verify that the requested file exist */
|
||||
fp = fopen(filename, "r");
|
||||
|
||||
+ /* if it didn't exist, consider the possibilty of Windows */
|
||||
+ if (fp == NULL)
|
||||
+ {
|
||||
+ char* idx;
|
||||
+ idx = strchr(filename,'\\');
|
||||
+ while (idx) {
|
||||
+ (*idx) = '/';
|
||||
+ idx = strchr(filename,'\\');
|
||||
+ }
|
||||
+ if (strstr(filename,"/Boot/BCD"))
|
||||
+ {
|
||||
+ char bcdfilename[MAXLEN];
|
||||
+ strncpy(bcdfilename,filename,MAXLEN);
|
||||
+ strncat(bcdfilename,".",MAXLEN);
|
||||
+ strncat(bcdfilename,inet_ntoa(sa->sin_addr),MAXLEN);
|
||||
+ fp = fopen(bcdfilename, "r");
|
||||
+ }
|
||||
+ if (fp == NULL)
|
||||
+ {
|
||||
+ fp = fopen(filename,"r");
|
||||
+ }
|
||||
+ }
|
||||
#ifdef HAVE_PCRE
|
||||
if (fp == NULL)
|
||||
{
|
5
atftp/debian/patches/series
Normal file
5
atftp/debian/patches/series
Normal file
@ -0,0 +1,5 @@
|
||||
dfsg-3-to-multicast.diff
|
||||
dfsg-3-bigfiles.diff
|
||||
dfsg-3-to-winpaths.diff
|
||||
dfsg-3-mclistfix.diff
|
||||
xcat-debian.diff
|
33
atftp/debian/patches/xcat-debian.diff
Normal file
33
atftp/debian/patches/xcat-debian.diff
Normal file
@ -0,0 +1,33 @@
|
||||
--- atftp-0.7.dfsg/argz.h.orig 2010-07-14 20:23:20.000000000 -0700
|
||||
+++ atftp-0.7.dfsg/argz.h 2010-07-14 20:25:11.000000000 -0700
|
||||
@@ -180,7 +180,7 @@
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
extern inline char *
|
||||
__argz_next (__const char *__argz, size_t __argz_len,
|
||||
- __const char *__entry) __THROW
|
||||
+ __const char *__entry)
|
||||
{
|
||||
if (__entry)
|
||||
{
|
||||
@@ -194,7 +194,7 @@
|
||||
}
|
||||
extern inline char *
|
||||
argz_next (__const char *__argz, size_t __argz_len,
|
||||
- __const char *__entry) __THROW
|
||||
+ __const char *__entry)
|
||||
{
|
||||
return __argz_next (__argz, __argz_len, __entry);
|
||||
}
|
||||
--- atftp-0.7.dfsg/stats.c.orig 2010-07-14 20:29:49.000000000 -0700
|
||||
+++ atftp-0.7.dfsg/stats.c 2010-07-14 20:30:22.000000000 -0700
|
||||
@@ -157,8 +157,8 @@
|
||||
|
||||
logger(LOG_INFO, " Load measurements:");
|
||||
logger(LOG_INFO, " User: %8.3fs Sys:%8.3fs",
|
||||
- (double)(s_stats.tms.tms_utime) / CLK_TCK,
|
||||
- (double)(s_stats.tms.tms_stime) / CLK_TCK);
|
||||
+ (double)(s_stats.tms.tms_utime) / CLOCKS_PER_SEC,
|
||||
+ (double)(s_stats.tms.tms_stime) / CLOCKS_PER_SEC);
|
||||
logger(LOG_INFO, " Total:%8.3fs CPU:%8.3f%%",
|
||||
(double)(tmp.tv_sec + tmp.tv_usec * 1e-6),
|
||||
(double)(s_stats.tms.tms_utime + s_stats.tms.tms_stime) /
|
1
atftp/debian/po/POTFILES.in
Normal file
1
atftp/debian/po/POTFILES.in
Normal file
@ -0,0 +1 @@
|
||||
[type: gettext/rfc822deb] atftpd.templates
|
283
atftp/debian/po/de.po
Normal file
283
atftp/debian/po/de.po
Normal file
@ -0,0 +1,283 @@
|
||||
#
|
||||
# Translators, if you are not familiar with the PO format, gettext
|
||||
# documentation is worth reading, especially sections dedicated to
|
||||
# this format, e.g. by running:
|
||||
# info -n '(gettext)PO Files'
|
||||
# info -n '(gettext)Header Entry'
|
||||
#
|
||||
# Some information specific to po-debconf are available at
|
||||
# /usr/share/doc/po-debconf/README-trans
|
||||
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
||||
#
|
||||
# Developers do not need to manually edit POT or PO files.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-17 18:54-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
msgid "Do you want to configure the server?"
|
||||
msgstr "Wollen Sie den Server konfigurieren?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
msgid ""
|
||||
"atftpd can have various parameters passed to it. These parameters can "
|
||||
"optimize performances for servers that do heavy work. The default values are "
|
||||
"suitable for most purposes."
|
||||
msgstr ""
|
||||
"atftpd kann mit verschiedenen Parametern gestartet werden. Diese Parameter "
|
||||
"können die Leistung intensiv genutzter Server erhöhen. Die Standartwerte "
|
||||
"sind für die meisten Anwendungsgebiete geeignet."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid "Should the server be started by inetd?"
|
||||
msgstr "Soll der Server von inetd gestartet werden?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid ""
|
||||
"atftpd can be started by the inetd superserver or as a daemon and handle "
|
||||
"incoming connections by itself. The latter is only recommend for very high "
|
||||
"usage server."
|
||||
msgstr ""
|
||||
"atftpd kann durch den inetd Hauptserver oder als 'Daemon' gestartet werden "
|
||||
"und selbst externe Verbindungsaufnahmen verwalten. Letzteres ist nur bei "
|
||||
"sehr stark genutzten Servern empfehlenswert."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:19
|
||||
msgid "300"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
msgid "Server timeout."
|
||||
msgstr "Server 'timeout'."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
msgid "How many seconds the main thread waits before exiting."
|
||||
msgstr "Die Zeit in Sekunden, die der Hauptprozess vor dem Beenden abwartet."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:25
|
||||
msgid "5"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
msgid "Retry timeout."
|
||||
msgstr "'Retry timeout'"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
msgid "How many seconds to wait for a reply before retransmitting a packet."
|
||||
msgstr ""
|
||||
"Die Zeit in Sekunden, die der Server verstreichen lässt, bevor das zuletzt "
|
||||
"gesendete Paket erneut übertragen wird"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:31
|
||||
msgid "100"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
msgid "Maximum number of threads."
|
||||
msgstr "Maximale Anzahl von Prozessen."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
msgid "Maximum number of concurrent threads that can be running."
|
||||
msgstr "Die maximale Anzahl gleichzeitig erlaubter Prozesse."
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../atftpd.templates:37
|
||||
msgid "7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
msgid "Verbosity level."
|
||||
msgstr "Niveau der Redseligkeit."
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
msgid ""
|
||||
"Level of logging. 7 logs everything including debug logs. 1 will log only "
|
||||
"the system critical logs. 5 (LOG_NOTICE) is the default value."
|
||||
msgstr ""
|
||||
"Intensität des Loggens. 7 loggt alles inklusive der 'debug' Meldungen. 1 "
|
||||
"loggt lediglich die systemkritischen Meldungen. 5 {LOG_NOTICE} ist der "
|
||||
"Standartwert."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:46
|
||||
msgid "Enable 'timeout' support"
|
||||
msgstr "Aktivieren der 'timeout' Unterstützung"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:51
|
||||
msgid "Enable 'tsize' support"
|
||||
msgstr "Aktivieren der 'tsize' Unterstützung"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:56
|
||||
msgid "Enable 'block size' support"
|
||||
msgstr "Aktivieren der 'block size' Unterstützung"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:61
|
||||
msgid "Enable 'multicast' support"
|
||||
msgstr "Aktivieren der 'multicast' Unterstützung"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:65
|
||||
msgid "69"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:66
|
||||
msgid "Port to listen for tftp request"
|
||||
msgstr "Port, der auf eine tftp Anfrage überwacht wird"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:70
|
||||
msgid "1758"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid "Port range for multicast file transfer"
|
||||
msgstr "Portbereich für 'multicast' Dateitransfers"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid ""
|
||||
"Multicast transfer will use any available port in a given set. For example, "
|
||||
"\"2000-2003, 3000\" allow atftpd to use port 2000 to 2003 and 3000."
|
||||
msgstr ""
|
||||
"'Multicast' Transfers werden jeden verfügbaren Port aus der angegebenen "
|
||||
"Auswahl verwenden. Die Angabe \"2000-2003, 3000\" erlaubt atftpd "
|
||||
"beispielsweise, die Ports 2000 bis 2003 sowie 3000 zu benutzen."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:77
|
||||
msgid "239.255.0.0-255"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid "Address range for multicast transfer"
|
||||
msgstr "Adressbereich für den 'multicast' Transfer"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid ""
|
||||
"Multicast transfer will use any available addresses from a given set of "
|
||||
"addresses. Syntax is \"a.b.c.d-d,a.b.c.d,...\""
|
||||
msgstr ""
|
||||
"'Multicast' Transfers werden jede verfügbare Adresse aus einer vorgegebenen "
|
||||
"Auswahl verwenden. Die Syntax lautet \"a.b.c.d-d,a.b.c.d,...\""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
msgid "Log to file instead of syslog?"
|
||||
msgstr "In eine Datei anstatt in das syslog schreiben?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
msgid ""
|
||||
"If your server does intensive tftp file serving, it is a good idea to say "
|
||||
"yes. That will avoid to clutter your syslog with tftpd logs."
|
||||
msgstr ""
|
||||
"Falls Ihr Server intensiv zur tftp Bereitstellung von Dateien genutzt wird, "
|
||||
"so ist es eine gute Idee, hier mit Ja zu antworten. Dies wird es vermeiden, "
|
||||
"Ihr syslog mit tftp Meldungen zuzumüllen."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:91
|
||||
msgid "/var/log/atftpd.log"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
msgid "Log file."
|
||||
msgstr "Logdatei."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
msgid ""
|
||||
"A file where atftpd write its logs. This file will be made writable for the "
|
||||
"user 'nobody' and group 'nogroup'."
|
||||
msgstr ""
|
||||
"Eine Datei, in die atftpd seine Meldungen schreibt. Diese Datei wird für den "
|
||||
"Benutzer 'nobody' und die Gruppe 'nogroup' mit Lese-Schreibzugriff zur "
|
||||
"Verfügung gestellt werden."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:98
|
||||
msgid "/tftpboot"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
msgid "Base directory."
|
||||
msgstr "Stammverzeichnis."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
msgid ""
|
||||
"The directory tree from where atftpd can serve files. That directory must be "
|
||||
"world readable."
|
||||
msgstr ""
|
||||
"Der Verzeichnisbaum, in dem atftpd Dateien zur Verfügung stellen kann. "
|
||||
"Dieses Verzeichnis muss für alle Benutzer lesbar sein."
|
292
atftp/debian/po/es.po
Normal file
292
atftp/debian/po/es.po
Normal file
@ -0,0 +1,292 @@
|
||||
#
|
||||
# Translators, if you are not familiar with the PO format, gettext
|
||||
# documentation is worth reading, especially sections dedicated to
|
||||
# this format, e.g. by running:
|
||||
# info -n '(gettext)PO Files'
|
||||
# info -n '(gettext)Header Entry'
|
||||
#
|
||||
# Some information specific to po-debconf are available at
|
||||
# /usr/share/doc/po-debconf/README-trans
|
||||
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
||||
#
|
||||
# Developers do not need to manually edit POT or PO files.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-17 18:54-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
#, fuzzy
|
||||
msgid "Do you want to configure the server?"
|
||||
msgstr "¿Quiere configurar el servidor?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"atftpd can have various parameters passed to it. These parameters can "
|
||||
"optimize performances for servers that do heavy work. The default values are "
|
||||
"suitable for most purposes."
|
||||
msgstr ""
|
||||
"A atftpd se le pueden pasar varios parámetros. Estos parámetros pueden "
|
||||
"optimizar su rendimiento en servidores con mucha carga. Los valores por "
|
||||
"defecto suelen ser adecuados en la mayoría de los casos."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid "Should the server be started by inetd?"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid ""
|
||||
"atftpd can be started by the inetd superserver or as a daemon and handle "
|
||||
"incoming connections by itself. The latter is only recommend for very high "
|
||||
"usage server."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:19
|
||||
msgid "300"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
#, fuzzy
|
||||
msgid "Server timeout."
|
||||
msgstr "Timeout del servidor."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
#, fuzzy
|
||||
msgid "How many seconds the main thread waits before exiting."
|
||||
msgstr ""
|
||||
"Especifique cuántos segundos ha de esperar el hilo principal del programa "
|
||||
"antes de finalizar."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:25
|
||||
msgid "5"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
#, fuzzy
|
||||
msgid "Retry timeout."
|
||||
msgstr "Timeout de respuesta."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
#, fuzzy
|
||||
msgid "How many seconds to wait for a reply before retransmitting a packet."
|
||||
msgstr ""
|
||||
"Especifique cuántos segundos se ha esperar una respuesta antes de volver a "
|
||||
"enviar un paquete."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:31
|
||||
msgid "100"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
#, fuzzy
|
||||
msgid "Maximum number of threads."
|
||||
msgstr "Máximo número de hilos."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
#, fuzzy
|
||||
msgid "Maximum number of concurrent threads that can be running."
|
||||
msgstr "Máximo número de hilos concurrentes que se puede ejecutar."
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../atftpd.templates:37
|
||||
msgid "7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
#, fuzzy
|
||||
msgid "Verbosity level."
|
||||
msgstr "Nivel de detalle de los registros."
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Level of logging. 7 logs everything including debug logs. 1 will log only "
|
||||
"the system critical logs. 5 (LOG_NOTICE) is the default value."
|
||||
msgstr ""
|
||||
"Nivel de registro: 7 lo guarda todo, incluyendo los logs de depuración. 1 "
|
||||
"grabará sólo los registros críticos del sistema. 5 (LOG_NOTICE) es el valor "
|
||||
"por omisión."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:46
|
||||
msgid "Enable 'timeout' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:51
|
||||
msgid "Enable 'tsize' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:56
|
||||
msgid "Enable 'block size' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:61
|
||||
msgid "Enable 'multicast' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:65
|
||||
msgid "69"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:66
|
||||
msgid "Port to listen for tftp request"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:70
|
||||
msgid "1758"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid "Port range for multicast file transfer"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid ""
|
||||
"Multicast transfer will use any available port in a given set. For example, "
|
||||
"\"2000-2003, 3000\" allow atftpd to use port 2000 to 2003 and 3000."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:77
|
||||
msgid "239.255.0.0-255"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid "Address range for multicast transfer"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid ""
|
||||
"Multicast transfer will use any available addresses from a given set of "
|
||||
"addresses. Syntax is \"a.b.c.d-d,a.b.c.d,...\""
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
#, fuzzy
|
||||
msgid "Log to file instead of syslog?"
|
||||
msgstr "¿Grabar los registros en un fichero en lugar de usar syslog?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"If your server does intensive tftp file serving, it is a good idea to say "
|
||||
"yes. That will avoid to clutter your syslog with tftpd logs."
|
||||
msgstr ""
|
||||
"Si su servidor realiza transferencias intensivas de ficheros mediante tftp, "
|
||||
"es una buena idea responder sí. Esto evitará que desborde su syslog con "
|
||||
"registros de tftpd."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:91
|
||||
msgid "/var/log/atftpd.log"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
#, fuzzy
|
||||
msgid "Log file."
|
||||
msgstr "Fichero de registro."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"A file where atftpd write its logs. This file will be made writable for the "
|
||||
"user 'nobody' and group 'nogroup'."
|
||||
msgstr ""
|
||||
"El fichero en el que tftpd escribirá sus logs. En este fichero podrá "
|
||||
"escribir el usuario 'nobody' y los usuarios del grupo 'nogroup'."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:98
|
||||
msgid "/tftpboot"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
#, fuzzy
|
||||
msgid "Base directory."
|
||||
msgstr "Directorio base."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The directory tree from where atftpd can serve files. That directory must be "
|
||||
"world readable."
|
||||
msgstr ""
|
||||
"El árbol de directorios a partir del cual servirá los ficheros atftpd. Ese "
|
||||
"directorio tiene que tener derechos de lectura para todos los usuarios."
|
285
atftp/debian/po/fr.po
Normal file
285
atftp/debian/po/fr.po
Normal file
@ -0,0 +1,285 @@
|
||||
#
|
||||
# Translators, if you are not familiar with the PO format, gettext
|
||||
# documentation is worth reading, especially sections dedicated to
|
||||
# this format, e.g. by running:
|
||||
# info -n '(gettext)PO Files'
|
||||
# info -n '(gettext)Header Entry'
|
||||
#
|
||||
# Some information specific to po-debconf are available at
|
||||
# /usr/share/doc/po-debconf/README-trans
|
||||
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
||||
#
|
||||
# Developers do not need to manually edit POT or PO files.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-17 18:54-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
msgid "Do you want to configure the server?"
|
||||
msgstr "Désirez-vous configurer le serveur ?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
msgid ""
|
||||
"atftpd can have various parameters passed to it. These parameters can "
|
||||
"optimize performances for servers that do heavy work. The default values are "
|
||||
"suitable for most purposes."
|
||||
msgstr ""
|
||||
"Atftpd peut recevoir des paramètres variés. Il est possible d'optimiser les "
|
||||
"performances en modifiant ces paramètres pour des serveurs effectuant des "
|
||||
"tâches lourdes. Dans la plupart des cas, les valeurs par défaut sont "
|
||||
"largement suffisantes."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid "Should the server be started by inetd?"
|
||||
msgstr "Doit-on démarrer le serveur par inetd ?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid ""
|
||||
"atftpd can be started by the inetd superserver or as a daemon and handle "
|
||||
"incoming connections by itself. The latter is only recommend for very high "
|
||||
"usage server."
|
||||
msgstr ""
|
||||
"Atftpd peut être démarré par le super-serveur inetd ou en serveur "
|
||||
"indépendant qui gère lui-même les connexions entrantes. Ce dernier mode "
|
||||
"n'est recommandé que pour les serveurs fortement sollicités."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:19
|
||||
msgid "300"
|
||||
msgstr "300"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
msgid "Server timeout."
|
||||
msgstr "Délais du serveur."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
msgid "How many seconds the main thread waits before exiting."
|
||||
msgstr ""
|
||||
"Combien de secondes la connexion principale est-elle maintenue avant de "
|
||||
"s'interrompre ?"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:25
|
||||
msgid "5"
|
||||
msgstr "5"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
msgid "Retry timeout."
|
||||
msgstr "Délais de relance."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
msgid "How many seconds to wait for a reply before retransmitting a packet."
|
||||
msgstr ""
|
||||
"Combien de secondes faut-il attendre une réponse avant de retransmettre un "
|
||||
"paquet ?"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:31
|
||||
msgid "100"
|
||||
msgstr "100"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
msgid "Maximum number of threads."
|
||||
msgstr "Nombre maximal de connexions."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
msgid "Maximum number of concurrent threads that can be running."
|
||||
msgstr "Nombre maximal de connexions simultanées."
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../atftpd.templates:37
|
||||
msgid "7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)"
|
||||
msgstr "7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)"
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
msgid "Verbosity level."
|
||||
msgstr "Niveau des informations souhaitées"
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
msgid ""
|
||||
"Level of logging. 7 logs everything including debug logs. 1 will log only "
|
||||
"the system critical logs. 5 (LOG_NOTICE) is the default value."
|
||||
msgstr ""
|
||||
"Niveau en dessous duquel l'information est enregistrée dans les journaux. 7 "
|
||||
"enregistre l'information de déboguage. 1 n'enregistre que les informations "
|
||||
"critiques. La valeur par défaut est 5 (LOG_NOTICE)."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:46
|
||||
msgid "Enable 'timeout' support"
|
||||
msgstr "Activer le support « timeout »"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:51
|
||||
msgid "Enable 'tsize' support"
|
||||
msgstr "Activer le support « tsize »"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:56
|
||||
msgid "Enable 'block size' support"
|
||||
msgstr "Activer le support « block size »"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:61
|
||||
msgid "Enable 'multicast' support"
|
||||
msgstr "Activer le support « multicast »"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:65
|
||||
msgid "69"
|
||||
msgstr "69"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:66
|
||||
msgid "Port to listen for tftp request"
|
||||
msgstr "Port d'écoute pour les requêtes tftp"
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:70
|
||||
msgid "1758"
|
||||
msgstr "1758"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid "Port range for multicast file transfer"
|
||||
msgstr "Intervalle des ports pour le transfert de fichiers en multidiffusion"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid ""
|
||||
"Multicast transfer will use any available port in a given set. For example, "
|
||||
"\"2000-2003, 3000\" allow atftpd to use port 2000 to 2003 and 3000."
|
||||
msgstr ""
|
||||
"Le transfert de fichiers en multidiffusion (« multicast ») utilisera tout "
|
||||
"port disponible d'un ensemble donné. Par exemple, « 2000-2003, 3000 » permet "
|
||||
"à atftpd d'utiliser les ports 2000 à 2003 et 3000."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:77
|
||||
msgid "239.255.0.0-255"
|
||||
msgstr "239.255.0.0-255"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid "Address range for multicast transfer"
|
||||
msgstr "Intervalle d'adresses pour le transfert en multidiffusion"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid ""
|
||||
"Multicast transfer will use any available addresses from a given set of "
|
||||
"addresses. Syntax is \"a.b.c.d-d,a.b.c.d,...\""
|
||||
msgstr ""
|
||||
"Le transfert en multidiffusion va utiliser n'importe quelle adresse "
|
||||
"disponible d'un ensemble donné. La syntaxe est « a.b.c.d-d,a.b.c.d,... »"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
msgid "Log to file instead of syslog?"
|
||||
msgstr "Enregistrer les messages dans un fichier à la place de syslog ?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
msgid ""
|
||||
"If your server does intensive tftp file serving, it is a good idea to say "
|
||||
"yes. That will avoid to clutter your syslog with tftpd logs."
|
||||
msgstr ""
|
||||
"Si votre serveur est utilisé intensivement comme serveur tftp, il est "
|
||||
"conseillé de dire « Yes ». Ceci évitera d'encombrer le journal syslog avec "
|
||||
"les journaux tftpd."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:91
|
||||
msgid "/var/log/atftpd.log"
|
||||
msgstr "/var/log/atftpd.log"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
msgid "Log file."
|
||||
msgstr "Fichier des journaux"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
msgid ""
|
||||
"A file where atftpd write its logs. This file will be made writable for the "
|
||||
"user 'nobody' and group 'nogroup'."
|
||||
msgstr ""
|
||||
"Fichier dans lequel les informations seront enregistrées. Ce fichier sera "
|
||||
"modifiable par l'utilisateur « nobody » et le groupe « nogroup »."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:98
|
||||
msgid "/tftpboot"
|
||||
msgstr "/tftpboot"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
msgid "Base directory."
|
||||
msgstr "Répertoire racine."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
msgid ""
|
||||
"The directory tree from where atftpd can serve files. That directory must be "
|
||||
"world readable."
|
||||
msgstr ""
|
||||
"Le répertoire à partir duquel atftpd sert les fichiers. Ce répertoire doit "
|
||||
"pouvoir être lu par tous."
|
287
atftp/debian/po/sv.po
Normal file
287
atftp/debian/po/sv.po
Normal file
@ -0,0 +1,287 @@
|
||||
#
|
||||
# Translators, if you are not familiar with the PO format, gettext
|
||||
# documentation is worth reading, especially sections dedicated to
|
||||
# this format, e.g. by running:
|
||||
# info -n '(gettext)PO Files'
|
||||
# info -n '(gettext)Header Entry'
|
||||
#
|
||||
# Some information specific to po-debconf are available at
|
||||
# /usr/share/doc/po-debconf/README-trans
|
||||
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
||||
#
|
||||
# Developers do not need to manually edit POT or PO files.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-17 18:54-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
#, fuzzy
|
||||
msgid "Do you want to configure the server?"
|
||||
msgstr "Vill du konfigurera servern?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"atftpd can have various parameters passed to it. These parameters can "
|
||||
"optimize performances for servers that do heavy work. The default values are "
|
||||
"suitable for most purposes."
|
||||
msgstr ""
|
||||
"atfptd kan använda ett antal parametrar. Dessa parametrar kan optimera "
|
||||
"prestandan för servrar som är hårt belastade. De förvalda värdena är "
|
||||
"användbara för de flesta syften."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid "Should the server be started by inetd?"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid ""
|
||||
"atftpd can be started by the inetd superserver or as a daemon and handle "
|
||||
"incoming connections by itself. The latter is only recommend for very high "
|
||||
"usage server."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:19
|
||||
msgid "300"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
#, fuzzy
|
||||
msgid "Server timeout."
|
||||
msgstr "Tid till avslut."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
#, fuzzy
|
||||
msgid "How many seconds the main thread waits before exiting."
|
||||
msgstr "Hur många sekunder huvudtråden väntar innan den avslutas."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:25
|
||||
msgid "5"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
#, fuzzy
|
||||
msgid "Retry timeout."
|
||||
msgstr "Tid mellan försök."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
#, fuzzy
|
||||
msgid "How many seconds to wait for a reply before retransmitting a packet."
|
||||
msgstr ""
|
||||
"Hur många sekunder vi väntar på ett svar innan vi skickar paketet igen."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:31
|
||||
msgid "100"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
#, fuzzy
|
||||
msgid "Maximum number of threads."
|
||||
msgstr "Maximalt antal trådar."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
#, fuzzy
|
||||
msgid "Maximum number of concurrent threads that can be running."
|
||||
msgstr "Maximalt antal trådar som kan köras parallellt."
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../atftpd.templates:37
|
||||
msgid "7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
#, fuzzy
|
||||
msgid "Verbosity level."
|
||||
msgstr "Förklaringsnivå."
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Level of logging. 7 logs everything including debug logs. 1 will log only "
|
||||
"the system critical logs. 5 (LOG_NOTICE) is the default value."
|
||||
msgstr ""
|
||||
"Hur informativ loggarna är. 7 loggar allt. 1 loggar bara systemkritiska "
|
||||
"meddelanden. 5 (LOG_NOTICE) är standardvärdet."
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:46
|
||||
msgid "Enable 'timeout' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:51
|
||||
msgid "Enable 'tsize' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:56
|
||||
msgid "Enable 'block size' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:61
|
||||
msgid "Enable 'multicast' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:65
|
||||
msgid "69"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:66
|
||||
msgid "Port to listen for tftp request"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:70
|
||||
msgid "1758"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid "Port range for multicast file transfer"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid ""
|
||||
"Multicast transfer will use any available port in a given set. For example, "
|
||||
"\"2000-2003, 3000\" allow atftpd to use port 2000 to 2003 and 3000."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:77
|
||||
msgid "239.255.0.0-255"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid "Address range for multicast transfer"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid ""
|
||||
"Multicast transfer will use any available addresses from a given set of "
|
||||
"addresses. Syntax is \"a.b.c.d-d,a.b.c.d,...\""
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
#, fuzzy
|
||||
msgid "Log to file instead of syslog?"
|
||||
msgstr "Logga till fil istället för syslog?"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"If your server does intensive tftp file serving, it is a good idea to say "
|
||||
"yes. That will avoid to clutter your syslog with tftpd logs."
|
||||
msgstr ""
|
||||
"Om servern är mycket intensivt trafikerad är det en god idé att säga ja. Det "
|
||||
"undviker att skräpa ner systemloggen med atftpd-loggar."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:91
|
||||
msgid "/var/log/atftpd.log"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
#, fuzzy
|
||||
msgid "Log file."
|
||||
msgstr "Loggfil."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"A file where atftpd write its logs. This file will be made writable for the "
|
||||
"user 'nobody' and group 'nogroup'."
|
||||
msgstr ""
|
||||
"Filen som atftpd skriver sin logg till. Denna fil kommer göras skrivbar för "
|
||||
"användaren 'nobody' och gruppen 'nogroup'."
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:98
|
||||
msgid "/tftpboot"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
#, fuzzy
|
||||
msgid "Base directory."
|
||||
msgstr "Rotkatalog."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The directory tree from where atftpd can serve files. That directory must be "
|
||||
"world readable."
|
||||
msgstr ""
|
||||
"Katalogträdet som atftpd tillhandahåller filer från. Katalogen måste vara "
|
||||
"läsbar för alla."
|
259
atftp/debian/po/templates.pot
Normal file
259
atftp/debian/po/templates.pot
Normal file
@ -0,0 +1,259 @@
|
||||
#
|
||||
# Translators, if you are not familiar with the PO format, gettext
|
||||
# documentation is worth reading, especially sections dedicated to
|
||||
# this format, e.g. by running:
|
||||
# info -n '(gettext)PO Files'
|
||||
# info -n '(gettext)Header Entry'
|
||||
#
|
||||
# Some information specific to po-debconf are available at
|
||||
# /usr/share/doc/po-debconf/README-trans
|
||||
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
||||
#
|
||||
# Developers do not need to manually edit POT or PO files.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-17 18:54-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
msgid "Do you want to configure the server?"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:4
|
||||
msgid ""
|
||||
"atftpd can have various parameters passed to it. These parameters can "
|
||||
"optimize performances for servers that do heavy work. The default values are "
|
||||
"suitable for most purposes."
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid "Should the server be started by inetd?"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:12
|
||||
msgid ""
|
||||
"atftpd can be started by the inetd superserver or as a daemon and handle "
|
||||
"incoming connections by itself. The latter is only recommend for very high "
|
||||
"usage server."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:19
|
||||
msgid "300"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
msgid "Server timeout."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:20
|
||||
msgid "How many seconds the main thread waits before exiting."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:25
|
||||
msgid "5"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
msgid "Retry timeout."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:26
|
||||
msgid "How many seconds to wait for a reply before retransmitting a packet."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:31
|
||||
msgid "100"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
msgid "Maximum number of threads."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:32
|
||||
msgid "Maximum number of concurrent threads that can be running."
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../atftpd.templates:37
|
||||
msgid "7 (LOG_DEBUG), 6 (LOG_INFO), 5 (LOG_NOTICE), 4 (LOG_WARNING)"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
msgid "Verbosity level."
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../atftpd.templates:39
|
||||
msgid ""
|
||||
"Level of logging. 7 logs everything including debug logs. 1 will log only "
|
||||
"the system critical logs. 5 (LOG_NOTICE) is the default value."
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:46
|
||||
msgid "Enable 'timeout' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:51
|
||||
msgid "Enable 'tsize' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:56
|
||||
msgid "Enable 'block size' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:61
|
||||
msgid "Enable 'multicast' support"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:65
|
||||
msgid "69"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:66
|
||||
msgid "Port to listen for tftp request"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:70
|
||||
msgid "1758"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid "Port range for multicast file transfer"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:71
|
||||
msgid ""
|
||||
"Multicast transfer will use any available port in a given set. For example, "
|
||||
"\"2000-2003, 3000\" allow atftpd to use port 2000 to 2003 and 3000."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:77
|
||||
msgid "239.255.0.0-255"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid "Address range for multicast transfer"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:78
|
||||
msgid ""
|
||||
"Multicast transfer will use any available addresses from a given set of "
|
||||
"addresses. Syntax is \"a.b.c.d-d,a.b.c.d,...\""
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
msgid "Log to file instead of syslog?"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../atftpd.templates:85
|
||||
msgid ""
|
||||
"If your server does intensive tftp file serving, it is a good idea to say "
|
||||
"yes. That will avoid to clutter your syslog with tftpd logs."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:91
|
||||
msgid "/var/log/atftpd.log"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
msgid "Log file."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:92
|
||||
msgid ""
|
||||
"A file where atftpd write its logs. This file will be made writable for the "
|
||||
"user 'nobody' and group 'nogroup'."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Default
|
||||
#: ../atftpd.templates:98
|
||||
msgid "/tftpboot"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
msgid "Base directory."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../atftpd.templates:99
|
||||
msgid ""
|
||||
"The directory tree from where atftpd can serve files. That directory must be "
|
||||
"world readable."
|
||||
msgstr ""
|
92
atftp/debian/rules
Normal file
92
atftp/debian/rules
Normal file
@ -0,0 +1,92 @@
|
||||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# GNU copyright 1997 by Joey Hess.
|
||||
#
|
||||
# This version is for a hypothetical package that builds an
|
||||
# architecture-dependant package, as well as an architecture-independent
|
||||
# package.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# This is the debhelper compatability version to use.
|
||||
export DH_COMPAT=2
|
||||
|
||||
# This has to be exported to make some magic below work.
|
||||
export DH_OPTIONS
|
||||
|
||||
configure: configure-stamp
|
||||
configure-stamp:
|
||||
dh_testdir
|
||||
# Add here commands to configure the package.
|
||||
dh_quilt_patch
|
||||
./configure --prefix=/usr --mandir=/usr/share/man --disable-libwrap
|
||||
|
||||
touch configure-stamp
|
||||
|
||||
build: configure-stamp build-stamp
|
||||
build-stamp:
|
||||
dh_testdir
|
||||
|
||||
# Add here commands to compile the package.
|
||||
$(MAKE)
|
||||
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp configure-stamp
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
-$(MAKE) clean
|
||||
-$(MAKE) distclean
|
||||
|
||||
dh_clean
|
||||
|
||||
install: DH_OPTIONS=
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/tmp.
|
||||
$(MAKE) install prefix=`pwd`/debian/tmp/usr \
|
||||
mandir=`pwd`/debian/tmp/usr/share/man
|
||||
|
||||
dh_movefiles
|
||||
dh_installdocs -patftp-xcat
|
||||
#dh_installdocs -patftpd docs/*.html
|
||||
|
||||
# Build architecture-independent files here.
|
||||
# Pass -i to all debhelper commands in this target to reduce clutter.
|
||||
binary-indep: build install
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
# Pass -a to all debhelper commands in this target to reduce clutter.
|
||||
binary-arch: DH_OPTIONS=-a
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installdebconf
|
||||
dh_installinit --init-script=atftpd
|
||||
# dh_installexamples
|
||||
# dh_installcron
|
||||
# dh_installmanpages
|
||||
# dh_installinfo
|
||||
dh_installchangelogs Changelog
|
||||
dh_strip
|
||||
dh_link
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
# You may want to make some executables suid here.
|
||||
#dh_suidregister
|
||||
dh_installdeb
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
9
atftp/make_deb.sh
Normal file
9
atftp/make_deb.sh
Normal file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
tar xvfz atftp_0.7.dfsg.orig.tar.gz
|
||||
cd atftp-0.7.dfsg
|
||||
rm -rf debian
|
||||
cp -rL ../debian .
|
||||
dpkg-buildpackage
|
||||
cd -
|
||||
rm -rf atftp-0.7.dfsg
|
11
conserver/debian/changelog
Normal file
11
conserver/debian/changelog
Normal file
@ -0,0 +1,11 @@
|
||||
conserver (8.1.16-2) unstable; urgency=low
|
||||
|
||||
* Initial Debian build
|
||||
|
||||
-- Mark Hamzy <hamzy@us.ibm.com> Mon, 02 May 2011 13:05:49 -0500
|
||||
|
||||
conserver (8.1.16-1) unstable; urgency=low
|
||||
|
||||
* Initial release
|
||||
|
||||
-- OCF xCAT <xcat@ocf.co.uk> Thu, 28 Oct 2010 01:04:00 +0100
|
1
conserver/debian/compat
Normal file
1
conserver/debian/compat
Normal file
@ -0,0 +1 @@
|
||||
7
|
19
conserver/debian/control
Normal file
19
conserver/debian/control
Normal file
@ -0,0 +1,19 @@
|
||||
Source: conserver
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: Arif Ali <aali@ocf.co.uk>
|
||||
Build-Depends: debhelper (>= 7.0.50~), autotools-dev
|
||||
Standards-Version: 3.8.4
|
||||
Homepage: http://www.conserver.com/
|
||||
#Vcs-Git: git://git.debian.org/collab-maint/conserver.git
|
||||
#Vcs-Browser: http://git.debian.org/?p=collab-maint/conserver.git;a=summary
|
||||
|
||||
Package: conserver
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: Serial console server daemon/client
|
||||
Conserver is an application that allows multiple users to watch a
|
||||
serial console at the same time. It can log the data, allows users to
|
||||
take write-access of a console (one at a time), and has a variety of
|
||||
bells and whistles to accentuate that basic functionality.
|
||||
|
115
conserver/debian/copyright
Normal file
115
conserver/debian/copyright
Normal file
@ -0,0 +1,115 @@
|
||||
Since this piece of software has had many contiributors, there is a
|
||||
"chain" of licensing information embedded in the files. I've copied
|
||||
what I could find here so that it's easy to reference. The entire
|
||||
bundle of software is guided by these licensing statements.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 2000, conserver.com
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
- Neither the name of conserver.com nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1998, GNAC, Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
- Neither the name of GNAC, Inc. nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Copyright 1992 Purdue Research Foundation, West Lafayette, Indiana
|
||||
47907. All rights reserved.
|
||||
|
||||
This software is not subject to any license of the American Telephone
|
||||
and Telegraph Company or the Regents of the University of California.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose on
|
||||
any computer system, and to alter it and redistribute it freely, subject
|
||||
to the following restrictions:
|
||||
|
||||
1. Neither the authors nor Purdue University are responsible for any
|
||||
consequences of the use of this software.
|
||||
|
||||
2. The origin of this software must not be misrepresented, either by
|
||||
explicit claim or by omission. Credit to the authors and Purdue
|
||||
University must appear in documentation and sources.
|
||||
|
||||
3. Altered versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
4. This notice may not be removed or altered.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1990 The Ohio State University.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms are permitted
|
||||
provided that: (1) source distributions retain this entire copyright
|
||||
notice and comment, and (2) distributions including binaries display
|
||||
the following acknowledgement: ``This product includes software
|
||||
developed by The Ohio State University and its contributors''
|
||||
in the documentation or other materials provided with the distribution
|
||||
and in all advertising materials mentioning features or use of this
|
||||
software. Neither the name of the University nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
----------------------------------------------------------------------------
|
3
conserver/debian/docs
Normal file
3
conserver/debian/docs
Normal file
@ -0,0 +1,3 @@
|
||||
FAQ
|
||||
README
|
||||
TODO
|
54
conserver/debian/init.d
Normal file
54
conserver/debian/init.d
Normal file
@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Startup for conserver
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: conserver
|
||||
# Required-Start: $network
|
||||
# Required-Stop:
|
||||
# Should-Start:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop:
|
||||
# Short-Description: Serial console server daemon/client
|
||||
# Description: Conserver is an application that allows multiple users to watch a
|
||||
# serial console at the same time. It can log the data, allows users to
|
||||
# take write-access of a console (one at a time), and has a variety of
|
||||
# bells and whistles to accentuate that basic functionality.
|
||||
### END INIT INFO
|
||||
|
||||
|
||||
PATH=/usr/sbin:/usr/bin:/bin:/usr/local/bin
|
||||
PIDFILE="/var/run/conserver.pid"
|
||||
|
||||
signalmaster() {
|
||||
sig=$1
|
||||
if [ -f "$PIDFILE" ]; then
|
||||
master=`cat "$PIDFILE"`
|
||||
else
|
||||
master=`ps -ef | grep conserver | awk '$3 == "1"{print $2}'`
|
||||
fi
|
||||
[ "$master" ] && kill -$sig $master
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
'start')
|
||||
echo "Starting console server daemon"
|
||||
conserver -d
|
||||
;;
|
||||
|
||||
'stop')
|
||||
echo "Stopping console server daemon"
|
||||
signalmaster TERM
|
||||
;;
|
||||
|
||||
'restart')
|
||||
echo "Restarting console server daemon"
|
||||
signalmaster HUP
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 { start | stop | restart }"
|
||||
;;
|
||||
|
||||
esac
|
||||
exit 0
|
269
conserver/debian/patches/certificate-auth.patch
Normal file
269
conserver/debian/patches/certificate-auth.patch
Normal file
@ -0,0 +1,269 @@
|
||||
diff -ur conserver-8.1.16/conserver/main.c conserver-8.1.16-ssl/conserver/main.c
|
||||
--- conserver-8.1.16/conserver/main.c 2007-04-02 13:59:16.000000000 -0400
|
||||
+++ conserver-8.1.16-ssl/conserver/main.c 2008-01-09 12:46:30.000000000 -0500
|
||||
@@ -357,7 +357,7 @@
|
||||
} else {
|
||||
ciphers = "ALL:!LOW:!EXP:!MD5:@STRENGTH";
|
||||
}
|
||||
- SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, SSLVerifyCallback);
|
||||
+ SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT, SSLVerifyCallback);
|
||||
SSL_CTX_set_options(ctx,
|
||||
SSL_OP_ALL | SSL_OP_NO_SSLv2 |
|
||||
SSL_OP_SINGLE_DH_USE);
|
||||
@@ -365,6 +365,9 @@
|
||||
SSL_MODE_ENABLE_PARTIAL_WRITE |
|
||||
SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER |
|
||||
SSL_MODE_AUTO_RETRY);
|
||||
+ if (config->sslauthority != (char *)0) {
|
||||
+ SSL_CTX_load_verify_locations(ctx,config->sslauthority,"");
|
||||
+ }
|
||||
SSL_CTX_set_tmp_dh_callback(ctx, TmpDHCallback);
|
||||
if (SSL_CTX_set_cipher_list(ctx, ciphers) != 1) {
|
||||
Error("SetupSSL(): setting SSL cipher list failed");
|
||||
@@ -1190,6 +1193,12 @@
|
||||
if ((optConf->secondaryport = StrDup(optarg)) == (char *)0)
|
||||
OutOfMem();
|
||||
break;
|
||||
+ case 'A':
|
||||
+#if HAVE_OPENSSL
|
||||
+ if ((optConf->sslauthority = StrDup(optarg)) == (char*)0)
|
||||
+ OutOfMem();
|
||||
+#endif
|
||||
+ break;
|
||||
case 'c':
|
||||
#if HAVE_OPENSSL
|
||||
if ((optConf->sslcredentials =
|
||||
@@ -1529,6 +1538,12 @@
|
||||
else
|
||||
config->sslrequired = defConfig.sslrequired;
|
||||
|
||||
+ if (optConf->sslauthority != (char *)0)
|
||||
+ config->sslauthority = StrDup(optConf->sslauthority);
|
||||
+ else if (pConfig->sslauthority != (char *)0)
|
||||
+ config->sslauthority = StrDup(pConfig->sslauthority);
|
||||
+ else
|
||||
+ config->sslauthority = StrDup(defConfig.sslauthority);
|
||||
if (optConf->sslcredentials != (char *)0)
|
||||
config->sslcredentials = StrDup(optConf->sslcredentials);
|
||||
else if (pConfig->sslcredentials != (char *)0)
|
||||
diff -ur conserver-8.1.16/conserver/readcfg.c conserver-8.1.16-ssl/conserver/readcfg.c
|
||||
--- conserver-8.1.16/conserver/readcfg.c 2007-04-02 13:59:16.000000000 -0400
|
||||
+++ conserver-8.1.16-ssl/conserver/readcfg.c 2008-01-09 12:41:08.000000000 -0500
|
||||
@@ -4385,6 +4385,8 @@
|
||||
#if HAVE_OPENSSL
|
||||
if (c->sslcredentials != (char *)0)
|
||||
free(c->sslcredentials);
|
||||
+ if (c->sslauthority != (char *)0)
|
||||
+ free(c->sslauthority);
|
||||
#endif
|
||||
free(c);
|
||||
}
|
||||
@@ -4474,6 +4476,12 @@
|
||||
parserConfigTemp->secondaryport = (char *)0;
|
||||
}
|
||||
#if HAVE_OPENSSL
|
||||
+ if (parserConfigTemp->sslauthority != (char *)0) {
|
||||
+ if (pConfig->sslauthority != (char *)0)
|
||||
+ free(pConfig->sslauthority);
|
||||
+ pConfig->sslauthority = parserConfigTemp->sslauthority;
|
||||
+ parserConfigTemp->sslauthority = (char *)0;
|
||||
+ }
|
||||
if (parserConfigTemp->sslcredentials != (char *)0) {
|
||||
if (pConfig->sslcredentials != (char *)0)
|
||||
free(pConfig->sslcredentials);
|
||||
@@ -4786,6 +4794,33 @@
|
||||
|
||||
void
|
||||
#if PROTOTYPES
|
||||
+ConfigItemSslauthority(char *id)
|
||||
+#else
|
||||
+ConfigItemSslauthority(id)
|
||||
+ char *id;
|
||||
+#endif
|
||||
+{
|
||||
+ CONDDEBUG((1, "ConfigItemSslauthority(%s) [%s:%d]", id, file, line));
|
||||
+#if HAVE_OPENSSL
|
||||
+ if (parserConfigTemp->sslauthority != (char *)0)
|
||||
+ free(parserConfigTemp->sslauthority);
|
||||
+
|
||||
+ if ((id == (char *)0) || (*id == '\000')) {
|
||||
+ parserConfigTemp->sslauthority = (char *)0;
|
||||
+ return;
|
||||
+ }
|
||||
+ if ((parserConfigTemp->sslauthority = StrDup(id)) == (char *)0)
|
||||
+ OutOfMem();
|
||||
+#else
|
||||
+ if (isMaster)
|
||||
+ Error
|
||||
+ ("sslauthority ignored - encryption not compiled into code [%s:%d]",
|
||||
+ file, line);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+#if PROTOTYPES
|
||||
ConfigItemSslcredentials(char *id)
|
||||
#else
|
||||
ConfigItemSslcredentials(id)
|
||||
@@ -4962,6 +4997,7 @@
|
||||
{"secondaryport", ConfigItemSecondaryport},
|
||||
{"setproctitle", ConfigItemSetproctitle},
|
||||
{"sslcredentials", ConfigItemSslcredentials},
|
||||
+ {"sslauthority", ConfigItemSslauthority},
|
||||
{"sslrequired", ConfigItemSslrequired},
|
||||
{"unifiedlog", ConfigItemUnifiedlog},
|
||||
{(char *)0, (void *)0}
|
||||
@@ -5250,6 +5286,27 @@
|
||||
}
|
||||
#endif
|
||||
#if HAVE_OPENSSL
|
||||
+ if (optConf->sslauthority == (char *)0) {
|
||||
+ if (pConfig->sslauthority == (char *)0) {
|
||||
+ if (config->sslauthority != (char *)0) {
|
||||
+ free(config->sslauthority);
|
||||
+ config->sslauthority = (char *)0;
|
||||
+ Msg("warning: `sslauthority' config option changed - you must restart for it to take effect");
|
||||
+ }
|
||||
+ } else {
|
||||
+ if (config->sslauthority == (char *)0 ||
|
||||
+ strcmp(pConfig->sslauthority,
|
||||
+ config->sslauthority) != 0) {
|
||||
+ if (config->sslauthority != (char *)0)
|
||||
+ free(config->sslauthority);
|
||||
+ if ((config->sslauthority =
|
||||
+ StrDup(pConfig->sslauthority))
|
||||
+ == (char *)0)
|
||||
+ OutOfMem();
|
||||
+ Msg("warning: `sslauthority' config option changed - you must restart for it to take effect");
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
if (optConf->sslcredentials == (char *)0) {
|
||||
if (pConfig->sslcredentials == (char *)0) {
|
||||
if (config->sslcredentials != (char *)0) {
|
||||
diff -ur conserver-8.1.16/conserver/readcfg.h conserver-8.1.16-ssl/conserver/readcfg.h
|
||||
--- conserver-8.1.16/conserver/readcfg.h 2005-06-10 22:30:31.000000000 -0400
|
||||
+++ conserver-8.1.16-ssl/conserver/readcfg.h 2008-01-09 08:10:54.000000000 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
#endif
|
||||
#if HAVE_OPENSSL
|
||||
char *sslcredentials;
|
||||
+ char *sslauthority;
|
||||
FLAG sslrequired;
|
||||
#endif
|
||||
} CONFIG;
|
||||
diff -ur conserver-8.1.16/console/console.c conserver-8.1.16-ssl/console/console.c
|
||||
--- conserver-8.1.16/console/console.c 2006-06-14 23:01:05.000000000 -0400
|
||||
+++ conserver-8.1.16-ssl/console/console.c 2008-01-09 12:49:39.000000000 -0500
|
||||
@@ -105,7 +105,7 @@
|
||||
} else {
|
||||
ciphers = "ALL:!LOW:!EXP:!MD5:@STRENGTH";
|
||||
}
|
||||
- SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, SSLVerifyCallback);
|
||||
+ SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT, SSLVerifyCallback);
|
||||
SSL_CTX_set_options(ctx,
|
||||
SSL_OP_ALL | SSL_OP_NO_SSLv2 |
|
||||
SSL_OP_SINGLE_DH_USE);
|
||||
@@ -113,6 +113,9 @@
|
||||
SSL_MODE_ENABLE_PARTIAL_WRITE |
|
||||
SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER |
|
||||
SSL_MODE_AUTO_RETRY);
|
||||
+ if (config->sslauthority != (char *)0) {
|
||||
+ SSL_CTX_load_verify_locations(ctx, config->sslauthority,"");
|
||||
+ }
|
||||
if (SSL_CTX_set_cipher_list(ctx, ciphers) != 1) {
|
||||
Error("Setting SSL cipher list failed");
|
||||
Bye(EX_UNAVAILABLE);
|
||||
@@ -2204,6 +2207,14 @@
|
||||
config->playback = 0;
|
||||
|
||||
#if HAVE_OPENSSL
|
||||
+ if (optConf->sslauthority != (char *)0 &&
|
||||
+ optConf->sslauthority[0] != '\000')
|
||||
+ config->sslauthority = StrDup(optConf->sslauthority);
|
||||
+ else if (pConfig->sslauthority != (char *)0 &&
|
||||
+ pConfig->sslauthority[0] != '\000')
|
||||
+ config->sslauthority = StrDup(pConfig->sslauthority);
|
||||
+ else
|
||||
+ config->sslauthority = (char *)0;
|
||||
if (optConf->sslcredentials != (char *)0 &&
|
||||
optConf->sslcredentials[0] != '\000')
|
||||
config->sslcredentials = StrDup(optConf->sslcredentials);
|
||||
diff -ur conserver-8.1.16/console/readconf.c conserver-8.1.16-ssl/console/readconf.c
|
||||
--- conserver-8.1.16/console/readconf.c 2006-04-03 09:32:12.000000000 -0400
|
||||
+++ conserver-8.1.16-ssl/console/readconf.c 2008-01-09 11:14:20.000000000 -0500
|
||||
@@ -37,6 +37,8 @@
|
||||
if (c->escape != (char *)0)
|
||||
free(c->escape);
|
||||
#if HAVE_OPENSSL
|
||||
+ if (c->sslauthority != (char *)0)
|
||||
+ free(c->sslauthority);
|
||||
if (c->sslcredentials != (char *)0)
|
||||
free(c->sslcredentials);
|
||||
#endif
|
||||
@@ -86,6 +88,13 @@
|
||||
if (parserConfigDefault->playback != FLAGUNKNOWN)
|
||||
c->playback = parserConfigDefault->playback;
|
||||
#if HAVE_OPENSSL
|
||||
+ if (parserConfigDefault->sslauthority != (char *)0) {
|
||||
+ if (c->sslauthority != (char *)0)
|
||||
+ free(c->sslauthority);
|
||||
+ if ((c->sslauthority =
|
||||
+ StrDup(parserConfigDefault->sslauthority)) == (char *)0)
|
||||
+ OutOfMem();
|
||||
+ }
|
||||
if (parserConfigDefault->sslcredentials != (char *)0) {
|
||||
if (c->sslcredentials != (char *)0)
|
||||
free(c->sslcredentials);
|
||||
@@ -480,6 +489,32 @@
|
||||
|
||||
void
|
||||
#if PROTOTYPES
|
||||
+ConfigItemSslauthority(char *id)
|
||||
+#else
|
||||
+ConfigItemSslauthority(id)
|
||||
+ char *id;
|
||||
+#endif
|
||||
+{
|
||||
+ CONDDEBUG((1, "ConfigItemSslauthority(%s) [%s:%d]", id, file, line));
|
||||
+#if HAVE_OPENSSL
|
||||
+ if (parserConfigTemp->sslauthority != (char *)0)
|
||||
+ free(parserConfigTemp->sslauthority);
|
||||
+
|
||||
+ if ((id == (char *)0) || (*id == '\000')) {
|
||||
+ parserConfigTemp->sslauthority = (char *)0;
|
||||
+ return;
|
||||
+ }
|
||||
+ if ((parserConfigTemp->sslauthority = StrDup(id)) == (char *)0)
|
||||
+ OutOfMem();
|
||||
+#else
|
||||
+ Error
|
||||
+ ("sslauthority ignored - encryption not compiled into code [%s:%d]",
|
||||
+ file, line);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+#if PROTOTYPES
|
||||
ConfigItemSslcredentials(char *id)
|
||||
#else
|
||||
ConfigItemSslcredentials(id)
|
||||
@@ -712,6 +747,7 @@
|
||||
{"port", ConfigItemPort},
|
||||
{"replay", ConfigItemReplay},
|
||||
{"sslcredentials", ConfigItemSslcredentials},
|
||||
+ {"sslauthority", ConfigItemSslauthority},
|
||||
{"sslrequired", ConfigItemSslrequired},
|
||||
{"sslenabled", ConfigItemSslenabled},
|
||||
{"striphigh", ConfigItemStriphigh},
|
||||
diff -ur conserver-8.1.16/console/readconf.h conserver-8.1.16-ssl/console/readconf.h
|
||||
--- conserver-8.1.16/console/readconf.h 2006-04-03 09:32:12.000000000 -0400
|
||||
+++ conserver-8.1.16-ssl/console/readconf.h 2008-01-09 11:07:41.000000000 -0500
|
||||
@@ -18,6 +18,7 @@
|
||||
unsigned short playback;
|
||||
#if HAVE_OPENSSL
|
||||
char *sslcredentials;
|
||||
+ char *sslauthority;
|
||||
FLAG sslrequired;
|
||||
FLAG sslenabled;
|
||||
#endif
|
6399
conserver/debian/patches/debian-conserver-xcat.patch
Normal file
6399
conserver/debian/patches/debian-conserver-xcat.patch
Normal file
File diff suppressed because it is too large
Load Diff
116
conserver/debian/patches/initscript.patch
Normal file
116
conserver/debian/patches/initscript.patch
Normal file
@ -0,0 +1,116 @@
|
||||
diff -urN conserver-8.1.16/contrib/redhat-rpm/conserver.init conserver-8.1.16-diffinit/contrib/redhat-rpm/conserver.init
|
||||
--- conserver-8.1.16/contrib/redhat-rpm/conserver.init 2003-02-27 21:06:50.000000000 -0500
|
||||
+++ conserver-8.1.16-diffinit/contrib/redhat-rpm/conserver.init 2008-06-27 12:05:28.000000000 -0400
|
||||
@@ -6,15 +6,53 @@
|
||||
# description: conserver is a serial-port console daemon
|
||||
# config: /etc/conserver.cf
|
||||
#
|
||||
+RHPassed()
|
||||
+{
|
||||
+ passed
|
||||
+ echo
|
||||
+}
|
||||
+RHSuccess()
|
||||
+{
|
||||
+ success
|
||||
+ echo
|
||||
+}
|
||||
+RHFailure()
|
||||
+{
|
||||
+ failure
|
||||
+ echo
|
||||
+}
|
||||
+MStatus()
|
||||
+{
|
||||
+ ps ax|grep -v grep|grep /usr/sbin/conserver >& /dev/null
|
||||
+ if [ "$?" = "0" ]; then
|
||||
+ RVAL=0
|
||||
+ echo "conserver is running"
|
||||
+ else
|
||||
+ RVAL=3
|
||||
+ echo "consever is not running"
|
||||
+ fi
|
||||
+ return $RVAL
|
||||
+}
|
||||
|
||||
-# Source function library.
|
||||
-. /etc/rc.d/init.d/functions
|
||||
-
|
||||
-# Source networking configuration.
|
||||
-. /etc/sysconfig/network
|
||||
|
||||
-# Check that networking is up.
|
||||
-[ ${NETWORKING} = "no" ] && exit 0
|
||||
+# Source function library.
|
||||
+if [ -f /etc/rc.d/init.d/functions ]; then
|
||||
+ . /etc/rc.d/init.d/functions
|
||||
+ DAEMON=daemon
|
||||
+ SUCCESS=RHSuccess
|
||||
+ FAILURE=RHFailure
|
||||
+ PASSED=RHPassed
|
||||
+ STATUS=status
|
||||
+elif [ -f /lib/lsb/init-functions ]; then
|
||||
+ . /lib/lsb/init-functions
|
||||
+ DAEMON=start_daemon
|
||||
+ SUCCESS=log_success_msg
|
||||
+ FAILURE=log_failure_msg
|
||||
+ PASSED=log_warning_msg
|
||||
+ STATUS=MStatus
|
||||
+else
|
||||
+ echo "Error, not RedHat and not lsb, do not know how to run this platform"
|
||||
+fi
|
||||
|
||||
# make sure conserver is installed and executable
|
||||
[ -x /usr/sbin/conserver ] || exit 1
|
||||
@@ -24,23 +62,44 @@
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting conserver: "
|
||||
- daemon conserver -d
|
||||
- echo
|
||||
+ $DAEMON /usr/sbin/conserver -o -O1 -d
|
||||
touch /var/lock/subsys/conserver
|
||||
+ $STATUS conserver >& /dev/null
|
||||
+ if [ "$?" != "0" ]; then
|
||||
+ $FAILURE
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ $SUCCESS
|
||||
;;
|
||||
stop)
|
||||
+ $STATUS conserver >& /dev/null
|
||||
+ if [ "$?" != "0" ]; then
|
||||
+ echo -n "conserver not running, not stopping "
|
||||
+ $PASSED
|
||||
+ exit 1
|
||||
+ fi
|
||||
echo -n "Shutting down conserver: "
|
||||
killproc conserver
|
||||
- echo
|
||||
rm -f /var/lock/subsys/conserver
|
||||
+ $STATUS conserver >& /dev/null
|
||||
+ if [ "$?" == "0" ]; then
|
||||
+ $FAILURE
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ $SUCCESS
|
||||
;;
|
||||
status)
|
||||
- status conserver
|
||||
+ $STATUS conserver
|
||||
;;
|
||||
restart)
|
||||
- echo -n "Restarting conserver: "
|
||||
- killproc conserver -HUP
|
||||
- echo
|
||||
+ $STATUS conserver >& /dev/null
|
||||
+ if [ "$?" != "0" ]; then
|
||||
+ exec $0 start
|
||||
+ else
|
||||
+ echo -n "Restarting conserver: "
|
||||
+ killproc conserver -HUP
|
||||
+ fi
|
||||
+ $SUCCESS
|
||||
;;
|
||||
*)
|
||||
echo "Usage: conserver {start|stop|restart|status}"
|
19
conserver/debian/patches/initscript1.patch
Normal file
19
conserver/debian/patches/initscript1.patch
Normal file
@ -0,0 +1,19 @@
|
||||
--- conserver-8.1.16/contrib/redhat-rpm/conserver.init 2009-10-12 05:06:44.000000000 -0400
|
||||
+++ conserver-8.1.16/contrib/redhat-rpm/conserver.init.new 2009-10-12 05:08:29.000000000 -0400
|
||||
@@ -6,6 +6,16 @@
|
||||
# description: conserver is a serial-port console daemon
|
||||
# config: /etc/conserver.cf
|
||||
#
|
||||
+### BEGIN INIT INFO
|
||||
+# Provides: conserver
|
||||
+# Required-Start:
|
||||
+# Required-Stop:
|
||||
+# Default-Start: 2 3 4 5
|
||||
+# Default-stop:
|
||||
+# Short-Description: conserver
|
||||
+# Description: Console server
|
||||
+### END INIT INFO
|
||||
+
|
||||
RHPassed()
|
||||
{
|
||||
passed
|
12
conserver/debian/patches/segfault-sslopt.patch
Normal file
12
conserver/debian/patches/segfault-sslopt.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -ruN conserver-8.1.16-orig/conserver/main.c conserver-8.1.16/conserver/main.c
|
||||
--- conserver-8.1.16-orig/conserver/main.c 2009-10-30 13:46:11 +0300
|
||||
+++ conserver-8.1.16/conserver/main.c 2009-10-30 13:46:37 +0300
|
||||
@@ -66,7 +66,7 @@
|
||||
, FLAGFALSE
|
||||
#endif
|
||||
#if HAVE_OPENSSL
|
||||
- , (char *)0, FLAGTRUE
|
||||
+ , (char *)0, (char*)0, FLAGTRUE
|
||||
#endif
|
||||
};
|
||||
|
4
conserver/debian/patches/series
Normal file
4
conserver/debian/patches/series
Normal file
@ -0,0 +1,4 @@
|
||||
certificate-auth.patch
|
||||
initscript.patch
|
||||
initscript1.patch
|
||||
segfault-sslopt.patch
|
46
conserver/debian/postinst
Normal file
46
conserver/debian/postinst
Normal file
@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
# postinst script for conserver
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if [ -x /etc/init.d/conserver ]; then
|
||||
update-rc.d conserver enable
|
||||
fi
|
||||
# make sure /etc/services has a conserver entry
|
||||
if [ ! `grep conserver /etc/services > /dev/null` ]; then
|
||||
echo "console 782/tcp conserver" >> /etc/services
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
37
conserver/debian/postrm
Normal file
37
conserver/debian/postrm
Normal file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
# postrm script for conserver
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
35
conserver/debian/preinst.ex
Normal file
35
conserver/debian/preinst.ex
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
# preinst script for conserver
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <new-preinst> `install'
|
||||
# * <new-preinst> `install' <old-version>
|
||||
# * <new-preinst> `upgrade' <old-version>
|
||||
# * <old-preinst> `abort-upgrade' <new-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
install|upgrade)
|
||||
;;
|
||||
|
||||
abort-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "preinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
43
conserver/debian/prerm.ex
Normal file
43
conserver/debian/prerm.ex
Normal file
@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
# prerm script for conserver
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade|deconfigure)
|
||||
if [ -x /etc/init.d/conserver ]; then
|
||||
/etc/init.d/conserver stop
|
||||
update-rc.d conserver disable
|
||||
fi
|
||||
|
||||
;;
|
||||
|
||||
failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
23
conserver/debian/rules
Normal file
23
conserver/debian/rules
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# This file was originally written by Joey Hess and Craig Small.
|
||||
# As a special exception, when this file is copied by dh-make into a
|
||||
# dh-make output file, you may use that output file without restriction.
|
||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
master=console
|
||||
|
||||
%:
|
||||
dh --with quilt $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- --with-master=${master} --with-openssl
|
||||
|
||||
#override_dh_auto_build:
|
||||
# $(MAKE)
|
||||
|
||||
override_dh_auto_test:
|
8
conserver/make_deb.sh
Normal file
8
conserver/make_deb.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
tar xvfz conserver-8.1.16.tar.gz
|
||||
cd conserver-8.1.16
|
||||
cp -rL ../debian .
|
||||
dpkg-buildpackage
|
||||
cd -
|
||||
rm -rf conserver-8.1.16
|
6
gpxe/debian/README.Debian
Normal file
6
gpxe/debian/README.Debian
Normal file
@ -0,0 +1,6 @@
|
||||
gpxe for Debian
|
||||
---------------
|
||||
|
||||
<possible notes regarding this package - if none, delete this file>
|
||||
|
||||
-- root <root@unknown> Fri, 29 Oct 2010 18:22:52 +0100
|
9
gpxe/debian/README.source
Normal file
9
gpxe/debian/README.source
Normal file
@ -0,0 +1,9 @@
|
||||
gpxe for Debian
|
||||
---------------
|
||||
|
||||
<this file describes information about the source package, see Debian policy
|
||||
manual section 4.14. You WILL either need to modify or delete this file>
|
||||
|
||||
|
||||
|
||||
|
11
gpxe/debian/changelog
Normal file
11
gpxe/debian/changelog
Normal file
@ -0,0 +1,11 @@
|
||||
xnba-undi (1.0.1-2) unstable; urgency=low
|
||||
|
||||
* Initial Debian build
|
||||
|
||||
-- Mark Hamzy <hamzy@us.ibm.com> Mon, 02 May 2011 13:05:49 -0500
|
||||
|
||||
xnba-undi (1.0.1-1) unstable; urgency=low
|
||||
|
||||
* Initial release
|
||||
|
||||
-- OCF xCAT <xcat@ocf.co.uk> Fri, 29 Oct 2010 18:22:52 +0100
|
1
gpxe/debian/compat
Normal file
1
gpxe/debian/compat
Normal file
@ -0,0 +1 @@
|
||||
7
|
17
gpxe/debian/control
Normal file
17
gpxe/debian/control
Normal file
@ -0,0 +1,17 @@
|
||||
Source: xnba-undi
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: Arif Ali <aali@ocf.co.uk>
|
||||
Build-Depends: debhelper (>= 7.0.50~)
|
||||
Standards-Version: 3.8.4
|
||||
#Homepage: <insert the upstream URL, if relevant>
|
||||
#Vcs-Git: git://git.debian.org/collab-maint/gpxe.git
|
||||
#Vcs-Browser: http://git.debian.org/?p=collab-maint/gpxe.git;a=summary
|
||||
|
||||
Package: xnba-undi
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: xCAT Network Boot Agent for x86 PXE hosts
|
||||
The xCAT Network Boot Agent is a slightly modified version of gPXE.
|
||||
It provides enhanced boot features for any UNDI compliant x86 host.
|
||||
This includes iSCSI, http/ftp downloads, and gPXE script based booting.
|
621
gpxe/debian/copyright
Normal file
621
gpxe/debian/copyright
Normal file
@ -0,0 +1,621 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
1
gpxe/debian/dirs
Normal file
1
gpxe/debian/dirs
Normal file
@ -0,0 +1 @@
|
||||
tftpboot/xcat
|
1
gpxe/debian/docs
Normal file
1
gpxe/debian/docs
Normal file
@ -0,0 +1 @@
|
||||
README
|
1
gpxe/debian/files
Normal file
1
gpxe/debian/files
Normal file
@ -0,0 +1 @@
|
||||
tftpboot/xcat/xnba.kpxe
|
14
gpxe/debian/patches/gpxe-0.9.7-branding.patch
Normal file
14
gpxe/debian/patches/gpxe-0.9.7-branding.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff -urN gpxe-0.9.7/src/config/general.h gpxe-0.9.7-branded/src/config/general.h
|
||||
--- gpxe-0.9.7/src/config/general.h 2009-03-01 21:23:42.000000000 -0500
|
||||
+++ gpxe-0.9.7-branded/src/config/general.h 2009-06-23 06:24:54.000000000 -0400
|
||||
@@ -22,8 +22,8 @@
|
||||
* "gPXE".
|
||||
*
|
||||
*/
|
||||
-#define PRODUCT_NAME ""
|
||||
-#define PRODUCT_SHORT_NAME "gPXE"
|
||||
+#define PRODUCT_NAME "xCAT Network Boot Agent"
|
||||
+#define PRODUCT_SHORT_NAME "xCAT NBA"
|
||||
|
||||
/*
|
||||
* Timer configuration
|
48
gpxe/debian/patches/gpxe-0.9.7-ignorepackets.patch
Normal file
48
gpxe/debian/patches/gpxe-0.9.7-ignorepackets.patch
Normal file
@ -0,0 +1,48 @@
|
||||
diff -urN gpxe-0.9.7/src/net/arp.c gpxe-0.9.7-ignorepackets/src/net/arp.c
|
||||
--- gpxe-0.9.7/src/net/arp.c 2009-03-01 21:23:42.000000000 -0500
|
||||
+++ gpxe-0.9.7-ignorepackets/src/net/arp.c 2009-07-02 13:58:19.000000000 -0400
|
||||
@@ -238,7 +238,7 @@
|
||||
goto done;
|
||||
|
||||
/* Create new ARP table entry if necessary */
|
||||
- if ( ! merge ) {
|
||||
+ if ( ( arphdr->ar_op == htons ( ARPOP_REPLY ) ) && ( ! merge ) ) {
|
||||
arp = &arp_table[next_new_arp_entry++ % NUM_ARP_ENTRIES];
|
||||
arp->ll_protocol = ll_protocol;
|
||||
arp->net_protocol = net_protocol;
|
||||
diff -urN gpxe-0.9.7/src/net/icmp.c gpxe-0.9.7-ignorepackets/src/net/icmp.c
|
||||
--- gpxe-0.9.7/src/net/icmp.c 2009-03-01 21:23:42.000000000 -0500
|
||||
+++ gpxe-0.9.7-ignorepackets/src/net/icmp.c 2009-07-02 14:04:53.000000000 -0400
|
||||
@@ -67,11 +67,14 @@
|
||||
}
|
||||
|
||||
/* We respond only to pings */
|
||||
- if ( icmp->type != ICMP_ECHO_REQUEST ) {
|
||||
+ /* Always discard, responding to pings is more than most systems do in this state and
|
||||
+ * gPXE is in a relatively precarious position, resource management wise, and thus it is
|
||||
+ * easier just to disable this function. */
|
||||
+ /* if ( icmp->type != ICMP_ECHO_REQUEST ) { */
|
||||
DBG ( "ICMP ignoring type %d\n", icmp->type );
|
||||
rc = 0;
|
||||
goto done;
|
||||
- }
|
||||
+ /* } */
|
||||
|
||||
DBG ( "ICMP responding to ping\n" );
|
||||
|
||||
diff -urN gpxe-0.9.7/src/net/tcp.c gpxe-0.9.7-ignorepackets/src/net/tcp.c
|
||||
--- gpxe-0.9.7/src/net/tcp.c 2009-03-01 21:23:42.000000000 -0500
|
||||
+++ gpxe-0.9.7-ignorepackets/src/net/tcp.c 2009-07-02 14:00:46.000000000 -0400
|
||||
@@ -904,7 +904,11 @@
|
||||
|
||||
/* If no connection was found, send RST */
|
||||
if ( ! tcp ) {
|
||||
- tcp_xmit_reset ( tcp, st_src, tcphdr );
|
||||
+ /* We simply drop unrecognized TCP connections. Hopefully, this is no worse than I typically set up a firewall.
|
||||
+ * If we try to even remotely respond to random TCP streams, it can exhaust gPXE resources easily in a very large
|
||||
+ * environment */
|
||||
+ /* tcp_xmit_reset ( tcp, st_src, tcphdr ); Don't consume precious outbound resource for irrelevant communication. */
|
||||
+
|
||||
rc = -ENOTCONN;
|
||||
goto discard;
|
||||
}
|
13
gpxe/debian/patches/gpxe-0.9.7-kvmworkaround.patch
Normal file
13
gpxe/debian/patches/gpxe-0.9.7-kvmworkaround.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff -urN gpxe-0.9.7/src/arch/i386/prefix/romprefix.S gpxe-0.9.7-kvm/src/arch/i386/prefix/romprefix.S
|
||||
--- gpxe-0.9.7/src/arch/i386/prefix/romprefix.S 2009-03-01 21:23:42.000000000 -0500
|
||||
+++ gpxe-0.9.7-kvm/src/arch/i386/prefix/romprefix.S 2009-04-24 04:54:03.000000000 -0400
|
||||
@@ -715,7 +715,9 @@
|
||||
movl %fs:(0x6c), %eax
|
||||
1: pushf
|
||||
sti
|
||||
+ nop
|
||||
hlt
|
||||
+ nop
|
||||
popf
|
||||
cmpl %fs:(0x6c), %eax
|
||||
je 1b
|
12
gpxe/debian/patches/gpxe-0.9.7-undinet.patch
Normal file
12
gpxe/debian/patches/gpxe-0.9.7-undinet.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -urN gpxe-0.9.7/src/arch/i386/drivers/net/undinet.c gpxe-0.9.7-undinet/src/arch/i386/drivers/net/undinet.c
|
||||
--- gpxe-0.9.7/src/arch/i386/drivers/net/undinet.c 2009-03-01 21:23:42.000000000 -0500
|
||||
+++ gpxe-0.9.7-undinet/src/arch/i386/drivers/net/undinet.c 2010-01-26 10:06:31.000000000 -0500
|
||||
@@ -427,7 +427,7 @@
|
||||
"nop\n\t"
|
||||
"nop\n\t"
|
||||
"cli\n\t" ) : : );
|
||||
- return;
|
||||
+ //return;
|
||||
}
|
||||
|
||||
/* Start ISR processing */
|
11
gpxe/debian/patches/gpxe-1.0.0-cmdlinesize.patch
Normal file
11
gpxe/debian/patches/gpxe-1.0.0-cmdlinesize.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -urN gpxe-1.0.0/src/arch/i386/include/bzimage.h gpxe-1.0.0-cmdlinefix/src/arch/i386/include/bzimage.h
|
||||
--- gpxe-1.0.0/src/arch/i386/include/bzimage.h 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-cmdlinefix/src/arch/i386/include/bzimage.h 2010-03-04 13:52:13.000000000 -0500
|
||||
@@ -137,6 +137,6 @@
|
||||
#define BZI_STACK_SIZE 0x1000
|
||||
|
||||
/** Maximum size of command line */
|
||||
-#define BZI_CMDLINE_SIZE 0x100
|
||||
+#define BZI_CMDLINE_SIZE 0x7FF
|
||||
|
||||
#endif /* _BZIMAGE_H */
|
91
gpxe/debian/patches/gpxe-1.0.0-config.patch
Normal file
91
gpxe/debian/patches/gpxe-1.0.0-config.patch
Normal file
@ -0,0 +1,91 @@
|
||||
diff -urN gpxe-1.0.0/src/config/general.h gpxe-1.0.0-xnbaconfig/src/config/general.h
|
||||
--- gpxe-1.0.0/src/config/general.h 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-xnbaconfig/src/config/general.h 2010-02-06 11:54:02.000000000 -0500
|
||||
@@ -56,7 +56,7 @@
|
||||
#define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
|
||||
#define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
|
||||
#undef DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
|
||||
-#undef DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
|
||||
+#define DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
|
||||
#undef DOWNLOAD_PROTO_TFTM /* Multicast Trivial File Transfer Protocol */
|
||||
#undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-//#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */
|
||||
+#define SANBOOT_PROTO_ISCSI /* iSCSI protocol */
|
||||
-//#undef SANBOOT_PROTO_AOE /* AoE protocol */
|
||||
+#undef SANBOOT_PROTO_AOE /* AoE protocol */
|
||||
//#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */
|
||||
|
||||
@@ -73,9 +73,9 @@
|
||||
* 802.11 cryptosystems and handshaking protocols
|
||||
*
|
||||
*/
|
||||
-#define CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
|
||||
-#define CRYPTO_80211_WPA /* WPA Personal, authenticating with passphrase */
|
||||
-#define CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */
|
||||
+#undef CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
|
||||
+#undef CRYPTO_80211_WPA /* WPA Personal, authenticating with passphrase */
|
||||
+#undef CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */
|
||||
|
||||
/*
|
||||
* Name resolution modules
|
||||
@@ -91,35 +91,35 @@
|
||||
* you want to use.
|
||||
*
|
||||
*/
|
||||
-//#define IMAGE_NBI /* NBI image support */
|
||||
-//#define IMAGE_ELF /* ELF image support */
|
||||
-//#define IMAGE_FREEBSD /* FreeBSD kernel image support */
|
||||
-//#define IMAGE_MULTIBOOT /* MultiBoot image support */
|
||||
-//#define IMAGE_AOUT /* a.out image support */
|
||||
-//#define IMAGE_WINCE /* WinCE image support */
|
||||
-//#define IMAGE_PXE /* PXE image support */
|
||||
-//#define IMAGE_SCRIPT /* gPXE script image support */
|
||||
-//#define IMAGE_BZIMAGE /* Linux bzImage image support */
|
||||
-//#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
|
||||
-//#define IMAGE_EFI /* EFI image support */
|
||||
+#undef IMAGE_NBI /* NBI image support */
|
||||
+#undef IMAGE_ELF /* ELF image support */
|
||||
+#undef IMAGE_FREEBSD /* FreeBSD kernel image support */
|
||||
+#undef IMAGE_MULTIBOOT /* MultiBoot image support */
|
||||
+#undef IMAGE_AOUT /* a.out image support */
|
||||
+#undef IMAGE_WINCE /* WinCE image support */
|
||||
+#define IMAGE_PXE /* PXE image support */
|
||||
+#define IMAGE_SCRIPT /* gPXE script image support */
|
||||
+#define IMAGE_BZIMAGE /* Linux bzImage image support */
|
||||
+#undef IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
|
||||
+#undef IMAGE_EFI /* EFI image support */
|
||||
|
||||
/*
|
||||
* Command-line commands to include
|
||||
*
|
||||
*/
|
||||
-#define AUTOBOOT_CMD /* Automatic booting */
|
||||
+#undef AUTOBOOT_CMD /* Automatic booting */
|
||||
#define NVO_CMD /* Non-volatile option storage commands */
|
||||
-#define CONFIG_CMD /* Option configuration console */
|
||||
-#define IFMGMT_CMD /* Interface management commands */
|
||||
-#define IWMGMT_CMD /* Wireless interface management commands */
|
||||
-#define ROUTE_CMD /* Routing table management commands */
|
||||
+#undef CONFIG_CMD /* Option configuration console */
|
||||
+#undef IFMGMT_CMD /* Interface management commands */
|
||||
+#undef IWMGMT_CMD /* Wireless interface management commands */
|
||||
+#undef ROUTE_CMD /* Routing table management commands */
|
||||
#define IMAGE_CMD /* Image management commands */
|
||||
-#define DHCP_CMD /* DHCP management commands */
|
||||
-#define SANBOOT_CMD /* SAN boot commands */
|
||||
-#define LOGIN_CMD /* Login command */
|
||||
+#undef DHCP_CMD /* DHCP management commands */
|
||||
+#undef SANBOOT_CMD /* SAN boot commands */
|
||||
+#undef LOGIN_CMD /* Login command */
|
||||
#undef TIME_CMD /* Time commands */
|
||||
#undef DIGEST_CMD /* Image crypto digest commands */
|
||||
-//#undef PXE_CMD /* PXE commands */
|
||||
+#undef PXE_CMD /* PXE commands */
|
||||
|
||||
/*
|
||||
* Error message tables to include
|
32
gpxe/debian/patches/gpxe-1.0.0-expandfilename.patch
Normal file
32
gpxe/debian/patches/gpxe-1.0.0-expandfilename.patch
Normal file
@ -0,0 +1,32 @@
|
||||
diff -urN gpxe-1.0.0/src/core/exec.c gpxe-1.0.0-expandfilename/src/core/exec.c
|
||||
--- gpxe-1.0.0/src/core/exec.c 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-expandfilename/src/core/exec.c 2010-05-20 21:28:43.000000000 -0400
|
||||
@@ -94,7 +94,7 @@
|
||||
* The expanded command line is allocated with malloc() and the caller
|
||||
* must eventually free() it.
|
||||
*/
|
||||
-static char * expand_command ( const char *command ) {
|
||||
+char * expand_command ( const char *command ) {
|
||||
char *expcmd;
|
||||
char *start;
|
||||
char *end;
|
||||
diff -urN gpxe-1.0.0/src/usr/autoboot.c gpxe-1.0.0-expandfilename/src/usr/autoboot.c
|
||||
--- gpxe-1.0.0/src/usr/autoboot.c 2010-05-20 20:56:32.000000000 -0400
|
||||
+++ gpxe-1.0.0-expandfilename/src/usr/autoboot.c 2010-05-20 21:31:49.000000000 -0400
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <usr/dhcpmgmt.h>
|
||||
#include <usr/imgmgmt.h>
|
||||
#include <usr/autoboot.h>
|
||||
+char * expand_command ( const char *command );
|
||||
|
||||
/** @file
|
||||
*
|
||||
@@ -85,6 +86,8 @@
|
||||
uri_encode ( filename, buf + strlen ( buf ),
|
||||
sizeof ( buf ) - strlen ( buf ), URI_PATH );
|
||||
filename = buf;
|
||||
+ } else { /* only support variable expansion in absolute paths to avoid stepping on buf size */
|
||||
+ filename = expand_command(filename);
|
||||
}
|
||||
|
||||
image = alloc_image();
|
60
gpxe/debian/patches/gpxe-1.0.0-hdboot.patch
Normal file
60
gpxe/debian/patches/gpxe-1.0.0-hdboot.patch
Normal file
@ -0,0 +1,60 @@
|
||||
diff -urN gpxe-1.0.0/src/config/config.c gpxe-1.0.0-hdboot/src/config/config.c
|
||||
--- gpxe-1.0.0/src/config/config.c 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-hdboot/src/config/config.c 2010-02-06 12:10:51.000000000 -0500
|
||||
@@ -222,6 +222,9 @@
|
||||
#ifdef SANBOOT_CMD
|
||||
REQUIRE_OBJECT ( sanboot_cmd );
|
||||
#endif
|
||||
+#ifdef HDBOOT_CMD
|
||||
+REQUIRE_OBJECT ( hdboot_cmd );
|
||||
+#endif
|
||||
#ifdef LOGIN_CMD
|
||||
REQUIRE_OBJECT ( login_cmd );
|
||||
#endif
|
||||
diff -urN gpxe-1.0.0/src/config/general.h gpxe-1.0.0-hdboot/src/config/general.h
|
||||
--- gpxe-1.0.0/src/config/general.h 2010-02-06 12:07:39.000000000 -0500
|
||||
+++ gpxe-1.0.0-hdboot/src/config/general.h 2010-02-06 12:11:10.000000000 -0500
|
||||
@@ -116,6 +116,7 @@
|
||||
#define IMAGE_CMD /* Image management commands */
|
||||
#undef DHCP_CMD /* DHCP management commands */
|
||||
#undef SANBOOT_CMD /* SAN boot commands */
|
||||
+#define HDBOOT_CMD /* HD boot commands */
|
||||
#undef LOGIN_CMD /* Login command */
|
||||
#undef TIME_CMD /* Time commands */
|
||||
#undef DIGEST_CMD /* Image crypto digest commands */
|
||||
diff -urN gpxe-1.0.0/src/hci/commands/hdboot_cmd.c gpxe-1.0.0-hdboot/src/hci/commands/hdboot_cmd.c
|
||||
--- gpxe-1.0.0/src/hci/commands/hdboot_cmd.c 1969-12-31 19:00:00.000000000 -0500
|
||||
+++ gpxe-1.0.0-hdboot/src/hci/commands/hdboot_cmd.c 2010-02-06 12:10:51.000000000 -0500
|
||||
@@ -0,0 +1,32 @@
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <getopt.h>
|
||||
+#include <int13.h>
|
||||
+#include <gpxe/command.h>
|
||||
+#include <usr/autoboot.h>
|
||||
+
|
||||
+/**
|
||||
+ * The "hdboot" command
|
||||
+ *
|
||||
+ * @v argc Argument count
|
||||
+ * @v argv Argument list
|
||||
+ * @ret rc Exit code
|
||||
+ */
|
||||
+static int hdboot_exec ( int argc, char **argv ) {
|
||||
+ if (argc != 1) {
|
||||
+ printf ( "Usage:\n"
|
||||
+ " %s\n"
|
||||
+ "\n"
|
||||
+ "Boot from the first HD\n",
|
||||
+ argv[0] );
|
||||
+ return 1;
|
||||
+ }
|
||||
+ int13_boot ( 0x80 );
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+struct command hdboot_command __command = {
|
||||
+ .name = "hdboot",
|
||||
+ .exec = hdboot_exec,
|
||||
+};
|
141
gpxe/debian/patches/gpxe-1.0.0-hyphenatedmachyp.patch
Normal file
141
gpxe/debian/patches/gpxe-1.0.0-hyphenatedmachyp.patch
Normal file
@ -0,0 +1,141 @@
|
||||
diff -urN gpxe-1.0.0/src/core/settings.c gpxe-1.0.0-hyphenatedmachyp/src/core/settings.c
|
||||
--- gpxe-1.0.0/src/core/settings.c 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-hyphenatedmachyp/src/core/settings.c 2010-06-02 14:15:26.000000000 -0400
|
||||
@@ -1314,6 +1314,72 @@
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Parse and store value of hex string setting, hyphen delimited
|
||||
+ *
|
||||
+ * @v settings Settings block
|
||||
+ * @v setting Setting to store
|
||||
+ * @v value Formatted setting data
|
||||
+ * @ret rc Return status code
|
||||
+ */
|
||||
+static int storef_hexhyp ( struct settings *settings, struct setting *setting,
|
||||
+ const char *value ) {
|
||||
+ char *ptr = ( char * ) value;
|
||||
+ uint8_t bytes[ strlen ( value ) ]; /* cannot exceed strlen(value) */
|
||||
+ unsigned int len = 0;
|
||||
+
|
||||
+ while ( 1 ) {
|
||||
+ bytes[len++] = strtoul ( ptr, &ptr, 16 );
|
||||
+ switch ( *ptr ) {
|
||||
+ case '\0' :
|
||||
+ return store_setting ( settings, setting, bytes, len );
|
||||
+ case '-' :
|
||||
+ ptr++;
|
||||
+ break;
|
||||
+ default :
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+/**
|
||||
+ * Fetch and format value of hex string setting with hypphen delimiter
|
||||
+ *
|
||||
+ * @v settings Settings block, or NULL to search all blocks
|
||||
+ * @v setting Setting to fetch
|
||||
+ * @v buf Buffer to contain formatted value
|
||||
+ * @v len Length of buffer
|
||||
+ * @ret len Length of formatted value, or negative error
|
||||
+ */
|
||||
+static int fetchf_hexhyp ( struct settings *settings, struct setting *setting,
|
||||
+ char *buf, size_t len ) {
|
||||
+ int raw_len;
|
||||
+ int check_len;
|
||||
+ int used = 0;
|
||||
+ int i;
|
||||
+
|
||||
+ raw_len = fetch_setting_len ( settings, setting );
|
||||
+ if ( raw_len < 0 )
|
||||
+ return raw_len;
|
||||
+
|
||||
+ {
|
||||
+ uint8_t raw[raw_len];
|
||||
+
|
||||
+ check_len = fetch_setting ( settings, setting, raw,
|
||||
+ sizeof ( raw ) );
|
||||
+ if ( check_len < 0 )
|
||||
+ return check_len;
|
||||
+ assert ( check_len == raw_len );
|
||||
+
|
||||
+ if ( len )
|
||||
+ buf[0] = 0; /* Ensure that a terminating NUL exists */
|
||||
+ for ( i = 0 ; i < raw_len ; i++ ) {
|
||||
+ used += ssnprintf ( ( buf + used ), ( len - used ),
|
||||
+ "%s%02x", ( used ? "-" : "" ),
|
||||
+ raw[i] );
|
||||
+ }
|
||||
+ return used;
|
||||
+ }
|
||||
+}
|
||||
+/**
|
||||
* Fetch and format value of hex string setting
|
||||
*
|
||||
* @v settings Settings block, or NULL to search all blocks
|
||||
@@ -1359,6 +1425,12 @@
|
||||
.storef = storef_hex,
|
||||
.fetchf = fetchf_hex,
|
||||
};
|
||||
+/** A hex-string setting, hyphen delimited */
|
||||
+struct setting_type setting_type_hexhyp __setting_type = {
|
||||
+ .name = "hexhyp",
|
||||
+ .storef = storef_hexhyp,
|
||||
+ .fetchf = fetchf_hexhyp,
|
||||
+};
|
||||
|
||||
/**
|
||||
* Parse and store value of UUID setting
|
||||
diff -urN gpxe-1.0.0/src/include/gpxe/settings.h gpxe-1.0.0-hyphenatedmachyp/src/include/gpxe/settings.h
|
||||
--- gpxe-1.0.0/src/include/gpxe/settings.h 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-hyphenatedmachyp/src/include/gpxe/settings.h 2010-06-02 14:15:26.000000000 -0400
|
||||
@@ -226,6 +226,7 @@
|
||||
extern struct setting_type setting_type_uint16 __setting_type;
|
||||
extern struct setting_type setting_type_uint32 __setting_type;
|
||||
extern struct setting_type setting_type_hex __setting_type;
|
||||
+extern struct setting_type setting_type_hexhyp __setting_type;
|
||||
extern struct setting_type setting_type_uuid __setting_type;
|
||||
|
||||
extern struct setting ip_setting __setting;
|
||||
@@ -242,6 +243,7 @@
|
||||
extern struct setting uuid_setting __setting;
|
||||
extern struct setting next_server_setting __setting;
|
||||
extern struct setting mac_setting __setting;
|
||||
+extern struct setting machyp_setting __setting;
|
||||
extern struct setting busid_setting __setting;
|
||||
extern struct setting user_class_setting __setting;
|
||||
|
||||
diff -urN gpxe-1.0.0/src/net/netdev_settings.c gpxe-1.0.0-hyphenatedmachyp/src/net/netdev_settings.c
|
||||
--- gpxe-1.0.0/src/net/netdev_settings.c 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-hyphenatedmachyp/src/net/netdev_settings.c 2010-06-02 14:17:09.000000000 -0400
|
||||
@@ -38,6 +38,11 @@
|
||||
.description = "MAC address",
|
||||
.type = &setting_type_hex,
|
||||
};
|
||||
+struct setting machyp_setting __setting = {
|
||||
+ .name = "machyp",
|
||||
+ .description = "MAC address",
|
||||
+ .type = &setting_type_hexhyp,
|
||||
+};
|
||||
struct setting busid_setting __setting = {
|
||||
.name = "busid",
|
||||
.description = "Bus ID",
|
||||
@@ -58,7 +63,7 @@
|
||||
struct net_device *netdev = container_of ( settings, struct net_device,
|
||||
settings.settings );
|
||||
|
||||
- if ( setting_cmp ( setting, &mac_setting ) == 0 ) {
|
||||
+ if (( setting_cmp ( setting, &mac_setting ) == 0 ) || ( setting_cmp ( setting, &machyp_setting ) == 0 )) {
|
||||
if ( len != netdev->ll_protocol->ll_addr_len )
|
||||
return -EINVAL;
|
||||
memcpy ( netdev->ll_addr, data, len );
|
||||
@@ -84,7 +89,7 @@
|
||||
struct device_description *desc = &netdev->dev->desc;
|
||||
struct dhcp_netdev_desc dhcp_desc;
|
||||
|
||||
- if ( setting_cmp ( setting, &mac_setting ) == 0 ) {
|
||||
+ if (( setting_cmp ( setting, &mac_setting ) == 0 ) || ( setting_cmp ( setting, &machyp_setting ) == 0 )) {
|
||||
if ( len > netdev->ll_protocol->ll_addr_len )
|
||||
len = netdev->ll_protocol->ll_addr_len;
|
||||
memcpy ( data, netdev->ll_addr, len );
|
126
gpxe/debian/patches/gpxe-1.0.0-registeriscsionpxe.patch
Normal file
126
gpxe/debian/patches/gpxe-1.0.0-registeriscsionpxe.patch
Normal file
@ -0,0 +1,126 @@
|
||||
diff -urN gpxe-1.0.0/src/arch/i386/interface/pcbios/iscsiboot.c gpxe-1.0.0-iscsireg/src/arch/i386/interface/pcbios/iscsiboot.c
|
||||
--- gpxe-1.0.0/src/arch/i386/interface/pcbios/iscsiboot.c 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-iscsireg/src/arch/i386/interface/pcbios/iscsiboot.c 2010-03-11 14:19:05.000000000 -0500
|
||||
@@ -11,6 +11,56 @@
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER );
|
||||
|
||||
+static int iscsireg ( const char *root_path ) {
|
||||
+ struct scsi_device *scsi;
|
||||
+ struct int13_drive *drive;
|
||||
+ int rc;
|
||||
+
|
||||
+ scsi = zalloc ( sizeof ( *scsi ) );
|
||||
+ if ( ! scsi ) {
|
||||
+ rc = -ENOMEM;
|
||||
+ goto regerr_alloc_scsi;
|
||||
+ }
|
||||
+ drive = zalloc ( sizeof ( *drive ) );
|
||||
+ if ( ! drive ) {
|
||||
+ rc = -ENOMEM;
|
||||
+ goto regerr_alloc_drive;
|
||||
+ }
|
||||
+
|
||||
+ printf ( "Configuring iSCSI at %s\n", root_path );
|
||||
+
|
||||
+ if ( ( rc = iscsi_attach ( scsi, root_path ) ) != 0 ) {
|
||||
+ printf ( "Could not attach iSCSI device: %s\n",
|
||||
+ strerror ( rc ) );
|
||||
+ goto regerr_attach;
|
||||
+ }
|
||||
+ if ( ( rc = init_scsidev ( scsi ) ) != 0 ) {
|
||||
+ printf ( "Could not initialise iSCSI device: %s\n",
|
||||
+ strerror ( rc ) );
|
||||
+ goto regerr_init;
|
||||
+ }
|
||||
+
|
||||
+ drive->blockdev = &scsi->blockdev;
|
||||
+
|
||||
+ /* FIXME: ugly, ugly hack */
|
||||
+ struct net_device *netdev = last_opened_netdev();
|
||||
+ struct iscsi_session *iscsi =
|
||||
+ container_of ( scsi->backend, struct iscsi_session, refcnt );
|
||||
+ ibft_fill_data ( netdev, iscsi );
|
||||
+
|
||||
+ register_int13_drive ( drive );
|
||||
+ printf ( "Registered as BIOS drive %#02x\n", drive->drive );
|
||||
+ return 0;
|
||||
+ regerr_init:
|
||||
+ iscsi_detach ( scsi );
|
||||
+ regerr_attach:
|
||||
+ free ( drive );
|
||||
+ regerr_alloc_drive:
|
||||
+ free ( scsi );
|
||||
+ regerr_alloc_scsi:
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
static int iscsiboot ( const char *root_path ) {
|
||||
struct scsi_device *scsi;
|
||||
struct int13_drive *drive;
|
||||
@@ -72,4 +122,5 @@
|
||||
struct sanboot_protocol iscsi_sanboot_protocol __sanboot_protocol = {
|
||||
.prefix = "iscsi:",
|
||||
.boot = iscsiboot,
|
||||
+ .reg = iscsireg,
|
||||
};
|
||||
diff -urN gpxe-1.0.0/src/include/gpxe/sanboot.h gpxe-1.0.0-iscsireg/src/include/gpxe/sanboot.h
|
||||
--- gpxe-1.0.0/src/include/gpxe/sanboot.h 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-iscsireg/src/include/gpxe/sanboot.h 2010-03-11 14:19:05.000000000 -0500
|
||||
@@ -8,6 +8,7 @@
|
||||
struct sanboot_protocol {
|
||||
const char *prefix;
|
||||
int ( * boot ) ( const char *root_path );
|
||||
+ int ( * reg ) ( const char *root_path );
|
||||
};
|
||||
|
||||
#define SANBOOT_PROTOCOLS \
|
||||
diff -urN gpxe-1.0.0/src/usr/autoboot.c gpxe-1.0.0-iscsireg/src/usr/autoboot.c
|
||||
--- gpxe-1.0.0/src/usr/autoboot.c 2010-02-02 11:12:44.000000000 -0500
|
||||
+++ gpxe-1.0.0-iscsireg/src/usr/autoboot.c 2010-03-11 14:19:36.000000000 -0500
|
||||
@@ -103,6 +103,25 @@
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Register a drive in BIOS, but don't boot
|
||||
+ *
|
||||
+ * @v root_path Root path
|
||||
+ * @ret rc Return status code
|
||||
+ */
|
||||
+int reg_root_path ( const char *root_path ) {
|
||||
+ struct sanboot_protocol *sanboot;
|
||||
+
|
||||
+ /* Quick hack */
|
||||
+ for_each_table_entry ( sanboot, SANBOOT_PROTOCOLS ) {
|
||||
+ if ( strncmp ( root_path, sanboot->prefix,
|
||||
+ strlen ( sanboot->prefix ) ) == 0 ) {
|
||||
+ return sanboot->reg ( root_path );
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return -ENOTSUP;
|
||||
+}
|
||||
+/**
|
||||
* Boot using root path
|
||||
*
|
||||
* @v root_path Root path
|
||||
@@ -136,6 +155,7 @@
|
||||
struct setting pxe_boot_menu_setting
|
||||
= { .tag = DHCP_PXE_BOOT_MENU };
|
||||
char buf[256];
|
||||
+ char ruf[256];
|
||||
struct in_addr next_server;
|
||||
unsigned int pxe_discovery_control;
|
||||
int rc;
|
||||
@@ -167,6 +187,11 @@
|
||||
fetch_ipv4_setting ( NULL, &next_server_setting, &next_server );
|
||||
fetch_string_setting ( NULL, &filename_setting, buf, sizeof ( buf ) );
|
||||
if ( buf[0] ) {
|
||||
+ /* Going to PXE, but set up iBFT if applicable first */
|
||||
+ fetch_string_setting(NULL, &root_path_setting,ruf,sizeof(ruf));
|
||||
+ if (ruf[0]) {
|
||||
+ reg_root_path ( ruf );
|
||||
+ }
|
||||
printf ( "Booting from filename \"%s\"\n", buf );
|
||||
if ( ( rc = boot_next_server_and_filename ( next_server,
|
||||
buf ) ) != 0 ) {
|
12
gpxe/debian/patches/gpxe-1.0.1-xnbauserclass.patch
Normal file
12
gpxe/debian/patches/gpxe-1.0.1-xnbauserclass.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -urN gpxe-1.0.1/src/net/udp/dhcp.c gpxe-1.0.1-xnbauserclass/src/net/udp/dhcp.c
|
||||
--- gpxe-1.0.1/src/net/udp/dhcp.c 2010-06-29 15:31:33.000000000 -0400
|
||||
+++ gpxe-1.0.1-xnbauserclass/src/net/udp/dhcp.c 2010-07-29 16:12:58.000000000 -0400
|
||||
@@ -78,7 +78,7 @@
|
||||
DHCP_CLIENT_ARCHITECTURE, DHCP_ARCH_CLIENT_ARCHITECTURE,
|
||||
DHCP_CLIENT_NDI, DHCP_ARCH_CLIENT_NDI,
|
||||
DHCP_VENDOR_CLASS_ID, DHCP_ARCH_VENDOR_CLASS_ID,
|
||||
- DHCP_USER_CLASS_ID, DHCP_STRING ( 'g', 'P', 'X', 'E' ),
|
||||
+ DHCP_USER_CLASS_ID, DHCP_STRING ( 'x', 'N', 'B', 'A' ),
|
||||
DHCP_PARAMETER_REQUEST_LIST,
|
||||
DHCP_OPTION ( DHCP_SUBNET_MASK, DHCP_ROUTERS, DHCP_DNS_SERVERS,
|
||||
DHCP_LOG_SERVERS, DHCP_HOST_NAME, DHCP_DOMAIN_NAME,
|
12
gpxe/debian/patches/series
Normal file
12
gpxe/debian/patches/series
Normal file
@ -0,0 +1,12 @@
|
||||
gpxe-0.9.7-branding.patch
|
||||
gpxe-1.0.0-registeriscsionpxe.patch
|
||||
gpxe-1.0.0-config.patch
|
||||
gpxe-0.9.7-ignorepackets.patch
|
||||
gpxe-0.9.7-kvmworkaround.patch
|
||||
gpxe-1.0.0-hdboot.patch
|
||||
gpxe-1.0.1-xnbauserclass.patch
|
||||
gpxe-0.9.7-undinet.patch
|
||||
gpxe-1.0.0-cmdlinesize.patch
|
||||
gpxe-1.0.0-expandfilename.patch
|
||||
gpxe-1.0.0-hyphenatedmachyp.patch
|
||||
|
39
gpxe/debian/postinst.ex
Normal file
39
gpxe/debian/postinst.ex
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
# postinst script for gpxe
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
37
gpxe/debian/postrm.ex
Normal file
37
gpxe/debian/postrm.ex
Normal file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
# postrm script for gpxe
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
35
gpxe/debian/preinst.ex
Normal file
35
gpxe/debian/preinst.ex
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
# preinst script for gpxe
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <new-preinst> `install'
|
||||
# * <new-preinst> `install' <old-version>
|
||||
# * <new-preinst> `upgrade' <old-version>
|
||||
# * <old-preinst> `abort-upgrade' <new-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
install|upgrade)
|
||||
;;
|
||||
|
||||
abort-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "preinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
38
gpxe/debian/prerm.ex
Normal file
38
gpxe/debian/prerm.ex
Normal file
@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
# prerm script for gpxe
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade|deconfigure)
|
||||
;;
|
||||
|
||||
failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
82
gpxe/debian/rules
Normal file
82
gpxe/debian/rules
Normal file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# This file is public domain software, originally written by Joey Hess.
|
||||
#
|
||||
# This version is for packages that are architecture dependent.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
build: build-stamp
|
||||
build-stamp:
|
||||
dh_testdir
|
||||
dh_quilt_patch
|
||||
# Add here commands to compile the package.
|
||||
$(MAKE) -C src bin/undionly.kpxe
|
||||
|
||||
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
$(MAKE) -C src clean
|
||||
|
||||
dh_clean
|
||||
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/<packagename>
|
||||
cp src/bin/undionly.kpxe `pwd`/debian/`dh_listpackages`/tftpboot/xcat/xnba.kpxe
|
||||
|
||||
#dh_movefiles
|
||||
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
dh_installexamples
|
||||
dh_install
|
||||
# dh_installmenu
|
||||
# dh_installdebconf
|
||||
# dh_installlogrotate
|
||||
# dh_installemacsen
|
||||
# dh_installcatalogs
|
||||
# dh_installpam
|
||||
# dh_installmime
|
||||
# dh_installinit
|
||||
# dh_installcron
|
||||
# dh_installinfo
|
||||
# dh_installwm
|
||||
# dh_installudev
|
||||
# dh_lintian
|
||||
# dh_bugfiles
|
||||
# dh_undocumented
|
||||
dh_installman
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
# dh_perl
|
||||
# dh_makeshlibs
|
||||
dh_installdeb
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
8
gpxe/make_deb.sh
Normal file
8
gpxe/make_deb.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
tar xvfj gpxe-1.0.1.tar.bz2
|
||||
cd gpxe-1.0.1
|
||||
cp -rL ../debian .
|
||||
dpkg-buildpackage
|
||||
cd -
|
||||
rm -rf gpxe-1.0.1
|
6
syslinux/debian/README.Debian
Normal file
6
syslinux/debian/README.Debian
Normal file
@ -0,0 +1,6 @@
|
||||
syslinux for Debian
|
||||
-------------------
|
||||
|
||||
<possible notes regarding this package - if none, delete this file>
|
||||
|
||||
-- root <root@unknown> Fri, 29 Oct 2010 13:15:02 +0100
|
9
syslinux/debian/README.source
Normal file
9
syslinux/debian/README.source
Normal file
@ -0,0 +1,9 @@
|
||||
syslinux for Debian
|
||||
-------------------
|
||||
|
||||
<this file describes information about the source package, see Debian policy
|
||||
manual section 4.14. You WILL either need to modify or delete this file>
|
||||
|
||||
|
||||
|
||||
|
11
syslinux/debian/changelog
Normal file
11
syslinux/debian/changelog
Normal file
@ -0,0 +1,11 @@
|
||||
syslinux (3.86-2) unstable; urgency=low
|
||||
|
||||
* Initial Debian build
|
||||
|
||||
-- Mark Hamzy <hamzy@us.ibm.com> Mon, 02 May 2011 13:05:49 -0500
|
||||
|
||||
syslinux (3.86-1) unstable; urgency=low
|
||||
|
||||
* Initial release for xCAT
|
||||
|
||||
-- OCF xCAT <xcat@ocf.co.uk> Fri, 29 Oct 2010 13:15:02 +0100
|
1
syslinux/debian/compat
Normal file
1
syslinux/debian/compat
Normal file
@ -0,0 +1 @@
|
||||
7
|
32
syslinux/debian/control
Normal file
32
syslinux/debian/control
Normal file
@ -0,0 +1,32 @@
|
||||
Source: syslinux
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: Arif Ali <aali@ocf.co.uk>
|
||||
Build-Depends: debhelper (>= 7.0.50~)
|
||||
Standards-Version: 3.8.4
|
||||
#Homepage: <insert the upstream URL, if relevant>
|
||||
#Vcs-Git: git://git.debian.org/collab-maint/syslinux.git
|
||||
#Vcs-Browser: http://git.debian.org/?p=collab-maint/syslinux.git;a=summary
|
||||
|
||||
Package: syslinux
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: Kernel loader which uses a FAT, ext2/3 or iso9660 filesystem or a PXE network
|
||||
SYSLINUX is a suite of bootloaders, currently supporting DOS FAT
|
||||
filesystems, Linux ext2/ext3 filesystems (EXTLINUX), PXE network boots
|
||||
(PXELINUX), or ISO 9660 CD-ROMs (ISOLINUX). It also includes a tool,
|
||||
MEMDISK, which loads legacy operating systems from these media.
|
||||
|
||||
Package: syslinux-xcat
|
||||
Architecture: all
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: SYSLINUX modules in /opt/xcat/share/xcat/netboot/syslinux, available for network booting
|
||||
All the SYSLINUX/PXELINUX modules directly available for network
|
||||
booting in the /opt/xcat/share/xcat/netboot/syslinux directory.
|
||||
|
||||
Package: syslinux-extlinux
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: The EXTLINUX bootloader, for booting the local system.
|
||||
The EXTLINUX bootloader, for booting the local system, as well as all
|
||||
the SYSLINUX/PXELINUX modules in /boot
|
621
syslinux/debian/copyright
Normal file
621
syslinux/debian/copyright
Normal file
@ -0,0 +1,621 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
4
syslinux/debian/docs
Normal file
4
syslinux/debian/docs
Normal file
@ -0,0 +1,4 @@
|
||||
BUGS
|
||||
NEWS
|
||||
README
|
||||
TODO
|
1
syslinux/debian/patches/series
Normal file
1
syslinux/debian/patches/series
Normal file
@ -0,0 +1 @@
|
||||
syslinux-3.86-multibootif.patch
|
54
syslinux/debian/patches/syslinux-3.86-multibootif.patch
Normal file
54
syslinux/debian/patches/syslinux-3.86-multibootif.patch
Normal file
@ -0,0 +1,54 @@
|
||||
diff -urN syslinux-3.86/com32/mboot/mboot.c syslinux-3.86-multibootif/com32/mboot/mboot.c
|
||||
--- syslinux-3.86/com32/mboot/mboot.c 2010-03-31 12:24:25.000000000 -0400
|
||||
+++ syslinux-3.86-multibootif/com32/mboot/mboot.c 2010-05-14 21:15:43.000000000 -0400
|
||||
@@ -93,9 +93,18 @@
|
||||
char **argp, **argx;
|
||||
struct module_data *mp;
|
||||
int rv;
|
||||
+ int firstmod = 1;
|
||||
int module_count = 1;
|
||||
int arglen;
|
||||
const char module_separator[] = "---";
|
||||
+ com32sys_t reg;
|
||||
+ char *bootifstr;
|
||||
+ reg.eax.w[0] = 0x000f; /* Get IPAPPEND strings */
|
||||
+ __intcall(0x22,®,®);
|
||||
+ if (!(reg.eflags.l & EFLAGS_CF)) {
|
||||
+ bootifstr = MK_PTR(reg.es,
|
||||
+ *(uint16_t *) MK_PTR(reg.es, reg.ebx.w[0] + 2));
|
||||
+ } /* bootifstr would now be like BOOTIF= argument */
|
||||
|
||||
for (argp = argv; *argp; argp++) {
|
||||
if (!strcmp(*argp, module_separator))
|
||||
@@ -130,15 +139,29 @@
|
||||
arglen += strlen(*argx) + 1;
|
||||
|
||||
if (arglen == 0) {
|
||||
- mp->cmdline = strdup("");
|
||||
+ if (firstmod) { /* first module, let's add BOOTIF to the command line */
|
||||
+ firstmod=0;
|
||||
+ mp->cmdline = strdup(bootifstr);
|
||||
+ } else {
|
||||
+ mp->cmdline = strdup("");
|
||||
+ }
|
||||
} else {
|
||||
char *p;
|
||||
+ if (firstmod) {
|
||||
+ arglen += strlen(bootifstr) + 1;
|
||||
+ }
|
||||
mp->cmdline = p = malloc(arglen);
|
||||
for (; *argp && strcmp(*argp, module_separator); argp++) {
|
||||
p = strpcpy(p, *argp);
|
||||
*p++ = ' ';
|
||||
}
|
||||
- *--p = '\0';
|
||||
+ if (firstmod) { /* first module, let's add BOOTIF to the command line */
|
||||
+ firstmod=0;
|
||||
+ p = strpcpy(p,bootifstr);
|
||||
+ *p = '\0';
|
||||
+ } else {
|
||||
+ *--p = '\0';
|
||||
+ }
|
||||
}
|
||||
mp++;
|
||||
if (*argp)
|
39
syslinux/debian/postinst.ex
Normal file
39
syslinux/debian/postinst.ex
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
# postinst script for syslinux
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
37
syslinux/debian/postrm.ex
Normal file
37
syslinux/debian/postrm.ex
Normal file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
# postrm script for syslinux
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
35
syslinux/debian/preinst.ex
Normal file
35
syslinux/debian/preinst.ex
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
# preinst script for syslinux
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <new-preinst> `install'
|
||||
# * <new-preinst> `install' <old-version>
|
||||
# * <new-preinst> `upgrade' <old-version>
|
||||
# * <old-preinst> `abort-upgrade' <new-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
install|upgrade)
|
||||
;;
|
||||
|
||||
abort-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "preinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
38
syslinux/debian/prerm.ex
Normal file
38
syslinux/debian/prerm.ex
Normal file
@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
# prerm script for syslinux
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade|deconfigure)
|
||||
;;
|
||||
|
||||
failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
103
syslinux/debian/rules
Normal file
103
syslinux/debian/rules
Normal file
@ -0,0 +1,103 @@
|
||||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# This file is public domain software, originally written by Joey Hess.
|
||||
#
|
||||
# This version is for packages that are architecture dependent.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
#export buildroot=`pwd`/debian/`dh_listpackages`
|
||||
export buildroot=`pwd`/debian/tmp
|
||||
export bindir=$(buildroot)/usr/bin
|
||||
export sbindir=$(buildroot)/usr/sbin
|
||||
export libdir=$(buildroot)/usr/lib/syslinux
|
||||
export datadir=$(buildroot)/usr/lib
|
||||
export mandir=$(buildroot)/usr/share/man
|
||||
export includedir=$(buildroot)/usr/include
|
||||
|
||||
build: build-stamp
|
||||
build-stamp:
|
||||
dh_testdir
|
||||
|
||||
# Add here commands to compile the package.
|
||||
$(MAKE) -C com32
|
||||
$(MAKE) installer
|
||||
$(MAKE) -C sample tidy
|
||||
|
||||
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
$(MAKE) clean
|
||||
#$(MAKE) distclean
|
||||
|
||||
dh_clean
|
||||
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/<packagename>
|
||||
#INSTALLROOT=$(buildroot)
|
||||
$(MAKE) install-all \
|
||||
BINDIR=$(bindir) SBINDIR=$(sbindir) \
|
||||
LIBDIR=$(libdir) DATADIR=$(datadir) \
|
||||
MANDIR=$(mandir) INCDIR=$(includedir) \
|
||||
TFTPBOOT=$(buildroot)/opt/xcat/share/xcat/netboot/syslinux EXTLINUXDIR=$(buildroot)/boot/extlinux
|
||||
|
||||
$(MAKE) -C sample tidy
|
||||
|
||||
dh_movefiles
|
||||
|
||||
#$ (MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
dh_installexamples
|
||||
# dh_install
|
||||
# dh_installmenu
|
||||
# dh_installdebconf
|
||||
# dh_installlogrotate
|
||||
# dh_installemacsen
|
||||
# dh_installcatalogs
|
||||
# dh_installpam
|
||||
# dh_installmime
|
||||
# dh_installinit
|
||||
# dh_installcron
|
||||
# dh_installinfo
|
||||
# dh_installwm
|
||||
# dh_installudev
|
||||
# dh_lintian
|
||||
# dh_bugfiles
|
||||
# dh_undocumented
|
||||
dh_installman
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
# dh_perl
|
||||
# dh_makeshlibs
|
||||
dh_installdeb
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
1
syslinux/debian/source/format
Normal file
1
syslinux/debian/source/format
Normal file
@ -0,0 +1 @@
|
||||
3.0 (quilt)
|
2
syslinux/debian/syslinux-extlinux.files
Normal file
2
syslinux/debian/syslinux-extlinux.files
Normal file
@ -0,0 +1,2 @@
|
||||
usr/sbin/extlinux
|
||||
boot/extlinux
|
1
syslinux/debian/syslinux-xcat.files
Normal file
1
syslinux/debian/syslinux-xcat.files
Normal file
@ -0,0 +1 @@
|
||||
opt/xcat/share/xcat/netboot/syslinux/*
|
10
syslinux/debian/syslinux.default.ex
Normal file
10
syslinux/debian/syslinux.default.ex
Normal file
@ -0,0 +1,10 @@
|
||||
# Defaults for syslinux initscript
|
||||
# sourced by /etc/init.d/syslinux
|
||||
# installed at /etc/default/syslinux by the maintainer scripts
|
||||
|
||||
#
|
||||
# This is a POSIX shell fragment
|
||||
#
|
||||
|
||||
# Additional options that are passed to the Daemon.
|
||||
DAEMON_OPTS=""
|
20
syslinux/debian/syslinux.doc-base.EX
Normal file
20
syslinux/debian/syslinux.doc-base.EX
Normal file
@ -0,0 +1,20 @@
|
||||
Document: syslinux
|
||||
Title: Debian syslinux Manual
|
||||
Author: <insert document author here>
|
||||
Abstract: This manual describes what syslinux is
|
||||
and how it can be used to
|
||||
manage online manuals on Debian systems.
|
||||
Section: unknown
|
||||
|
||||
Format: debiandoc-sgml
|
||||
Files: /usr/share/doc/syslinux/syslinux.sgml.gz
|
||||
|
||||
Format: postscript
|
||||
Files: /usr/share/doc/syslinux/syslinux.ps.gz
|
||||
|
||||
Format: text
|
||||
Files: /usr/share/doc/syslinux/syslinux.text.gz
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/syslinux/html/index.html
|
||||
Files: /usr/share/doc/syslinux/html/*.html
|
23
syslinux/debian/watch.ex
Normal file
23
syslinux/debian/watch.ex
Normal file
@ -0,0 +1,23 @@
|
||||
# Example watch control file for uscan
|
||||
# Rename this file to "watch" and then you can run the "uscan" command
|
||||
# to check for upstream updates and more.
|
||||
# See uscan(1) for format
|
||||
|
||||
# Compulsory line, this is a version 3 file
|
||||
version=3
|
||||
|
||||
# Uncomment to examine a Webpage
|
||||
# <Webpage URL> <string match>
|
||||
#http://www.example.com/downloads.php syslinux-(.*)\.tar\.gz
|
||||
|
||||
# Uncomment to examine a Webserver directory
|
||||
#http://www.example.com/pub/syslinux-(.*)\.tar\.gz
|
||||
|
||||
# Uncommment to examine a FTP server
|
||||
#ftp://ftp.example.com/pub/syslinux-(.*)\.tar\.gz debian uupdate
|
||||
|
||||
# Uncomment to find new files on sourceforge, for devscripts >= 2.9
|
||||
# http://sf.net/syslinux/syslinux-(.*)\.tar\.gz
|
||||
|
||||
# Uncomment to find new files on GooglePages
|
||||
# http://example.googlepages.com/foo.html syslinux-(.*)\.tar\.gz
|
8
syslinux/make_deb.sh
Normal file
8
syslinux/make_deb.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
tar xvfj syslinux-3.86.tar.bz2
|
||||
cd syslinux-3.86
|
||||
cp -rL ../debian .
|
||||
dpkg-buildpackage
|
||||
cd -
|
||||
rm -rf syslinux-3.86
|
Loading…
Reference in New Issue
Block a user