This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Merging the FSF and Sourceware GLIBC websites.
- From: karl at freefriends dot org (Karl Berry)
- To: carlos at codesourcery dot com
- Cc: libc-alpha at sourceware dot org
- Date: Fri, 20 Sep 2013 16:30:28 GMT
- Subject: Re: Merging the FSF and Sourceware GLIBC websites.
- Authentication-results: sourceware.org; auth=none
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