changeset 1243:d376dffbfdee

add new package submission guidelines to docs
author Volker Grabsch <vog@notjusthosting.com>
date Sat, 02 Oct 2010 16:03:48 +1000
parents 22108ded8a84
children 225608c7dee6
files doc/index.html
diffstat 1 files changed, 186 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/doc/index.html	Fri Oct 01 20:13:45 2010 +0200
+++ b/doc/index.html	Sat Oct 02 16:03:48 2010 +1000
@@ -471,6 +471,189 @@
     feel free to join the
     <a href="http://lists.nongnu.org/mailman/listinfo/mingw-cross-env-list">project mailing list</a>.
     </p>
+    
+<h2 id="new-packages">New Package Submission</h2>
+    <ol>
+    <li>
+    <p>
+    The package should be a 
+    <a href="http://www.gnu.org/philosophy/free-sw.html">free</a> 
+    <a href="http://www.debian.org/social_contract#guidelines">software<a> 
+    <a href="http://www.opensource.org/osd.html">library</a> 
+    that is really used by one of your applications.
+    </p>
+    
+    <p>
+    BTW, we're always curious about the applications people are
+    porting. On our project website, there is a 
+    <a href="#used-by">list of projects</a> 
+    which use mingw-cross-env. No matter whether your project is
+    free or proprietary - as long as it has it's own website, we'd be
+    happy to link to it.
+    </p>
+    
+    <p>
+    Also, feel free to link to us. :-)
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    Grep through the src/*.mk files to find a project that is most
+    similar to yours. (Really, "grep" is your friend.)
+    </p>
+    
+    <p>
+    E.g., when adding a GNU library, you should take a package like 
+    <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/gettext.mk">gettext.mk</a> 
+    or 
+    <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/libiconv.mk">libiconv.mk</a> 
+    as the base of your work. Or, when using 
+    a SourceForge project, you should start with a copy of 
+    <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/xmlwrapp.mk">xmlwrapp.mk</a>.
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    Adjust the comments, fill in the <code>$(PKG)_*</code> fields. 
+    Be especially careful with the <code>$(PKG)_DEPS</code> section. 
+    The easiest way to get the dependencies right is to start with 
+    a minimal setup i.e. <code>make gcc</code> only.
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    Write your <code>$(PKG)_BUILD</code>. If your library has a 
+    ./configure script, enable/disable all depdency libraries 
+    explicitly via <code>"--enable-*"</code> and 
+    <code>"--disable-*"</code> options.
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    You might also have to provide a patch for it. In that case, have
+    a look at other patches such as 
+    <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/sdl-2-fix-dinput.patch">
+        sdl-2-fix-dinput.patch</a>. 
+    In particular, each patch file should be named as:
+    </p>
+    
+    <p>
+    <pre>PACKAGE-PATCHNUMBER-DESCRIPTION.patch</pre>
+    </p>
+    <p>
+    and should start with:
+    </p>
+    <pre>
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+This patch has been taken from:
+https://...
+    </pre>
+    <p>
+    where the URL points to the bugtracker entry, mailing list entry
+    or website you took the patch from.
+    </p>
+    
+    <p>
+    If you created the patch yourself, please offer it to the 
+    upstream project first, and point to _that_ URL, using the 
+    same wording: "This patch has been taken from:".
+    </p>
+    
+    <p>
+    Depending on the feedback you get from the project, you might
+    want to improve your patch.
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    If you find some time, please provide a minimal test program for
+    it. It should be simple, stand alone and should work unmodified
+    for many (all?) future versions of the library. Test programs
+    are named as:
+    </p>
+    <pre>PACKAGE-test.c
+    or
+PACKAGE-test.cpp</pre>
+
+    <p>
+    depending on whether it is a C or C++ library. To get a clue,
+    please have a look at existing test programs such as 
+    <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/sdl-test.c">sdl-test.c</a>.
+    </p>
+    
+    <p>
+    At the very end of your *.mk file you should build the test
+    program in a generic way, using strict compiler flags. The 
+    last few lines of 
+    <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/sdl.mk">sdl.mk</a> 
+    will give you a clue.
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    You could also try to provide a <code>$(PKG)_UPDATE</code> 
+    section. However, that requires some experience and 
+    "feeling" for it. So it is perfectly okay if you leave the 
+    <code>$(PKG)_UPDATE</code> section empty. We'll fill that 
+    in for you. It's a funny exercise.
+    </p>
+    </li>
+    
+    <li>
+    <p>
+    Check that you don't have "dirty stuf" in your *.mk files, such
+    as TAB characters or trailing spaces at lines endings. Have
+    a look at random *.mk files to get a feeling for the coding
+    style.
+    </p>
+    
+    <p>
+    The same holds for your test program.
+    </p>
+    
+    <p>
+    However, patch files should always appear in the same coding
+    style as the files they are patching.
+    </p>
+    
+    <p>
+    Finally, in your <code>$(PKG)_BUILD</code> section, please 
+    check that you use our portability variables:
+    </p>
+    <pre>
+    sed        -> $(SED)
+    make       -> $(MAKE)
+    bash       -> $(SHELL)
+    patch      -> $(PATCH)
+    install    -> $(INSTALL)
+    libtoolize -> $(LIBTOOLIZE)</pre>
+    </li>
+    
+    <li>
+    <p>
+    Check whether everything runs fine. If you have some trouble,
+    don't hesitate to ask on the 
+    <a href="http://lists.nongnu.org/mailman/listinfo/mingw-cross-env-list">mailing list</a>, 
+    providing your *.mk file so far.
+    </p>
+    </li>
+
+    <li>
+    <p>
+    Propose your final *.mk file to the mailing list. Don't forget
+    to tell us if there are some pieces in your *.mk file you feel
+    unsure about. We'll then have a specific look at those parts,
+    which avoids trouble for you and us in the future.
+    </p>
+    </li>
 </div>
 
 <div class="section">
@@ -813,6 +996,9 @@
 
     <table id="package-list">
     </table>
+    <p>
+    See something missing? Feel free to <a href="#new-packages">propose a new package</a>.
+    </p>
 </div>
 
 <div class="section">