<?xml version="1.0"?>
<!DOCTYPE webpage
  PUBLIC "-//NetBSD//DTD Website-based NetBSD Extension//EN"
	 "http://www.NetBSD.org/XML/htdocs/lang/share/xml/website-netbsd.dtd">

<webpage id="developers-mirrors">
<config param="desc" value="About the mirrors mailing list"/>
<config param="cvstag" value="$NetBSD: mirrors.xml,v 1.9 2010/03/13 17:44:55 jschauma Exp $"/>
<config param="rcsdate" value="$Date: 2010/03/13 17:44:55 $"/>

<head>

<!-- Copyright (c) 1994-2010
	The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED. -->

<title>Information about the mirrors mailing list</title>
</head>

<sect1 id="about-mirrors-mailinglist" role="toc">

<sect2 id="responding-to-mirrors-mail">
<title>Responding to messages sent to the mirrors mailing list</title>

<sect3 id="who-can-reply">
<title>Who can reply to <email>mirrors</email> mail?</title>
  <para>
    Mail to <email>mirrors</email> is handled by the same team appointed to
    handle mail to <email>www</email>. The
    <ulink url="www.html">instructions</ulink> for that list will
    generally apply here with some additional
    considerations listed below.  Naturally you can substitute
    <email>mirrors</email> for <email>www</email> in that document where
    appropriate.
  </para>
</sect3>

<sect3 id="other-tasks">
<title>Are there any other tasks for the on call person?</title>
  <para>
    The on call person should be taking primary responsibility for
    updating the mirrors page and communicating with admins at our
    mirror sites about any problems, questions or concerns.  The on call
    person should also be responsible for updating the mirroring FAQ.
  </para>
</sect3>

<sect3 id="information">
<title>What information do we request of those running mirrors?</title>
  <para>
    If someone wants to mirror us, have them start by filling out the
    form at <ulink url="../docs/mirror.html">http://www.NetBSD.org/docs/mirror.html</ulink>
    if they have not already done so.
  </para>
  <para>
    While a "contactkeyid" field is listed there, new mirror submissions
    usually forget to include it.  Please make sure to request a PGP key
    ID for each new mirror.
  </para>
</sect3>

<sect3 id="www-mirror-note">
<title>Things to check before adding a new www mirror</title>
  <para>
    We prefer that our mirror sites run a separate virtual web server for
    a NetBSD.org mirror on a separate IP address, so that clients using
    <systemitem>HTTP/1.0</systemitem> still get to the correct web site.
  </para>
  <para>
    To check to see if a new www mirror is a
    <systemitem>HTTP/1.1</systemitem> <quote>host:</quote> based
    virtual web server, try the following:
  </para>
  <para>
    <screen>
      $ telnet netbsd.mirror.site 80
      GET / HTTP/1.0 &lt;cr&gt;
      &lt;cr&gt;
    </screen>
  </para>
  <para>
    If you get what looks like NetBSD's <filename>index.html</filename>,
    things are ok. If not, try:
  </para>
  <para>
    <screen>
      $ telnet netbsd.mirror.site 80
      GET / HTTP/1.1 &lt;cr&gt;
      Host: netbsd.mirror.site &lt;cr&gt;
      &lt;cr&gt;
    </screen>
  </para>
  <para>
    If only the latter works, they're using <systemitem>HTTP
    1.1</systemitem> virtual hosting.
  </para>
</sect3>

