Tom Eastep
2005-May-26 11:10 UTC
[Shorewall-devel] Updated Shorewall build and publish scripts
Attached please find updated build and publish scripts. They set the
''ulink.target'' parameter appropriately when converting
docbook->HTML. I
have always hacked my xhtml/params.xsl file to set this parameter; these
updated scripts make that abomination unnecessary.
Paul/Mike: It might be a good idea to add a CVS project for these scripts.
-Tom
--
Tom Eastep \ Nothing is foolproof to a sufficiently talented fool
Shoreline, \ http://shorewall.net
Washington USA \ teastep@shorewall.net
PGP Public Key \ https://lists.shorewall.net/teastep.pgp.key
-------------- next part --------------
#!/bin/sh
#
# Shorewall Release Processing -- (C) 2003,2004,2005 -- Tom Eastep
(teastep@shorewall.net)
#
# This program is under GPL [http://www.gnu.org/copyleft/gpl.htm]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of Version 2 of the GNU General Public License
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
#
# I install this script in /usr/local/bin/makeshorewall.
#
# Usage:
#
# makeshorewall [ -trhxl ] <version> [ <previous version> ]
#
# -t Build tarball
# -r Build RPM
# -h Build HTML documentation
# -x Build XML documentation
# -l Build LRP
#
# If no options are given, all options are assumed.
#
# If <previous version> is given, a patch file reflecting the differences
# between that version and the current version ( <version> ) is
# generated. The directory ./shorewall-<previous version> must exist and
# contain the version against which the patch is generated.
################################################################################
# C O N F I G U R A T I O N
################################################################################
#
# XSL Stylesheet to use for XML->HTML conversion
#
STYLESHEET=/usr/share/xml/docbook/stylesheet/nwalsh/current/xhtml/docbook.xsl
#
# Directory where the build log will be placed. The log has the name
# shorewall_build_<version>.log
#
LOGDIR=/root
#
# Your RPM build directory
#
RPMDIR=/usr/src/packages
#
# Directory where you want the release to be built
#
DIR=$PWD
################################################################################
# V A R I A B L E S
################################################################################
VERSIONOLDVERSIONSHOREWALLDIRSOURCEDIRLRPPROJLRPDIRLRPCVSPROJCVSSTABLEXMLPROJRPMNAMETARBALLLOGFILEHTMLDIRBUILDTARBALLBUILDRPMBUILDXMLBUILDHTMLBUILDLRP################################################################################
# F U N C T I O N S
################################################################################
progress_message()
{
echo >> $LOGFILE
echo "$@" | tee -a $LOGFILE
echo >> $LOGFILE
}
report()
{
echo "$@" | tee -a $LOGFILE
}
do_or_die()
{
eval $@ || { progress_message "Step \"$*\" FAILED" ;
exit 2; }
}
fatal_error() {
progress_message "$*"
exit 2
}
list_search() # $1 = element to search for , $2-$n = list
{
local e=$1
while [ $# -gt 1 ]; do
shift
[ "x$e" = "x$1" ] && return 0
done
return 1
}
usage()
{
echo "usage: $(basename $0) [ -trhxl] <version> [
<old-version> ]"
exit 2
}
################################################################################
# E X E C U T I O N S T A R T S H E R E
################################################################################
done
case $1 in
-*)
;;
*)
BUILDTARBALL=Yes
BUILDRPM=Yes
BUILDHTML=Yes
BUILDXML=Yes
BUILDRPM=Yes
BUILDLRP=Yes
done=Yes
;;
esac
while [ -z "$done" ]; do
[ $# -eq 0 ] && break
option=$1
case $option in
-*)
option=${option#-}
[ -z "$option" ] && break
while [ -n "$option" ]; do
case $option in
t*)
BUILDTARBALL=Yes
option=${option#t}
;;
r*)
BUILDRPM=Yes
option=${option#r}
;;
h*)
BUILDHTML=Yes
option=${option#h}
;;
x*)
BUILDXML=Yes
option=${option#x}
;;
l*)
BUILDLRP=Yes
option=${option#l}
;;
*)
usage
;;
esac
done
shift
;;
*)
done=Yes
;;
esac
done
case $# in
1)
;;
2)
OLDVERSION=$2
;;
*)
usage
;;
esac
VERSION=$1
LOGFILE=$LOGDIR/shorewall_build_${VERSION}.log
touch $LOGFILE
progress_message "Build of Shorewall $VERSION on $(date)"
case $VERSION in
2.0.*)
CVSPROJ=STABLE
XMLPROJ=Shorewall-docs
LRP=shorwall-${VERSION}.lrp
LRPPROJ=Lrp
;;
2.2.*)
CVSPROJ=STABLE2
XMLPROJ=Shorewall-docs2
LRP=shorewall-lrp-${VERSION}.tgz
LRPPROJ=Lrp2
;;
2.3.*)
CVSPROJ=Shorewall2
XMLPROJ=Shorewall-docs2
BUILDLRP ;;
2.4.*)
CVSPROJ=Shorewall2
XMLPROJ=Shorewall-docs2
BUILDLRP ;;
*)
echo "Unsupported Version: $VERSION"
exit 2
;;
esac
[ -d $DIR ] || { echo "Directory $DIR does not exist or is
unaccessible" ; exit 2 ; }
progress_message "Distribution directory is $DIR"
cd $DIR
case $VERSION in
*Beta*|*RC*)
#
# Beta or Release Canditate
#
SHOREWALLDIR=shorewall-${VERSION%-*}
TARBALL=shorewall-${VERSION%-*}.tgz
RPMNAME=shorewall-${VERSION%-*}-0${VERSION#*-}.noarch.rpm
;;
*)
#
# Normal Release
#
SHOREWALLDIR=shorewall-$VERSION
TARBALL=shorewall-$VERSION.tgz
RPMNAME=shorewall-${VERSION}-1.noarch.rpm
;;
esac
HTMLDIR=shorewall-docs-html-$VERSION
LRPDIR=shorewall-lrp-$VERSION
if [ -n "${BUILDTARBALL}${BUILDRPM}" ]; then
report "Shorewall directory is $DIR/$SHOREWALLDIR"
report "CVS Project is $CVSPROJ"
[ -n "$BUILDTARBALL" ] && report "TARBALL is
$TARBALL"
[ -n "$BUILDRPM" ] && report "RPM is
$RPMNAME"
fi
[ -n "$BUILDHTML" ] && report "HTML Directory is
$HTMLDIR"
[ -n "$BUILDLRP" ] && report "LRP Directory is
$LRPDIR"
if [ -n "${BUILDTARBALL}${BUILDRPM}" ]; then
progress_message "Exporting $CVSPROJ from CVS..."
rm -rf $SHOREWALLDIR
rm -rf $CVSPROJ
do_or_die "cvs -d :pserver:anonymous@cvs.shorewall.net:/usr/local/cvs
export -D now $CVSPROJ >> $LOGFILE 2>&1"
do_or_die mv $CVSPROJ $SHOREWALLDIR
fgrep VERSION=$VERSION $SHOREWALLDIR/install.sh > /dev/null 2>&1
|| fatal_error "install.sh has wrong version"
fgrep VERSION=$VERSION $SHOREWALLDIR/uninstall.sh > /dev/null 2>&1
|| fatal_error "uninstall.sh has wrong version"
fgrep VERSION=$VERSION $SHOREWALLDIR/fallback.sh > /dev/null 2>&1
|| fatal_error "fallback.sh has wrong version"
if [ -n "$BUILDTARBALL" ]; then
progress_message "Creating $DIR/$TARBALL..."
do_or_die "tar -zcvf $TARBALL $SHOREWALLDIR >> $LOGFILE
2>&1"
fi
if [ -n "$BUILDRPM" ]; then
progress_message "Building $RPMNAME..."
do_or_die "rpmbuild -tb $TARBALL >> $LOGFILE 2>&1"
do_or_die cp -a $RPMDIR/RPMS/noarch/$RPMNAME .
fi
fi
if [ -n "${BUILDXML}${BUILDHTML}" ]; then
progress_message "Exporting $XMLPROJ from CVS..."
rm -rf $XMLPROJ
rm -rf shorewall-docs-xml-$VERSION
do_or_die "cvs -d :pserver:anonymous@cvs.shorewall.net:/usr/local/cvs
export -D now $XMLPROJ >> $LOGFILE 2>&1"
do_or_die mv $XMLPROJ shorewall-docs-xml-$VERSION
rm -f shorewall-docs-xml-$VERSION/images/*.vsd
rm -f shorewall-docs-xml-$VERSION/images/~*
rm -f shorewall-docs-xml-$VERSION/images/*.JPG
rm -f shorewall-docs-xml-$VERSION/images/publish
rm -f shorewall-docs-xml-$VERSION/images/Thumbs.db
if [ -n "$BUILDXML" ]; then
progress_message "Creating $DIR/shorewall-docs-xml-$VERSION.tgz..."
do_or_die "tar -zcvf shorewall-docs-xml-$VERSION.tgz
shorewall-docs-xml-$VERSION >> $LOGFILE 2>&1"
fi
if [ -n "$BUILDHTML" ]; then
progress_message "Building $HTMLDIR ..."
rm -rf $HTMLDIR
do_or_die mkdir $HTMLDIR
do_or_die mkdir $HTMLDIR/images
#
# The original HTML documents were created using MS FrontPage and used
# the .htm suffix. The remainder use the .html suffix.
#
HTMFILES="
6to4.htm
blacklisting_support.htm
configuration_file_basics.htm
CorpNetwork.htm
dhcp.htm
Documentation.htm
errata.htm
fallback.htm
FAQ.htm
GnuCopyright.htm
Install.htm
IPIP.htm
IPSEC.htm
kernel.htm
myfiles.htm
NAT.htm
ports.htm
PPTP.htm
ProxyARP.htm
quotes.htm
samba.htm
shorewall_extension_scripts.htm
shorewall_features.htm
shorewall_mirrors.htm
shorewall_prerequisites.htm
shorewall_quickstart_guide.htm
shorewall_setup_guide_fr.htm
shorewall_setup_guide.htm
Shorewall_sfindex_frame.htm
standalone.htm
starting_and_stopping_shorewall.htm
support.htm
three-interface.htm
traffic_shaping.htm
troubleshoot.htm
two-interface.htm
upgrade_issues.htm
VPN.htm
whitelisting_under_shorewall.htm"
for file in shorewall-docs-xml-$VERSION/*.xml; do
a=$(basename $file)
b=${a%.*}
list_search $b.htm $HTMFILES && b=$b.htm || b=$b.html
f="shorewall-docs-html-$VERSION/$b"
report "Converting $DIR/$file from XML to HTML ($DIR/$f) ..."
do_or_die xsltproc --output $f --stringparam html.stylesheet html.css
--stringparam ulink.target _self -param toc.section.depth 3 $STYLESHEET $file
done
progress_message "Copying images to $DIR/$HTMLDIR/images ..."
do_or_die cp -a shorewall-docs-xml-$VERSION/images/*.png $HTMLDIR/images
do_or_die cp -a shorewall-docs-xml-$VERSION/images/*.gif $HTMLDIR/images
do_or_die cp -a shorewall-docs-xml-$VERSION/images/*.jpg $HTMLDIR/images
do_or_die cp -a shorewall-docs-xml-$VERSION/*.css $HTMLDIR
do_or_die ln -s Documentation_Index.html
shorewall-docs-html-$VERSION/index.html
progress_message "Creating $DIR/shorewall-docs-html-$VERSION.tgz ..."
do_or_die "tar -zcvf shorewall-docs-html-$VERSION.tgz
shorewall-docs-html-$VERSION >> $LOGFILE 2>&1"
fi
fi
[ -n "$BUILDTARBALL" ] && case $VERSION in
*Beta*|*RC*)
#
# The original tarball created above didn''t include the -Beta or -RC
portion of the
# name in either the tarball name or the directory name. Create it here
#
progress_message "Creating $DIR/shorewall-$VERSION..."
rm -rf shorewall-$VERSION
do_or_die mv $SHOREWALLDIR shorewall-$VERSION
progress_message "Creating $DIR/shorewall-${VERSION}.tgz ..."
do_or_die "tar -zcvf shorewall-${VERSION}.tgz shorewall-$VERSION >>
$LOGFILE 2>&1"
;;
esac
if [ -n "$BUILDLRP" ]; then
progress_message "Exporting $LRPPROJ from CVS ..."
rm -rf $LRPDIR
rm -rf $LRPPROJ
do_or_die "cvs -d :pserver:anonymous@cvs.shorewall.net:/usr/local/cvs
export -D now $LRPPROJ >> $LOGFILE 2>&1"
do_or_die mv $LRPPROJ $LRPDIR
cd $LRPDIR
[ "$VERSION" = $(cat usr/share/shorewall/version) ] || fatal_error
"$LRPPROJ has wrong version"
rm -f var/lib/lrpkg/shorwall.version
do_or_die ln -s ../../../usr/share/shorewall/version
var/lib/lrpkg/shorwall.version
[ -d var/lib/shorewall ] || do_or_die mkdir var/lib/shorewall
do_or_die chmod 700 etc etc/init.d etc/shorewall sbin usr usr/share
usr/share/shorewall var var/lib var/lib/lrpkg var/lib/shorewall
do_or_die chmod 600 etc/shorewall/*
do_or_die chmod 700 etc/init.d/shorewall
do_or_die chmod 700 sbin/shorewall
do_or_die chmod 600 usr/share/shorewall/*
do_or_die chmod 700 usr/share/shorewall/firewall
do_or_die chmod 600 var/lib/lrpkg/shorwall.help
do_or_die chmod 600 var/lib/lrpkg/shorwall.list
do_or_die chmod 600 var/lib/lrpkg/shorwall.conf
case $VERSION in
2.*)
[ -d etc/shorewall/start.d ] || do_or_die mkdir etc/shorewall/start.d
[ -d etc/shorewall/stop.d ] || do_or_die mkdir etc/shorewall/stop.d
do_or_die chmod 755 etc/shorewall/start.d
do_or_die chmod 755 etc/shorewall/stop.d
;;
esac
progress_message "Creating $DIR/$LRP ..."
do_or_die "tar -zcvf ../$LRP $(cat var/lib/lrpkg/shorwall.list)
>> $LOGFILE 2>&1"
cd $DIR
fi
if [ -n "$OLDVERSION" ]; then
progress_message "Creating patch-$VERSION ..."
diff -Nau shorewall-$OLDVERSION shorewall-$VERSION > patch-$VERSION
fi
progress_message "Shorewall $VERSION Build complete - $(date)"
-------------- next part --------------
#!/bin/sh
#STYLESHEET=/home/teastep/Shorewall/docbook-xsl-1.62.4//xhtml/docbook.xsl
STYLESHEET=/usr/share/xml/docbook/stylesheet/nwalsh/current/xhtml/docbook.xsl
WEBSITE=/home/teastep/Shorewall/Website
if [ $# -eq 0 ]; then
echo "Usage: $(basename $0) <XML file> ..."
exit 2
fi
while [ $# -gt 0 ]; do
case $1 in
*.xml)
b=${1%.*}
if [ -f ../Website/$b.htm ]; then
b=$b.htm
f="$WEBSITE/$b"
else
b=$b.html
f="$WEBSITE/$b"
fi
echo "Converting $1 from XML to HTML ($b) ..."
if xmllint --valid --noout $1 && xsltproc --output $f --stringparam
html.stylesheet html.css --stringparam ulink.target _self -param
toc.section.depth 3 $STYLESHEET $1 ; then
filestocopy="$filestocopy $f"
fi
;;
*)
filestocopy="$filestocopy $1"
;;
esac
shift
done
if [ -n "$filestocopy" ]; then
for f in $filestocopy; do
filestoreport="$filestoreport $(basename $f)"
done
echo "Copying$filestoreport to SourceForge..."
scp $filestocopy
teastep@shorewall.sourceforge.net:/home/groups/s/sh/shorewall/htdocs >
/dev/null
echo "Copying$filestoreport to Mail..."
scp -p $filestocopy root@mail:/var/www/html > /dev/null
fi
Mike Noyes
2005-May-26 11:35 UTC
[Shorewall-devel] Re: Updated Shorewall build and publish scripts
On Thu, 2005-05-26 at 11:10, Tom Eastep wrote:> Attached please find updated build and publish scripts. They set the > ''ulink.target'' parameter appropriately when converting docbook->HTML. I > have always hacked my xhtml/params.xsl file to set this parameter; these > updated scripts make that abomination unnecessary. > > Paul/Mike: It might be a good idea to add a CVS project for these scripts.Tom, The problem is target was deprecated for anchors (a) in xhtml 1.0 strict. The Sagehill DocBook XSL guide covers ways to generate valid xhtml strict pages. Comparison of Strict and Transitional XHTML http://www.zvon.org/xxl/xhtmlReference/Output/comparison.html Attribute target is forbidden on a, area, base, form, link. Strict XHTML guidelines http://www.sagehill.net/docbookxsl/OtherOutputForms.html#ValidateXhtml BTW, since the whole website is in docbook, an evaluation of the docbook website dtd may be in order. Chapter 29. Website http://www.sagehill.net/docbookxsl/Website.html Website doctype and stylesheets http://docbook.sourceforge.net/projects/website/index.html -- Mike Noyes <mhnoyes at users.sourceforge.net> http://sourceforge.net/users/mhnoyes/ SF.net Projects: leaf, phpwebsite, phpwebsite-comm, sitedocs
Tom Eastep
2005-May-26 11:42 UTC
[Shorewall-devel] Re: Updated Shorewall build and publish scripts
Mike Noyes wrote:> > BTW, since the whole website is in docbook,Not quite -- the pages in the Shorewall-Website/ CVS project are maintained in HTML. The HTML tree from Documentation_Index.html on down is maintained in Docbook and generated during ''makeshorewall'' or ''publish''.> an evaluation of the docbook website dtd may be in order.I''ll leave that for the new team given that Paul has suggested abandoning docbook altogether. -Tom -- Tom Eastep \ Nothing is foolproof to a sufficiently talented fool Shoreline, \ http://shorewall.net Washington USA \ teastep@shorewall.net PGP Public Key \ https://lists.shorewall.net/teastep.pgp.key
Mike Noyes
2005-May-26 12:05 UTC
[Shorewall-devel] Re: Updated Shorewall build and publish scripts
On Thu, 2005-05-26 at 11:42, Tom Eastep wrote:> Mike Noyes wrote: > > BTW, since the whole website is in docbook, > > Not quite -- the pages in the Shorewall-Website/ CVS project are > maintained in HTML. The HTML tree from Documentation_Index.html on down > is maintained in Docbook and generated during ''makeshorewall'' or ''publish''.Tom, Understood. The current navigation and some other tweaks would be necessary. Note: the DocBook Website generates navigation.> > an evaluation of the docbook website dtd may be in order. > > I''ll leave that for the new team given that Paul has suggested > abandoning docbook altogether.If a move to a dynamic website is decided on, that''s probably best. There are some docbook options (plone (lampadas), docbook wiki) with CMS, but they aren''t plentiful. -- Mike Noyes <mhnoyes at users.sourceforge.net> http://sourceforge.net/users/mhnoyes/ SF.net Projects: leaf, phpwebsite, phpwebsite-comm, sitedocs
Seemingly Similar Threads
- Bug#658305: [PATCH] hotplug: vif: fail if a duplicate vifname is used
- Bug#1067151: xen-utils-common: vif-openvswitch ignores MTU
- [PATCH i-g-t 4/4] tests: Add nouveau-crc tests
- [PATCH i-g-t v3 5/5] tests: Add nouveau-crc tests
- [PATCH i-g-t v5 5/5] tests: Add nouveau-crc tests