[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[minion-cvs] Most of documentation updates for 0.0.7rc1. Still need...



Update of /home/minion/cvsroot/src/minion
In directory moria.mit.edu:/tmp/cvs-serv21755

Modified Files:
	HACKING LICENSE README TODO setup.py 
Log Message:
Most of documentation updates for 0.0.7rc1.  Still need to do a manpage

Index: HACKING
===================================================================
RCS file: /home/minion/cvsroot/src/minion/HACKING,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- HACKING	12 Dec 2003 22:37:12 -0000	1.23
+++ HACKING	7 Mar 2004 06:33:56 -0000	1.24
@@ -1,14 +1,20 @@
 $Id$
 Hacking Mixminion
 
-Requirements:
+HOW TO CONTRIBUTE PATCHES:
+    - Send them to the list mixminion-dev@freehaven.net, or to me
+      (nickm@freehaven.net).
+    - Include a statement saying that you give permission for me to
+      redistribute your work under any FSF-approved license Mixminion
+      may use in the future, including (but not limited to) LGPL, GPL,
+      modified (3-clause) BSD, X11, or MIT.
+
+System requirements:
         Python >= 2.0 (see PORTING NOTES below)
 
         OpenSSL 0.9.7 (If you don't have it, the Makefile knows how to
             download it for you.)
 
-        A working /dev/urandom (see PORTING NOTES below)
-
 NON-HACKING PROJECTS:
 
 - We need documentation.
@@ -49,16 +55,7 @@
   configurable via some kind of generic boilerplate mechanism, and stored in
   separate files.  (Difficulty: easy.  Invasiveness: slight.)
 
-- We should throttle bandwidth under high load.  To implement this, every
-  connection needs to keep track of how many bytes it's sent or received,
-  and stop trying to read or write after a certain threshold is passed.
-  Every timeslice (say, 1 or 2 seconds), we reset the quota and restart the
-  connections.  A good implementation would support:
-      - Per-connection limits
-      - Total-bandwidth limits
-      - Noticing multiple connections from the same IP.
-      - Throttling delivery as well as MMTP
-      - Throttling CPU usage in the processing thread.
+- We could use some way to cap total disk usage, and handle full disks sanely.
   (Difficulty: moderate.  Invasiveness: moderate.)
 
 - If you have access to a multiprocessor machine, it would be nice to make
@@ -69,17 +66,15 @@
   one-per-connection). (Difficulty: easy/moderate, depending on your
   knowledge of writing multithreaded code. Invasiveness: slight.)
 
+- We have a specification for multiple exit addresses, but it needs to be
+  implemented... (Difficulty: easy.  Invasiveness: slight.)
+
 THINGS TO THINK ABOUT AND HACK: (Introductory projects that will take some
   specification work.  Please, get your spec discussed on mixminion-dev and
   checked into CVS *before* you submit an implementation for any of these!
 
   [See spec-issues.txt for more open issues].)
 