<sect3 id="add-mirror">
<title>How do I add a mirror to our database / documentation?</title>
  <para>
    Here's the details on updating <filename>mirrors.db</filename> and the
    relevant documentation.
  </para>

  <para>
    <itemizedlist>
      <listitem>Add the new contact information into
        <filename>localsrc/admin/mirrors/mirrors.db</filename>. The different
	entries in <filename>mirrors.db</filename> are sorted alphabetically
	by country.
      </listitem>
      <listitem><command>make MIRRORS=&lt;new-mirror-name&gt; check</command> to
         verify that the new mirror is up to date
      </listitem>
      <listitem><command>make update-keys</command> to update the
	mirror maintainers' keyring
      </listitem>
      <listitem>If <filename>htdocs/mirrors/index.html</filename> is out-of-date,
        <command>make update</command>.
      </listitem>
      <listitem><command>make</command> to regen
	<filename>htdocs/mirrors/index.html</filename>
      </listitem>
      <listitem><command>make commit</command> to commit
	the mirror database, the maintainers' keyring and
	<filename>htdocs/mirrors/index.html</filename>
      </listitem>
      <listitem>If it's a new www mirror, add it to the form at
        <filename>htdocs/index.html</filename> and all the translated
	index pages. Do not forget to mention it if the mirror supports
        <systemitem>IPv6</systemitem> connectivity.
      </listitem>

    </itemizedlist>
  </para>
</sect3>

<sect3 id="add-cname">
<title>How do I add a <systemitem>CNAME</systemitem> alias for a mirror?</title>
  <para>
    To add a <systemitem>CNAME</systemitem> alias, you'll want to update
    <filename>localsrc/netbsd1_etc/namedb/prim/NetBSD.org</filename>. 
    Also, please remember to update the <systemitem>SOA</systemitem> serial
    when making changes to this file. Afterwards, you should
    send a message to <email>netbsd-admins</email> noting you've done so, and
    requesting an update.
  </para>
  <para>
    If you are not comfortable editing the zone file yourself, send a
    message to <email>netbsd-admins</email> noting what
    <systemitem>CNAME</systemitem> alias you want set
    up, and requesting they update after they've handled that.
  </para>
  <para>
    When the <systemitem>DNS</systemitem> zone has been updated and the
    new mirror is reachable through its <systemitem>CNAME</systemitem>
    alias the mirror's entry in
    <filename>localsrc/netbsd1_etc/namedb/prim/NetBSD.org</filename>
    and the <systemitem>HTML</systemitem> index pages should be updated
    with the new name as well.
  </para>
</sect3>

  <sect3 id="mirror-check">
    <title>How are mirrors verified to be up to date?</title>
    <para>
      The script <filename>localsrc/admin/mirrors/checkmirrors.pl</filename>
      can be used to check all or a given set of mirrors for up-to-date-ness.
      It does that by fetching a handful of files from ftp.NetBSD.org and
      then fetching the same files from each mirror, comparing the checksums.
    </para>
    <para>
      This script runs weekly on mollari (with the "-q" flag) and checks
      all mirrors in <filename>mirrors.db</filename>.  Any output
      generated is sent to mirrors@NetBSD.org.
    </para>
    <para>
      It is recommended that the on-call person verifies the status of
      this mirror, comments out the entry in the
      <filename>mirrors.db</filename> file and contacts the mirror
      maintainer.
    </para>
    <para>
      If any mirrors are verified to be outdated, the on-call person should
      contact the mirrors' maintainers and kindly ask them to check into the
      updating mechanisms they have in place to ensure that they are syncing
      all data correctly.  At the on-call person's discretion, any mirrors
      with outdated data may be commented out or completely removed from the
      mirror database.
    </para>
    <para>
      It may be advisable to temporarily comment out any mirrors and include
      a date stamp in the commentary to check again at a later point in time
      and if the same problem continues to persist and no feedback from the
      mirror maintainer has been received, then the entry should be
      removed completely.
    </para>
  </sect3>

<sect3 id="all-mirror-admins">
<title>How can I reach all the mirror admins?</title>
  <para>
    Use the mailing list mentioned in
    <filename>localsrc/admin/mirrors/README</filename>.
  </para>
</sect3>

<sect3 id="anything-else">
<title>Anything else?</title>
  <para>
    Take a look at <filename>localsrc/admin/mirrors/README</filename> for more
    details.
  </para>
</sect3>

</sect2>

</sect1>

</webpage>

