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