This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Merging the FSF and Sourceware GLIBC websites.


    Date: Tue, 7 Jun 2011 09:50:31 -0400
    From: "Carlos O'Donell" <carlos@codesourcery.com>
    To: Karl Berry <karl@freefriends.org>
    CC: <libc-alpha@sourceware.org>
    Subject: Re: Merging the FSF and Sourceware GLIBC websites.

    carlos>> Would it be possible to have you document on the glibc
    carlos>> wiki, in broad strokes, the process you follow to update
    carlos>> the manuals? "Website Maintenance"
    carlos>> http://sourceware.org/glibc/wiki/Website%20Maintenance

    karl> I actually do most of the update with a little script.  [...]

    carlos> That sounds like a great idea.
    carlos> Could you please add a reference to the wiki page in the script 
    carlos> comments. That way people reading the script go to the right
    carlos> place to find new information.
    carlos> Please check it in with that change.

Two years later, but so it goes ... I've just committed the script as
<libc-www>/manual/updatelibc, a.k.a.
http://web.cvs.savannah.gnu.org/viewvc/libc/manual/updatelibc?root=libc
Also pasted below for the heck of it.

I don't mind continuing to do the actual updating job.  glibc releases
(thankfully) aren't frequent enough for it to be a problem :).

Let me know if questions or problems.
Karl


#!/bin/sh -ex
# Public domain.  Originally written by Karl Berry, 2008.
# 
# Update libc manual on www.gnu.org, which is kept in the 
# CVS "webpages repository" for libc, https://savannah.gnu.org/cvs/?group=libc.
# More documentation: http://sourceware.org/glibc/wiki/Website%20Maintenance.
#
# First arg is distribution tarball.
#
# This script does not cvs commit anything; cvs adds/removes
# must also be done by hand.  See comments throughout.
# 
# Assumes cvs checkout of the libc www repository in $HOME/src/libc-www,
# and creates other subdirs under $HOME/src.
# 
# It is safest to execute this script by hand in a shell, one line at a
# time, to avoid surprises.

cd $HOME/src

ver=2.18      # edit for new release, of course.
rm -rf glibc-$ver
tar xf ${1-$dist/glibc-$ver.tar.xz}

(cd glibc-$ver/manual
 # the idea is to use the latest released texinfo.tex,
 # available from ftp.gnu.org:gnu/texinfo/texinfo.tex.
 test -r texinfo.tex.dist || mv texinfo.tex texinfo.tex.dist
 wget -nv http://ftp.gnu.org/gnu/texinfo/texinfo.tex
)

rm -rf glibc-build
mkdir glibc-build
cd glibc-build
# we're not actually going to install anything,
# so this is just to avoid accidents.
./glibc-$ver/configure --prefix=$HOME/glibc-install >&out.conf

# just in case some particular make works best.
make=make

# must make non-split HTML first.
$make MAKEINFO="makeinfo --no-split" html >&out.makenosplit
mv manual/libc manual/libc.html
#
# this loops makes the split HTML, and other formats.
for fmt in info html dvi pdf; do
  echo "$PWD/out.make$fmt"
  $make $fmt >&out.make$fmt </dev/null
  tail -2 out.make$fmt
done

cd manual
man=`pwd`
#
# fix cross-manual xrefs (until we use makeinfo 5).
perl -pi -e 's,href="(gcc|cpp)\.html#(.*?)",href="http://gcc.gnu.org/onlinedocs/ref/\1/\2.html";,' libc.html
#
# fix cross-manual xrefs in split html.
cd libc
perl -pi -e 's,href="\.\./(gcc|cpp)/(.*?)#.*?",href="http://gcc.gnu.org/onlinedocs/ref/\1/\2";,' *.html
cd ..
# 
# make plain text:
makeinfo --no-split -o libc.txt --plaintext -P ../../glibc-$ver/manual/ libc.texinfo
gzip libc.txt
# 
# make archives for web page:
tar czf libc-texi.tar.gz *.texi* -C ../../glibc-$ver/manual
tar czf libc-info.tar.gz libc.info*
tar czf libc-html_node.tar.gz libc
gzip libc.dvi
#
# Need checkout of libc CVS "webpages repository" here, of course.
cd ../../libc-www/manual
\cp $man/libc.dvi.gz dvi/
\cp $man/libc.html html_mono/
\cp $man/libc-info.tar.gz info/
\cp $man/libc.pdf pdf/
\cp $man/libc-texi.tar.gz texi/
\cp $man/libc.txt.gz text/
cd html_node
\cp $man/libc-html_node.tar.gz .
\cp $man/libc/* .
ls -lt | tail; : look for old mtimes = to be removed

cd ..
cvs update; : "look for ? status = files to be added"

: edit index.html for the date and libc version,
: and copyright year if it is a new year.
:
: then do the cvs commit, check results at http://gnu.org/s/libc/manual.

exit 0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]