Re: Netscape
On Sun, Jan 09, 2000 at 06:40:31PM +0100, François BOISSON wrote:
> En fait, le problème est plus compliqué, je crée un utilisateur (un
> élève en fait). Bon, il se met au travail (un jour) et appelle netscape
> un jour pour consulter une doc format HTML par exemple (où même aller
> sur Internet). netscape crée à ce moment là les fichiers
> /home/<tartenpion>/.netscape/* dont le fichier preferences.js avec des
> valeurs par défauts dont la page "home.netscape.com") qui, dans la
> pratique, ne sont jamais changées par les élèves. Chaque fois que l'un
> d'entre eux consulte une doc HTML, la ligne décroche. J'ai bien
> régulièrement modifié quelques fichiers preferences.js mais, à ce jour,
> en gros 1 élève sur deux n'a pas utilisé netscape (ça me laisse songeur
> d'ailleurs). Je voudrais donc agir lors de la création de ces fichiers
> (je ne veux pas forcer les utilisateurs à ne plus y toucher). Je n'ai
> pas vu de fichiers de préférence par défaut mais par contre ai vu dans
> le code de communicator ce qui ressemble au fichier "preference.js".
> Peut être que les concepteurs de netscape veulent obliger le premier
> utilisateur à se connecter au moins une fois sur leur site!
Apparemment, tu n'as pas installé netscape par l'intermédiaire d'un paquet
Debian. Pour résoudre le problème que tu évoques --- connexion forcée la
première fois chez Netscape --- le paquet Debian utilise un wrapper qui, la
où il est situé, est appelé à la place du binaire Netscape. Ce wrapper, un
script de shell Bourne, effectue les diverses initialisations, recopie un
fichier preferences.js mis au point par l'administrateur, et appelle le binaire
netscape avec l'URL extraite du fichier preferences.js --- ce qui résout ton
problème.
Chez Debian, l'URL de départ est bien sûr http://www.debian.org, mais libre à
l'administrateur de définir l'URL qu'il veut dans le fichier preferences.js
qui sert de squelette.
Donc, le plus simple serait que tu passes par le paquet Debian ( que tu peux
«tromper» en lui passant une version de netscape qui ne soit pas libc6 ---
c'est ce que j'ai fait --- en renommant simplement le fichier .tar.gz
récupéré chez Netscape du nom attendu par le paquet Debian).
A titre d'illustration, je te joins le wrapper utilisé par le paquet.
Si ce n'est pas suffisamment clair, tu n'as qu'à demander :)
A+
--
Thierry LARONDE
thierry.laronde@polynum.com
website : http://www.polynum.com
#! /bin/bash -e
###############################################################################
#
# Netscape Wrapper -- written by H. Peter Anvin <hpa@transmeta.com>
#
# (97.06.28-98.11.12) Modified for Debian by Brian White <bcwhite@pobox.com>
#
###############################################################################
#
# Defaults
#
netscape=/usr/lib/netscape/netscape
nsremote=/usr/bin/X11/netscape
prefskel=/usr/lib/netscape/.netscape
prefetc=/etc/skel/.netscape
prefdir=$HOME/.netscape
pref=$prefdir/preferences.js
oldpref=$prefdir/preferences
pwd=`pwd`
#
# Try calling existing netscape with URL, if fail then start new one.
#
showurl () {
case "$1" in
*:*) url="$1" ;;
/*) url="file:$1" ;;
*) if [ -e "$1" ]
then url=`echo "file:$pwd/$1" | sed -e 's:///*:/:g'`
else url=$1
fi ;;
esac
if echo $DISPLAY | egrep -q "^:"; then
$nsremote -noraise -remote "openURL($url, new_window)" 2>/dev/null \
|| exec $netscape "$url"
else
exec $netscape "$url"
fi
}
#
# Don't allow running netscape as root
#
if [ $UID -eq 0 -o $EUID -eq 0 ]; then
echo "$0: Cannot be run an root (for security reasons)"
exit 1
fi
#
# Set some env vars to make things work better
#
#LD_LIBRARY_PATH=/usr/lib/netscape:$LD_LIBRARY_PATH
MOZILLA_HOME=/usr/lib/netscape
NPX_PLUGIN_PATH=$HOME/.netscape/plugins:/usr/local/lib/netscape/plugins:/usr/lib/netscape/plugins
display=$DISPLAY
export MOZILLA_HOME NPX_PLUGIN_PATH display
#
# Fix "locale" problems when printing to postscript
#
# If the locale uses a decimal separator other than a point printf
# will return something other than 1.0
#
pnt=`printf "%1.1f" 1 2>/dev/null`
if [ "$pnt" != "1.0" ]; then
# Perhaps we have a "dangerous" value for LANG or LC_NUMERIC. Let's
# try a "safe" value for LC_NUMERIC.
LC_NUMERIC=C
export LC_NUMERIC
pnt=`printf "%1.1f" 1 2> /dev/null`
if [ "$pnt" != "1.0" ]; then
# No, it is LC_ALL which is bad. Set LC_*=$LC_ALL for every category
# (as expected) except LC_NUMERIC, and then unset LC_ALL.
LC_COLLATE=$LC_ALL
LC_CTYPE=$LC_ALL
LC_MESSAGES=$LC_ALL
LC_MONETARY=$LC_ALL
LC_TIME=$LC_ALL
unset LC_ALL
export LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_CTIME
pnt=`printf "%1.1f" 1 2> /dev/null`
if [ "$pnt" != "1.0"]; then
# running out of ideas...
unset LANG
export LANG
pnt=`printf "%1.1f" 1 2> /dev/null`
if [ "$pnt" != "1.0"]; then
echo "Warning: lang/locale settings will cause printing problems"
fi
fi
fi
fi
#
# Make user copy of default files unless they already exist
#
if [ -r $oldpref -a ! -r $pref ]; then
useold=true
else
useold=false
fi
if [ -d $prefskel ]; then
if [ ! -d $prefdir ]; then
mkdir -p $prefdir
fi
cd $prefskel
for i in *; do
if [ ! -e $prefdir/$i ]; then
cp $i $prefdir/$i;
fi
done
fi
if [ -d $prefetc ]; then
if [ ! -d $prefdir ]; then
mkdir -p $prefdir
fi
cd $prefetc
for i in *; do
if [ ! -e $prefdir/$i ]; then
cp $i $prefdir/$i;
fi
done
fi
if $useold; then
rm -f $pref
echo "Removing $pref so it can be generated from $oldpref"
fi
cd $pwd
#
# Decide what to do...
#
if [ $# -gt 1 ]; then
exec $netscape "$@"
elif [ $# -eq 1 ]; then
if [ `echo $1 | cut -c1` != '-' ]; then
showurl "$1"
else
exec $netscape "$@"
fi
elif [ -f $pref ]; then
homepage=`egrep '^user_pref.*"browser.startup.homepage"' $pref | sed -e 's/^.*".*".*"\(.*\)".*$/\1/'`
strtpage=`egrep '^user_pref.*"browser.startup.page"' $pref | sed -e 's/^.*".*", *\([0-9]*\).*$/\1/'`
if [ -n "$strtpage" ]; then
if [ "$strtpage" -ne 1 ]; then
homepage=""
fi
fi
if [ -n "$homepage" ]; then
showurl "$homepage"
else
exec $netscape
fi
else
exec $netscape
fi
Reply to:
- References:
- Netscape
- From: "François BOISSON" <fboisson@worldnet.fr>
- Re: Netscape
- From: Thierry Laronde <thierry.laronde@polynum.com>
- Re: Netscape
- From: "François BOISSON" <fboisson@worldnet.fr>