Changeset 1315


Ignore:
Timestamp:
Apr 16, 2007, 4:13:59 PM (13 years ago)
Author:
bruno
Message:

Log files are now consistent: mondoarchive.log for mondoarchive (containing also mindi.log) and mondorestore.log for mondorestore (copied from /tmp (ram) to /var/log (disk) at the end of the restore)
One include has been created for each bianry containing only that declaration ofr the moment, but which will be extended to include all local definitions (ps_* e.g.)
Doc updated accordingly
LOGFILE in restore process is now passed in the environment and not duplicated anymore
LogIt? is not redifined either
LOGFILE should be put in environment by mondoarchive for mindi's usage but that's a step left for later.

Location:
branches/2.2.2
Files:
2 added
28 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.2/mindi/ChangeLog

    r1311 r1315  
    33MINDI CHANGES
    44
    5 1.2.2 (2007-04-15)
     51.2.2 (2007-04-16)
     6- Mindi log file is now added to mondoarchive log file to ease debug (Bruno Cornec)
    67- Suppress losetup usage in start-nfs (unreliable and doesn't work with QEMU (Bruno Cornec)
    78- Fix a bug where losetup is called with only one parameter (#140) (Bruno Cornec)
  • branches/2.2.2/mindi/mindi

    r1311 r1315  
    430430    echo "Mindi $MINDI_VERSION is exiting" >> $LOGFILE
    431431    echo "End date : `date`" >> $LOGFILE
     432    if [ "`DidMondoCallMe`" ] ; then
     433        cat $LOGFILE >> /var/log/mondoarchive.log
     434    fi
    432435
    433436    sync
     
    452455    fi
    453456
    454     # Creates a tar file containing all required files
    455     for i in /etc/fstab /etc/lilo.conf /etc/raidtab $LOGFILE /var/log/mondo-archive.log ; do
    456         [ -e "$i" ] && cp -f $i $MINDI_TMP 2>> $LOGFILE
    457     done
    458     rm -f $TMPDIR/mindi.err.*.tgz
    459     tar -cf - $MINDI_TMP | gzip -9 > $TMPDIR/mindi.err.$$.tgz
    460     LogIt "Please e-mail a copy of $TMPDIR/mindi.err.$$.tgz to the mailing list."
     457    LogIt "Please e-mail a copy of $LOGFILE to the mailing list."
    461458    LogIt "See http://www.mondorescue.org for more information."
    462459    LogIt "WE CANNOT HELP unless you enclose that file.\n"
     
    13561353                current_partition=$actual_dev
    13571354            else
    1358                 Die "Your system uses a UUID partition ($current_partition), but you lack the tool to support it.\nPlease replace labels with their correct devices in /etc/fstab or install findfs|blkid|vol_id"
     1355                Die "Your system uses a UUID partition ($current_partition), but you lack the tool to support it.\nPlease replace labels with their correct devices in $MY_FSTAB or install findfs|blkid|vol_id"
    13591356            fi
    13601357        else
     
    28922889mount >> $LOGFILE
    28932890echo "-------------" >> $LOGFILE
     2891if [ -e /etc/raidtab ]; then
     2892    echo "-------------" >> $LOGFILE
     2893    echo "/etc/raidtab content:" >> $LOGFILE
     2894    echo "-------------" >> $LOGFILE
     2895    cat /etc/raidtab >> $LOGFILE
     2896fi
     2897echo "-------------" >> $LOGFILE
    28942898echo "lsmod result:" >> $LOGFILE
    28952899echo "-------------" >> $LOGFILE
     
    30313035    LogIt "------------------------------------------------------------------------------"
    30323036else
    3033     echo "You are using Mindi-Linux v$MINDI_VERSION to make boot+data disks" >> /var/log/mondo-archive.log
     3037    echo "You are using Mindi-Linux v$MINDI_VERSION to make boot+data disks" >> $LOGFILE
    30343038fi
    30353039if [ -f $MINDI_LIB/rootfs/bin/busybox ]; then
  • branches/2.2.2/mindi/rootfs/sbin/LogIt

    r746 r1315  
    1111currdate=""
    1212
    13 LOGFILE=/tmp/mondo-restore.log
     13if [ _"$LOGFILE" = _"" ]; then
     14    echo "LOGFILE was undefined. Using /tmp/mondorestore2.log"
     15    LOGFILE="/tmp/mondorestore2.log"
     16fi
     17
    1418if [ ! -e "$LOGFILE" ] ; then
    1519    echo "...first line..." > $LOGFILE
  • branches/2.2.2/mindi/rootfs/sbin/init

    r1273 r1315  
    367367        mount_cmd="mount /dev/shm -t tmpfs -o size=$size" ; # was 34m until 04/2003
    368368        LogIt "Trying '$mount_cmd'"
    369     $mount_cmd /tmp/tmpfs 2>> /$LOGFILE
     369    $mount_cmd /tmp/tmpfs 2>> $LOGFILE
    370370    res=$?
    371371    [ "$res" -eq "0" ] && break
     
    434434MINDI_REV=RRR
    435435trap CaughtSoftReset SIGTERM
    436 LOGFILE=/tmp/mondo-restore.log
     436LOGFILE=/tmp/mondorestore.log
    437437PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/mondo:/usr/games
    438438GROOVY=/tmp/groovy-stuff
    439439USER=root
    440 export PATH GROOVY USER
     440export PATH GROOVY USER LOGFILE
    441441
    442442echo "Welcome to init (from mindi ${MINDI_VER}-r${MINDI_REV}"
  • branches/2.2.2/mindi/rootfs/sbin/install-additional-tools

    r866 r1315  
    4343    biggiefsize=`cat $stub.size`
    4444    rm -f $stub.name $stub.size
    45 #    echo -e -n "\rRecombining #$biggienumber ($biggiefname)        \r"
    4645    > /tmp/out.dat
    4746    sliceno=0
     
    5251        slicefile="$slicefile"$sliceno
    5352        [ ! -e "$slicefile" ] && break
    54 #   echo "biggienumber=$biggienumber slicefile=$slicefile" >> /tmp/mondo-restore.log
    5553        cat $slicefile >> /tmp/out.dat
    5654        rm -f $slicefile
    5755        sliceno=$(($sliceno+1))
    5856        done
    59 #    echo "$sliceno slices"
    6057
    61     echo "$biggiefname ($biggiefsize KB) restored. $sliceno slices." >> /tmp/mondo-restore.log
    62 
    63 #    cat $stub.[0-9]* > /tmp/out.dat
    64 #    rm -f $stub.*               ; # .[0-9]* for the slices, plus .name & .size
    65 
     58    echo "$biggiefname ($biggiefsize KB) restored. $sliceno slices." >> $LOGFILE
    6659
    6760    mkdir -p $biggiefname
  • branches/2.2.2/mindi/rootfs/sbin/post-init

    r739 r1315  
    5757fi
    5858
    59 cat /tmp/mountlist.txt >> /tmp/mondo-restore.log
     59cat /tmp/mountlist.txt >> $LOGFILE
    6060
    6161iso=`grep iso /proc/cmdline`
  • branches/2.2.2/mondo-doc/mondoarchive.8

    r998 r1315  
    332332
    333333.SH DIAGNOSTICS
    334 Mondo generates two additional, and Extremely important files:
    335 .BI /var/log/mindi.log
    336 and
    337 .BI /var/log/mondo-archive.log.
    338 When seeking technical support, attach these two files to your email.
     334Mondo generates one additional, and extremely important file:
     335.BI /var/log/mondoarchive.log.
     336When seeking technical support, attach this file to your email.
    339337
    340338
    341339
    342340.SH FILES
    343 .IR /var/log/mindi.log 
    344 This log contains important information required to analyse mindi problem
    345 reports.
    346 
    347 .IR /var/log/mondo-archive.log
     341.IR /var/log/mondoarchive.log
    348342This log contains important information required to analyse mondoarchive
    349 problem reports. Mondo support highly recommends sending these files with
     343problem reports. Did I already said that it's highly recommended to send this file with
    350344support questions.
    351345
  • branches/2.2.2/mondo-doc/mondorescue-howto.sgml

    r1236 r1315  
    168168e-mail! Thank you. Without it we can't offer
    169169any tangible help because you aren't either. That's what the log
    170 file is for. It is located at <filename>/var/log/mondo-archive.log</filename>; and <filename>/var/log/mindi.log</filename> or at <filename>/var/log/mondo-restore.log</filename>
     170file is for. It is located at <filename>/var/log/mondoarchive.log</filename>; and <filename>/var/log/mindi.log</filename> (if called alone) or at <filename>/var/log/mondorestore.log</filename>
    171171</para>
    172172<para>
     
    24662466<title>Overview</title>
    24672467<para>Are the errors from Mindi or Mondo? Look at
    2468 /var/log/mondo-archive.log, /var/log/mindi.log or the
    2469 mondo.err.xxxxx.tgz log indicated by the screen message. Pipe
     2468        /var/log/mondoarchive.log or /var/log/mindi.log (if run alone). Pipe
    24702469screen errors which relate to the creation of boot disk(s) and or
    24712470data disk(s) to a text file.</para>
     
    25262525of the bugs reported are actually symptoms of FooLinux X.Y's
    25272526unique way of doing things.</para>
    2528 <para>Please send a copy of <filename>/var/log/mondo-archive.log</filename> to the &ML;
     2527<para>Please send a copy of <filename>/var/log/mondoarchive.log</filename> to the &ML;
    25292528along with a description of your distro, your kernel, etc.
    25302529Oh, and before sending it, please try to read it.</para>
     
    32543253tapes or even your hardware could be to blame. Check your CD writer
    32553254or tape streamer.</para>
    3256 <para>Also, don't forget to review <filename>/var/log/mondo-archive.log</filename> for
     3255<para>Also, don't forget to review <filename>/var/log/mondoarchive.log</filename> for
    32573256more information.</para>
    32583257</answer>
  • branches/2.2.2/mondo-doc/mondorestore.8

    r1236 r1315  
    4343.SH DIAGNOSTICS
    4444mondorestore generates an Extremely important file:
    45 .BI /var/log/mondo-archive.log.
     45.BI /var/log/mondorestore.log.
    4646When seeking technical support, attach this file to your email.
    4747
    4848.SH FILES
    49 .IR /var/log/mondo-archive.log
     49.IR /var/log/mondorestore.log
    5050This log contains important information required to analyse mondorestore problem
    5151reports. Mondo support highly recommends sending this file with support
    52 questions.
     52questions. It's located under /tmp during the restore process and moved under /var/log at the end.
    5353
    5454.SH NOTES
  • branches/2.2.2/mondo/ChangeLog

    r1309 r1315  
    33MONDO CHANGES
    44
    5 2.2.2 (2007-04-15)
     52.2.2 (2007-04-16)
     6- Log files are now consistent: mondoarchive.log for mondoarchive (containing also mindi.log) and mondorestore.log for mondorestore (copied from /tmp (ram) to /var/log (disk) at the end of the restore) (Bruno Cornec)
     7- Script label-partitions-as-necessary now works correctly for LABEL and UUID (Bruno Cornec)
     8- Remove useless script compare-me (Bruno Cornec)
    69- Some FreeBSD fixes (Bruno Cornec)
    710- Fix a bug where losetup is called with only one parameter (#140) (Bruno Cornec)
  • branches/2.2.2/mondo/src/common/libmondo-archive.c

    r1299 r1315  
    19521952            } else {
    19531953                log_to_screen("%s...OK", message_to_screen);
    1954                 if (!run_program_and_log_output
    1955                     ("tail -n10 /var/log/mondo-archive.log | grep -F ':-('",
    1956                      1)) {
     1954                sprintf(tmp, "tail -n10 %s | grep -F ':-('", MONDO_LOGFILE);
     1955                if (!run_program_and_log_output(tmp, 1)) {
    19571956                    log_to_screen
    19581957                        ("Despite nonfatal errors, growisofs confirms the write was successful.");
  • branches/2.2.2/mondo/src/common/my-stuff.h

    r1236 r1315  
    381381//#define strcpy(y,x) strncpy(y, x, sizeof(y)-1)
    382382
    383 
    384 /**
    385  * Compatibility #define to ease the transition to logfile-in-a-variable.
    386  */
    387 #define MONDO_LOGFILE    "/var/log/mondo-archive.log"
    388383
    389384/**
  • branches/2.2.2/mondo/src/common/newt-specific.c

    r1294 r1315  
    435435
    436436        printf("---FATALERROR--- %s\n", error_string);
    437         system
    438             ("gzip -9c /var/log/mondo-archive.log > /tmp/MA.log.gz 2> /dev/null");
     437        sprintf(command, "gzip -9c %s > /tmp/MA.log.gz 2> /dev/null", MONDO_LOGFILE);
     438        system(command);
    439439        printf
    440440                ("If you require technical support, please contact the mailing list.\n");
  • branches/2.2.2/mondo/src/mondoarchive/Makefile.am

    r899 r1315  
    44
    55## Headers
    6 noinst_HEADERS       = mondo-cli-EXT.h mondo-cli.h
     6noinst_HEADERS       = mondo-cli-EXT.h mondo-cli.h mondoarchive.h
    77
    88## The program
  • branches/2.2.2/mondo/src/mondoarchive/main.c

    r1274 r1315  
    117117#include "../common/libmondo.h"
    118118#include "mondo-cli-EXT.h"
     119#include "mondoarchive.h"
    119120
    120121// for CVS
  • branches/2.2.2/mondo/src/mondorestore/Makefile.am

    r899 r1315  
    77                        mondo-restore-EXT.h mr-externs.h \
    88                        mondo-rstr-compare-EXT.h mondo-rstr-tools-EXT.h mondoprep.h
     9                        mondorestore.h
    910
    1011## The program
  • branches/2.2.2/mondo/src/mondorestore/mondo-prep.c

    r1303 r1315  
    337337    /**  buffers **********************************************/
    338338    char *tmp;
     339    char *tmp1 = NULL;
    339340    char *incoming;
    340341    char *command;
     
    486487            log_it("%s... so I'll get creative.", tmp);
    487488            if (lvmversion == 2) {
    488                 strcpy(tmp, call_program_and_get_last_line_of_output
    489                        ("tail -n5 /var/log/mondo-archive.log | grep Insufficient | tail -n1"));
     489                asprintf(&tmp1, "tail -n5 %s | grep Insufficient | tail -n1", MONDO_LOGFILE);
     490                strcpy(tmp, call_program_and_get_last_line_of_output(tmp1));
     491                free(tmp1);
    490492            } else {
    491                 strcpy(tmp, call_program_and_get_last_line_of_output
    492                        ("tail -n5 /var/log/mondo-archive.log | grep lvcreate | tail -n1"));
     493                asprintf(&tmp1, "tail -n5 %s | grep lvcreate | tail -n1", MONDO_LOGFILE);
     494                strcpy(tmp, call_program_and_get_last_line_of_output(tmp1));
     495                free(tmp1);
    493496            }
    494497            for (p = tmp; *p != '\0' && !isdigit(*p); p++);
  • branches/2.2.2/mondo/src/mondorestore/mondo-restore.c

    r1295 r1315  
    1818#include "mr-externs.h"
    1919#include "mondo-restore.h"
     20#include "mondorestore.h"
    2021#include "mondo-rstr-compare-EXT.h"
    2122#include "mondo-rstr-tools-EXT.h"
     
    29862987    make_hole_for_dir("/tmp/tmpfs");    /* just in case... */
    29872988    run_program_and_log_output("umount " MNT_CDROM, FALSE);
    2988     run_program_and_log_output
    2989         ("ln -sf /var/log/mondo-archive.log /tmp/mondo-restore.log",
     2989    /*
     2990    run_program_and_log_output("ln -sf /var/log/mondo-archive.log /tmp/mondo-restore.log",
    29902991         FALSE);
     2992         */
    29912993
    29922994    run_program_and_log_output("rm -Rf /tmp/tmpfs/mondo.tmp.*", FALSE);
     
    33433345    sprintf(tmp, "rm -Rf %s", bkpinfo->tmpdir);
    33443346    run_program_and_log_output(tmp, FALSE);
    3345     log_to_screen
    3346         ("Restore log copied to /tmp/mondo-restore.log on your hard disk");
     3347    log_to_screen("Restore log (%s) copied to /var/log on your hard disk", MONDO_LOGFILE);
    33473348    sprintf(tmp,
    33483349            "Mondo-restore is exiting (retval=%d)                                      ",
  • branches/2.2.2/mondo/src/mondorestore/mondo-rstr-compare.c

    r1294 r1315  
    162162    } else {
    163163        sprintf(command_ptr,
    164                 "md5sum \"%s%s\" > /tmp/md5sum.txt 2> /tmp/errors.txt",
     164                "md5sum \"%s%s\" > /tmp/md5sum.txt 2> /tmp/errors",
    165165                MNT_RESTORING, bigfile_fname_ptr);
    166166    }
    167167    log_msg(2, command_ptr);
    168168    paranoid_system
    169         ("cat /tmp/errors >> /tmp/mondo-restore.log 2> /dev/null");
     169        ("cat /tmp/errors >> %s 2> /dev/null", MONDO_LOGFILE);
    170170    if (system(command_ptr)) {
    171171        log_OS_error("Warning - command failed");
  • branches/2.2.2/mondo/src/mondorestore/mondo-rstr-tools.c

    r1242 r1315  
    17271727        mvaddstr_and_log_it(g_currentY++, 74, "Failed.");
    17281728        log_to_screen
    1729             ("GRUB ran w/error(s). See /tmp/mondo-restore.log for more info.");
     1729            ("GRUB ran w/error(s). See %s for more info.", MONDO_LOGFILE);
    17301730        log_msg(1, "Type:-");
    17311731        log_msg(1, "    mount-me");
     
    20032003        mvaddstr_and_log_it(g_currentY++, 74, "Failed.");
    20042004        log_to_screen
    2005             ("MBR+fstab processed w/error(s). See /tmp/mondo-restore.log for more info.");
     2005            ("MBR+fstab processed w/error(s). See %s for more info.", MONDO_LOGFILE);
    20062006    } else {
    20072007        mvaddstr_and_log_it(g_currentY++, 74, "Done.");
     
    22482248
    22492249    if (run_program_and_log_output
    2250         ("cp -f /tmp/mondo-restore.log " MNT_RESTORING "/tmp/", FALSE)) {
     2250        ("cp -f " MONDO_LOGFILE " " MNT_RESTORING "/var/log", FALSE)) {
    22512251        log_msg(1,
    2252                 "Error. Failed to copy log to PC's /tmp dir. (Mounted read-only?)");
    2253     }
    2254     if (run_program_and_log_output
    2255         ("cp -f /tmp/mondo-restore.log " MNT_RESTORING "/root/", FALSE)) {
    2256         log_msg(1,
    2257                 "Error. Failed to copy log to PC's /root dir. (Mounted read-only?)");
     2252                "Error. Failed to copy log to PC's /var/log dir. (Mounted read-only?)");
    22582253    }
    22592254    if (does_file_exist("/tmp/DUMBASS-GENTOO")) {
  • branches/2.2.2/mondo/src/restore-scripts/mondo/grub-MR

    r567 r1315  
    11#!/bin/sh
    2 
    3 
     2#
     3# $Id$
     4#
    45# grub-MR ------ a rudimentary replacement for grub-install
    56#
    67#
    7 #
    8 # 2005/11/25
    9 # - try_grub_hack : do not return success when grub wrote 'Error '
    10 #
    11 # 2004/06/28
    12 # - added support for /dev/md0==GRUB
    13 #
    14 # 2004/06/27
    15 # - re-enable the call to grub-install and the 'echo' thing as a backup
    16 # - hacked the hack :) to improve MDK9.2 support
    17 # - added try_grub_hack()
    18 #
    19 # 2004/06/14
    20 # - just use grub-install.patched; nothing else
    21 #
    22 # 2004/05/05
    23 # - try EVERYTHING - grub-install, grub --batch, etc.
    24 #
    25 # 2004/04/18
    26 # - try grub --batch < /etc/grub.conf first
    27 # - if it fails, grub-install.patched instead
    28 # - if _that_ fails, fail.
    29 #
    30 # 2004/04/15
    31 # - added grub-install.patched to the mix
    32 #
    33 # 2004/04/01
    34 # - use grub-install if there's an NTFS partition on the disk
    35 #
    36 # 2004/03/31
    37 # - disabled direct call to grub
    38 #
    39 # 2004/03/28
    40 # - call grub directly if possible
    41 #
    42 # 2004/03/26
    43 # - find stage 1 if possible; more stable, reliable call to grub
    44 #
    45 # 2003/08/24
    46 # - fixed line 26 (Christian)
    47 #
    48 # 2002/11/18
    49 # - first incarnation
    50 
    51 
    52 LOGFILE=/var/log/mondo-archive.log
    53 
    548
    559Die() {
  • branches/2.2.2/mondo/src/restore-scripts/mondo/hack-lilo

    r567 r1315  
    11#!/bin/sh
    2 
    3 
    4 LogIt() {
    5     echo "$1" >> /tmp/mondo-restore.log
    6 }
    7 
     2#
     3# $Id$
     4#
    85
    96
  • branches/2.2.2/mondo/src/restore-scripts/mondo/make-me-bootable

    r911 r1315  
    11#!/bin/sh
    2 
    3 
    4 LOGFILE=/tmp/mondo-restore.log
    5 
    62
    73
  • branches/2.2.2/mondo/src/restore-scripts/mondo/raw-MR

    r567 r1315  
    77LogIt "Restoring MBR..." 2
    88if uname -a | grep -q FreeBSD; then
    9     echo -e 'y\ny' | /mnt/RESTORING/sbin/fdisk -b /BOOTLOADER.MBR -B $1 >/dev/null 2>>/tmp/mondo-restore.log
     9    echo -e 'y\ny' | /mnt/RESTORING/sbin/fdisk -b /BOOTLOADER.MBR -B $1 >/dev/null 2>> $LOGFILE
    1010else
    11     dd if=/BOOTLOADER.MBR of=$1 bs=446 count=1 2>> /tmp/mondo-restore.log
     11    dd if=/BOOTLOADER.MBR of=$1 bs=446 count=1 2>> $LOGFILE
    1212fi
    1313exit $?
  • branches/2.2.2/mondo/src/restore-scripts/mondo/stabgrub-me

    r1001 r1315  
    11#!/bin/sh
    22#
    3 # stabgrub-me
    4 #
    5 # 04/08/2003
    6 # - cleaned up backup func a bit
    7 #
    8 #
    9 #
    10 # forked from stablilo-me on 2002/11/20
     3# $Id$
    114#
    125#####################################################################
    136
    14 
    15 LOGFILE=/tmp/mondo-restore.log
    167
    178QuitIfNotFound() {
  • branches/2.2.2/mondo/src/restore-scripts/mondo/stabraw-me

    r567 r1315  
    11#!/bin/sh
    22#
    3 # stabraw-me
    4 #
    5 # forked from stablilo-me on 2002/11/21
     3# $Id$
    64#
    75#####################################################################
    86
    9 
    10 LOGFILE=/tmp/mondo-restore.log
    117
    128QuitIfNotFound() {
     
    1612    fi
    1713}
    18 
    19 
    20 
    21 
    2214
    2315LocateOldFstab() {
  • branches/2.2.2/website/old/support.html

    r958 r1315  
    152152        from the Download page - SNAPSHOTS HAVE DATES - e.g. 20031031 - IN
    153153        THEIR FILENAMES<BR>
    154         <LI CLASS="mvd-P"><B>Read</B> your own logfile (mondo-archive.log,
    155         mondo-restore.log or mindi.log)<BR>
     154        <LI CLASS="mvd-P"><B>Read</B> your own logfile (mondoarchive.log,
     155        mondorestore.log or mindi.log)<BR>
    156156        <LI CLASS="mvd-P">Try Mindi's <B>failsafe kernel</B>, if yours
    157157        doesn't work (i.e. say 'no' when asked if you want to use your own
  • branches/2.2.2/website/support.shtml

    r926 r1315  
    1414    <p>First, when you have an issue, please try to read the various log files that Mondo Rescue produces. 99% of the time, the error is described in it in clear text. Those file are:
    1515    <ul>
    16             <li><tt>/var/log/mondo-archive.log</tt></li>
    17             <li><tt>/var/log/mindi.log</tt></li>
    18             <li><tt>/var/log/mondo-restore.log</tt></li>
     16            <li><tt>/var/log/mondoarchive.log</tt></li>
     17            <li><tt>/var/log/mindi.log</tt> (now included in the previous one if called from mondo)</li>
     18            <li><tt>/var/log/mondorestore.log</tt></li>
    1919    </ul></p>
    2020    <p>Second look at the <a href="/docs.shtml">Mondo Rescue documentation</a> and the extensive FAQ section of the Mondo Rescue HOWTO, as a lot of good tip and tricks are provided there.</p>
Note: See TracChangeset for help on using the changeset viewer.