NetBSD-5.0.2/dist/pppd/ppp2netbsd

#!/bin/sh
#
# $NetBSD: ppp2netbsd,v 1.4 2008/04/30 13:10:47 martin Exp $
#
#  Copyright (c) 2005 The NetBSD Foundation.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. 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.
# 
#  THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
#

# Execute this at the top of the ppp distribution
# then import it.
#
# cvs import src/dist/pppd MACKERRAS PPP2_4_X

# Stuff we don't need
UNUSED_DIRS="common contrib etc.ppp include linux modules solaris scripts"
UNUSED_FILES="Changes-2.3 README.linux README.pppoe README.sol2 configure"
UNUSED_FILES="${UNUSED_FILES} pppd/md[45].* pppd/sha1.* pppd/srp-entry.*"
UNUSED_FILES="${UNUSED_FILES} pppd/sys-linux.c pppd/sys-solaris.c"
UNUSED_FILES="${UNUSED_FILES} pppdump/zlib.* pppdump/ppp-comp.h"

# Stuff we don't want
GPL_DIRS="pppd/plugins/pppoatm pppd/plugins/radius pppd/plugins/rp-pppoe"
GPL_FILES="pppd/tdb.* pppd/spinlock.* pppd/plugins/passprompt.c
    pppd/plugins/winbind.c"

echo -n "Removing unwanted stuf... "
for obj in ${UNUSED_DIRS} ${GPL_DIRS} ${UNUSED_FILES} ${GPL_FILES}; do
	rm -Rf ${obj}
	echo -n "${obj} "
done
echo; echo

# Remove Makefiles
echo -n "Removing Makefiles... "
find . -type f -name 'Makefile*' | while read m; do
	rm -f ${m}
	echo -n "${m} "
done
echo; echo

# Changing RCS Ids
echo -n "Fixing RCS Ids... "
find . -type f | while read f; do
	sed -e 's/\$\(Id:.*\) \$/\1/' < ${f} > /tmp/ppp2netbsd.$$ && \
	    echo -n "${f} " && \
	    mv /tmp/ppp2netbsd.$$ ${f}
done
echo; echo

# Add NetBSD RCS Ids

# Man pages
echo -n "Adding NetBSD Ids to manpages... "
find . -type f -name '*.[1-8]' | while read f; do
	(echo ".\\\"	\$NetBSD\$"; echo '.\"'; cat ${f}) > /tmp/ppp2netbsd.$$ && \
	    echo -n "${f} " && \
	    mv /tmp/ppp2netbsd.$$ ${f}
done
echo; echo

# Source files
echo -n "Adding NetBSD Ids to C source files and headers... "
find . -type f -name '*.[ch]' | while read f; do
	(echo "/*	\$NetBSD\$	*/"; echo; cat ${f}) \
	    > /tmp/ppp2netbsd.$$ && echo -n "${f} " && \
	    mv /tmp/ppp2netbsd.$$ ${f}
done
echo; echo

# RCSID management
echo -n "Fixing RCSID references... "
find . -type f -name '*.c' | while read f; do
	sed -e '{
/^#define[ 	]RCSID/{i\
#include <sys/cdefs.h>\
#ifndef lint\
#if 0
a\
#else\
__RCSID("\$NetBSD\$");\
#endif\
#endif
}
/= RCSID/{i\
#ifdef RCSID
a\
#endif
}
/^#ifndef[ 	]lint$/,/^#endif$/{
/^#ifndef[ 	]lint/i\
#include <sys/cdefs.h>
/^static const char rcsid\[\] = "/{i\
#if 0
a\
#else\
__RCSID("\$NetBSD\$");\
#endif
};};}' < ${f} > /tmp/ppp2netbsd.$$ && echo -n "${f} " && \
	    mv /tmp/ppp2netbsd.$$ ${f}
done
echo; echo
#\(#ifndef[ 	]lint\n\)\(static const char rcsid\[\] = .*\)$/\
##include <sys\/cdefs.h>\n\
#\1\
##if 0\n\
#\2\n\
##else\n\
#__RCSID("\$NetBSD\$");\n\
##endif/