-- Maybe, there should be support for multiple exit addresses (cc, bcc, etc.)
-  This is prone to abuse... (Spec difficulty: easy, once you've figured out
-  how to limit abuse.  Implementation difficulty: easy.  Invasiveness:
-  slight.)
-
 - We should have an incoming email gateway for users to use reply blocks to
   send messages anonymously without using Mixminion software.  (Spec
   difficulty: easy. Implementation difficulty: moderate.  Invasiveness:
@@ -87,8 +82,8 @@
 
 - Want a real challenge?  We have an allusive description for how to do
   K-of-N fragmentation in our E2E-spec documentation.  Go flesh out the
-  description.  (Spec difficulty: moderate.  Implementation difficulty: hard.
-  Invasiveness: some.)
+  description.  (Spec difficulty: moderate.  Implementation difficulty:
+  already implemented.)
 
 - Right now, we never generate link padding or dummy messages.  The code is
   there, but it never gets triggered.  Specify when it gets triggered (and
@@ -204,11 +199,6 @@
       run under gnutls/libgcrypt as well, but I think in the long term
       we should migrate to libnss entirely.
 
-PORTING TO NON-LINUX PLATFORMS:
-    - If you need to run on a system without an acceptable /dev/*random,
-      you'll need to write an acceptable fallback for mixminion.Crypto.trng()
-      to use.
-
 CAVEATS:
     - If I haven't got a test for it in tests.py, assume it doesn't work.
     - The code isn't threadsafe.  It will become so only if it must.
@@ -224,24 +214,20 @@
 
         Received in MMTPServer;
               V
-         Stored in an 'Incoming' queue, implemented in ServerMain and Queue.
+           Stored in an 'Incoming' queue, implemented in ServerMain and Queue.
               V
         Validated, decrypted, padded by code in PacketHandler.
               V
-         Stored in a 'Mix' pool, implemented in ServerMain and Queue.
-             V
+           Stored in a 'Mix' pool, implemented in ServerMain and Queue.
+              V
         A batch of messages is selected by the 'Mix pool' for delivery.
-             V
-             ---Some are placed in an 'Outgoing' queue...
-             I       V
-             I   ... and delivered to other Mixminion servers via MMTPServer
-             V
-             ---Others are queued and delivered by other exit methods,
-                implemented and selected by ModuleManager.
-
-CONTRIBUTING PATCHES:
-    - Send them to the list mixminion-dev@freehaven.net, or to me
-      (nickm@freehaven.net).
+              V
+              ---Some are placed in an 'Outgoing' queue...
+              I       V
+              I   ... and delivered to other Mixminion servers via MMTPServer
+              V
+              ---Others are queued and delivered by other exit methods,
+                 implemented and selected by ModuleManager.
 
 --Nick
 

Index: LICENSE
===================================================================
RCS file: /home/minion/cvsroot/src/minion/LICENSE,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- LICENSE	6 Mar 2004 00:04:37 -0000	1.7
+++ LICENSE	7 Mar 2004 06:33:56 -0000	1.8
@@ -2,9 +2,8 @@
 
 Currently, it is licensed under the Lesser GNU General Public License.  This
 is not yet a final decision; under future versions, it is very possible that
-I'll relicense the server components under the GPL.  It is remotely possible,
-but quite unlikely, that I'll relicense the client components under an
-X11-style license.
+I'll relicense the server components under the GPL.  It is also possible
+that I'll relicense the client components under an X11-style license.
 
 Note: Because of the advertising clause of its license, OpenSSL is not
 compatible with the GPL.  Thus, we license Mixminion under an amended LGPL: we

Index: README
===================================================================
RCS file: /home/minion/cvsroot/src/minion/README,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- README	21 Feb 2004 01:04:48 -0000	1.73
+++ README	7 Mar 2004 06:33:56 -0000	1.74
@@ -1,6 +1,6 @@
 $Id$
 ======================================================================
-This is Mixminion version 0.0.7alpha, from the Mixminion CVS repository.
+This is Mixminion version 0.0.7rc1, from the Mixminion CVS repository.
 
 CONTENTS:
         I.    Overview
@@ -37,6 +37,50 @@
 
 II. WHAT'S NEW IN THIS VERSION?
 ===============================
+
+NEW IN 0.0.7rc1:
+
+   - USER FUNCTIONALITY
+     - Ability to delete or transmit queued messages to selected mixes,
+       instead of all mixes.
+     - Configuration options to block servers from path generation.
+     - New "mixminiond FOO" script as alternate starting point for
+       "mixminion server-FOO" functions.
+     - CLI interface for client-side fragment reassembly.
+     - Command shell (on Windows) supports filenames with spaces much
+       better.
+
+   - INFRASTRUCTURE
+     - Allow servers to download and use directories (necessary for
+       dummy/pinging work in future versions.)
+     - Display server nicknames in log instead of just IP addresses.
+     - Servers check recommended-version, complain when server is obsolete.
+     - Put timezones in log.
+     - Refactor RFC822 header generation logic (original patch from
+       bfordham).
+
+   - NETWORKING
+     - Rewrite MMTP logic to implement protocol correctly and transfer
+       packets more quickly, without waiting for round-trip acknowledgments
+       after each before sending the next.
+     - Unify client and server MMTP sending implementations.
+     - Use IP TOS flags where available to request optimization for
+       bandwidth.
+     - Configurable limits for bandwidth.
+     - Configurable limits on number of outgoing network connections.
+     - New --reply-block-fd option to read reply-blocks from a file
+       descriptor.
+     - New --passphrase-fd option to read passphrase from a file
+       descriptor.
+     - The --quiet option works for clients as well as servers.
+     - "mixminion ping" supports addr:port syntax as well as nicknames.
+
+   - MISC
+     - Call shred more efficiently when calling shred
+     - Other bugfixes too numerous to mention
+     - Remove some deprecated functionality
+     - Better windows build
+
 <See HISTORY file for changes in earlier versions.>
 
 STILL NOT IN THIS VERSION:
@@ -46,31 +90,21 @@
    - No support for distributed directories.
    - Other stuff too numerous to mention; see TODO.
 
-III. HOW TO UPGRADE FROM MIXMINION 0.0.5
+III. HOW TO UPGRADE FROM MIXMINION 0.0.6
 ========================================
 
 First, follow the installation instructions from section IV to install the
 new version of the software.
 
-If you aren't running a server, you are done.  (Compatibility note: SURB
-keyrings used by version 0.0.5 are _not_ compatible with keyrings used by
-0.0.6!)
+If you aren't running a server, you are done.
 
 If you're running a server, you may need to upgrade your configuration file.
 Follow these steps:
 
-    1. Your configuration file may be out of date.  You will need to add
-        a 'Hostname' entry to the 'Incoming/MMTP' section of your
-        configuration.  It _must_ contain a valid DNS name for your server.
-        (You can use a static IP instead, if your server's IP will never
-        change.)
-
-        The 'IP' configuration entry is still required, too, in order to
-        support older clients.
+    1. Your configuration file may be out of date.  Here's what has changed:
 
-        (If you control your own DNS, you may want to consider creating a
-        separate entry for your Mixminion server, so that you could move to a
-        different host in the future as needed.)
+       A. The "Contact-Email" setting is no longer optional.  You must
+          provide a contact email address if you haven't already.
 
     2. Start your server as usual ('mixminion server-start') and try sending
        some messages through it.  Check your configuration log for warnings.
@@ -80,9 +114,9 @@
 
 The quick version: For Unix-clones, Mac OS X, or Windows with Cygwin
 ---------------------------------------------------------------------
-  <download and unpack http://www.mixminion.net/dist/Mixminion-0.0.6.tar.gz>
+  <download and unpack http://www.mixminion.net/dist/Mixminion-0.0.7rc1.tar.gz>
 
-  % cd Mixminion-0.0.6
+  % cd Mixminion-0.0.7rc1
   % make download-openssl
   % make build-openssl
   % make
@@ -149,24 +183,18 @@
 
    First, make sure that you're running Win98 or later.
 
-   Download 'Mixminion-0.0.6.win32.zip", and unpack it anywhere you like.
+   Download 'Mixminion-0.0.7rc1.win32.zip", and unpack it anywhere you like.
    It will create a directory named 'mixminion'.
 
    Use mixminion.exe from that directory as your command-line client.
 
-   NOTE TO ALL WINDOWS USERS:  This is the first version of Mixminion to
-   support native Win32 operations.  As such, you should consider it even
-   more experimental than usual.  If you find any bugs, or any places where
-   its behavior is stupid for a Windows environment, please let me know.
-   (See section VII below for information on how to report bugs.)
-
 The slightly harder version: For Windows with Python 2.3
 --------------------------------------------------------
 
    First, make sure that you have the latest official release of Python 2.3
    installed.  As of 5 Dec 2003, this is 2.3.2.
 
-   Download and run "Mixminion-0.0.6.win32-py2.3.exe".  It will unpack
+   Download and run "Mixminion-0.0.7rc1.win32-py2.3.exe".  It will unpack
    its files into your Python directory.
 
    The script to invoke Mixminion will be stored in the 'Scripts'

Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -d -r1.200 -r1.201
--- TODO	6 Mar 2004 06:39:44 -0000	1.200
+++ TODO	7 Mar 2004 06:33:56 -0000	1.201
@@ -140,8 +140,6 @@
   incompatible changes.  Target: first half of 2004.  (No guarantees!)]
         - Security
                 - Upgrade packet format as necessary.
-                - Perhaps, increased or configurable DH parameter size,
-                  or fixed DH parameters.
         - Modules and module support
                 - Use STARTTLS as available, if it's not too hard.
                 - Real SMTP module
@@ -282,7 +280,6 @@
                 - Only pick from the directory when picking
                   random servers.
                 - Notice Allow/Deny.
-                - Notice MMTP protocol versions.
         - UI issues
                 - Notice when out of disk space, die more cleanly.
                   (support max-disk-usage).

Index: setup.py
===================================================================
RCS file: /home/minion/cvsroot/src/minion/setup.py,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -d -r1.91 -r1.92
--- setup.py	6 Mar 2004 06:39:44 -0000	1.91
+++ setup.py	7 Mar 2004 06:33:56 -0000	1.92
@@ -6,9 +6,9 @@
 #
 #   Current Mixminion version
 #
-VERSION = '0.0.7alpha0'
+VERSION = '0.0.7alpha2'
 # System: 0==alpha, 50==beta, 98=pre, 99==release candidate, 100==release
-VERSION_INFO = (0,0,7,0,0)
+VERSION_INFO = (0,0,7,0,2)
 
 # Check the version.  We need to make sure version_info exists before we
 # compare to it: it was only added as of Python version 1.6.
@@ -508,11 +508,22 @@
     define_macros=MACROS)
 
 
+EXTRA = {}
+
 if 'py2exe' in sys.argv:
     # Py2EXE wants numberic versions for Windows
     VERSION = "." .join(map(str,VERSION_INFO))
-    # XXXX WRONG!!!! 
+    # XXXX WRONG!!!!
     sys.path.append("./build/lib.win32-2.3")
+    EXTRA = {
+        'console' : SCRIPTS,
+        'zipfile' : r'lib\shared.zip',
+        'options' : {'py2exe':
+                     { 'compressed':1,
+                     'excludes': ['mixminion._textwrap','mixminion._unittest',
+                                  'mixminion._zlibutil','coverage'] }
+                 },
+        }
 
 setup(name='Mixminion',
       version=VERSION,
@@ -527,18 +538,9 @@
       scripts=SCRIPTS,
       ext_modules=[extmodule],
       cmdclass={'run': runMMCommand},
-
-
-      # for Py2EXE
-      console=SCRIPTS,
       data_files=[("",["README","TODO","LICENSE","HISTORY",
                       "etc/mixminiond.conf"])],
-      zipfile=r'lib\shared.zip',
-      options={'py2exe':
-                { 'compressed':1,
-                  'excludes': ['mixminion._textwrap','mixminion._unittest',
-                               'mixminion._zlibutil','coverage'] }
-              },
+      **EXTRA
 )
 
 try: