Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 541ced4af0c5c56679c3d998acd9a032 > files > 167

eggdrop-1.6.18-5mdv2008.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- $Id: patch-howto.html,v 1.8 2006-03-27 06:48:58 wcc Exp $ -->

<html>
  <head>
    <title>Eggdrop Documentation: Patch Howto</title>
  </head>

  <body>
    <div align="center">
      <p><strong>Patch Howto</strong></p>
    </div>
    <hr>

    <p>The purpose of this document is to show you what a patch is and how you
    can create, apply, download, and submit a patch.</p>
    <hr>

    <p><strong>Contents</strong></p>

    <blockquote>
      <ol>
        <li><a href="#sect1">Terms</a></li>

        <li><a href="#sect2">Applying a patch</a></li>

        <li><a href="#sect3">Creating and submitting a patch</a></li>

        <li><a href="#sect4">Downloading a patch</a></li>
      </ol>
    </blockquote>
    <hr>

    <p><a name="sect1"></a><strong>Terms</strong></p>

    <blockquote>
      <p>The following are some common terms used in this document:</p>

      <dl>
        <dt><strong>Patch</strong></dt>

        <dd>
          <p>A patch is an update to the sourcecode of a program (here
          Eggdrop). Be careful, every patch is designed for a special
          Eggdrop version and cannot be applied on every bot!</p>
        </dd>
      </dl>
    </blockquote>

    <p><a name="sect2"></a><strong>Applying a patch</strong></p>

    <p>To apply a patch to an Eggdrop, you have to first obtain the Eggdrop
    source code. You should always keep a tar.gz archive with the source of
    your current Eggdrop on your shell. In the next step, you have to change
    to your source directory (i.e.: /home/user/eggdrop1.6.18/) and type
    the following command:</p>

    <blockquote>
      <p>patch -p1 &lt; ../path.to.the/patch</p>
    </blockquote>

    <p>Once this is complete, execute the following command:</p>

    <blockquote>
      <p>find . -name &quot;*.rej&quot; -print</p>
    </blockquote>

    <p>If it returns a list with filenames ending with .rej extension, then the
    patch didn&#39;t apply properly. Ensure that the patch is intended for your
    version and that you have the original source. You should also try to
    re-download the patch to ensure that the patch is not corrupted.</p>

    <p>If you get an error such as this:</p>

    <blockquote>
<pre>
|Index: Makefile.in
|===================================================================
|RCS file: /usr/local/cvsroot/eggdrop1.6/Makefile.in,v
|retrieving revision 1.38
|diff -u -r1.38 Makefile.in
|--- Makefile.in	17 Jun 2004 05:43:28 -0000	1.38
|+++ Makefile.in	23 Jul 2004 21:58:23 -0000
--------------------------
File to patch:
</pre>
    </blockquote>

    <p>Then you should try using a different &#39;-p&#39; option. Try -p0
    first, and then -p2, -p3, etc.</p>

    <p>If the patch applied properly, the only thing left to do is to recompile
    your Eggdrop and install the new modules and binaries.</p>

    <p><a name="sect3"></a><strong>Creating and submitting a patch</strong></p>

    <p>If you fixed a bug and/or changed something in Eggdrop&#39;s source code,
    it would be really nice to let the dev team know about it, so we can
    possibly apply it to next release of Eggdrop.</p>

    <p>There are several steps to submit a patch to the eggdev team:</p>

    <blockquote>
      <ol>
        <li>
          <p>Create a directory with original source tree and one with modified
          source tree.</p>
        </li>

        <li>
          <p>Run the following:</p>

          <blockquote>
<pre>
diff -urN eggdrop1.6.original eggdrop1.6.modified &gt; patchname.patch
</pre>
          </blockquote>

          <p><strong>DO NOT</strong> add any other diff options.</p>
        </li>

        <li>
          <p>Send an e-mail to <a href="mailto:patches@eggheads.org">
          patches@eggheads.org</a> with the patch attached. The body should
          contain a detailed description of what you changed and why you
          changed it. Don&#39;t forget to include the Eggdrop version for which
          your patch was created.</p>

          <p>It helps if you include the major release number that the patch
          is for in the subject line. For the 1.6.x series, the subject line
          should look like this:</p>

          <blockquote>PATCH1.6: my-patch-filename.patch</blockquote>

          <p>You should also include the nick/handle/name you would like to be
          used in the UPDATES1.6 file (if applicable).</p>
        </li>
      </ol>

      <p>Never modify src/patch.h or one of the UPDATES files. We will do it.
      If your patch includes changes related to autotools (./configure, etc),
      do <strong>NOT</strong> run autoconf, autoheader, etc; we will do this
      as well.</p>

      <p>Also, please don&#39;t add credit lines all over the source when
      patching. Patch contributors will receive credit in UPDATES1.6 and
      ChangeLog.</p>

      <p>CVS diff&#39;s are also perfectly fine (and actually, prefered, as the
      patch will be against the most current version of Eggdrop). To create a
      CVS diff, simply make the changes in your currently checked-out copy of
      the Eggdrop source, and then run:</p>

      <blockquote>
<pre>
cvs diff -R -uN > patchname.patch
</pre>
      </blockquote>
    </blockquote>

    <p><a name="sect4"></a><strong>Downloading a patch</strong></p>


    <p>Many patches for eggdrop1.6.x can be found at the following
    location:</p>

    <blockquote>
      <p><a href="ftp://ftp.eggheads.org/pub/eggdrop/patches/1.6/">
      ftp://ftp.eggheads.org/pub/eggdrop/patches/1.6/</a></p>
    </blockquote>

    <hr>
    <p><em>Copyright &copy; 1997 Robey Pointer<br>
    Copyright &copy; 1999 - 2006 Eggheads Development Team
    <a href="http://www.eggheads.org/"> Eggheads Development Team</a></em></p>
  </body>
</html>