The blog provided some guidance on missing modules. With a bit of
client.mk reverse engineering, the script makes it possible to build
trunk firefox.
Usage:
./hg-complement.sh
This script should be called from the parent of mozilla tree directory.
And the mercurial tree must be in a directory named 'mozilla' or cvs
checkout will fail.
The script parses for tags, but does NOT invokes client.mk
Bugs:
hg-complement accepts date as an optional parameter. But checkout fails
for yet unknown reason, if the date is actually supplied.
Scipt body follows
------------------
#!/bin/sh
if test x$1 != x ; then
CVS_CO_DATE="-D $1"
fi
CVS="cvs -d :pserver:anonymous:anon...@cvs-mirror.mozilla.org:/cvsroot
-q -z 3"
NSPR_CO_TAG=`egrep ^NSPR_CO_TAG.*= mozilla/client.mk | sed -e "s/.*=//"`
NSS_CO_TAG=`egrep ^NSS_CO_TAG.*= mozilla/client.mk | sed -e "s/.*=//"`
LDAPCSDK_CO_TAG=`egrep ^LDAPCSDK_CO_TAG.*= mozilla/client.mk | sed -e
"s/.*=//"`
if test x"$NSPR_CO_TAG" = x ; then
NSPR_CO_TAG=-A
else
NSPR_CO_TAG="-r $NSPR_CO_TAG"
fi
if test x"$NSS_CO_TAG" = x ; then
NSS_CO_TAG=-A
else
NSS_CO_TAG="-r $NSS_CO_TAG"
fi
if test x"$LDAPCSDK_CO_TAG" = x ; then
LDAPCSDK_CO_TAG=-A
else
LDAPCSDK_CO_TAG="-r $LDAPCSDK_CO_TAG"
fi
NSPR_G=`echo $NSPR_CO_TAG | sed -e "s/-r HEAD//; s/.*BRANCH//"`
NSS_G=`echo $NSS_CO_TAG | sed -e "s/-r HEAD//; s/.*BRANCH//"`
LDA_G=`echo $LDA_CO_TAG | sed -e "s/-r HEAD//; s/.*BRANCH//"`
#if test x"$NSPR_G$NSS_G$LDA_G" != x ; then
# if test x"$CVS_CO_DATE" = x ; then
# echo Gimme date >&2
# exit 1
# fi
#fi
NSPR_CO_MODULE=mozilla/nsprpub
NSS_CO_MODULE="mozilla/dbm mozilla/security/nss
mozilla/security/coreconf mozilla/security/dbm"
LDAPCSDK_CO_MODULE=mozilla/directory/c-sdk
EXTRA_CO_MODULE="mozilla/extensions/xml-rpc mozilla/extensions/xmlextras"
echo $CVS co -P $NSPR_CO_TAG $CVS_CO_DATE $NSPR_CO_MODULE
$CVS co -P $NSPR_CO_TAG $CVS_CO_DATE $NSPR_CO_MODULE
echo $CVS co -P $NSS_CO_TAG $CVS_CO_DATE $NSS_CO_MODULE
$CVS co -P $NSS_CO_TAG $CVS_CO_DATE $NSS_CO_MODULE
echo $CVS co -P $LDAPCSDK_CO_TAG $CVS_CO_DATE $LDAPCSDK_CO_MODULE
$CVS co -P $LDAPCSDK_CO_TAG $CVS_CO_DATE $LDAPCSDK_CO_MODULE
echo $CVS co -P $CVS_CO_DATE $EXTRA_CO_MODULE
$CVS co -P $CVS_CO_DATE $EXTRA_CO_MODULE