]> err.no Git - sope/commitdiff
more code directory reorganizations
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 20 Aug 2004 18:40:42 +0000 (18:40 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 20 Aug 2004 18:40:42 +0000 (18:40 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@9 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

136 files changed:
INSTALL [new file with mode: 0644]
sope-core/ChangeLog
sope-core/NGExtensions/ChangeLog
sope-core/NGExtensions/GNUmakefile.preamble
sope-core/NGExtensions/Version
sope-core/NGExtensions/XmlExt.subproj/GNUmakefile
sope-core/NGStreams/GNUmakefile.preamble
sope-core/PROJECTLEAD
sope-core/common.make
sope-core/samples/ChangeLog
sope-core/samples/GNUmakefile
sope-core/samples/GNUmakefile.preamble
sope-ical/samples/COPYING [moved from sope-mime/NGMime/NGImap4/COPYING with 100% similarity]
sope-ical/samples/ChangeLog [new file with mode: 0644]
sope-ical/samples/GNUmakefile [new file with mode: 0644]
sope-ical/samples/GNUmakefile.preamble [new file with mode: 0644]
sope-ical/samples/README [new file with mode: 0644]
sope-ical/samples/ical2.m [new file with mode: 0644]
sope-ical/samples/ical3.m [new file with mode: 0644]
sope-ldap/samples/COPYING [moved from sope-mime/NGMime/NGMail/COPYING with 100% similarity]
sope-ldap/samples/ChangeLog [new file with mode: 0644]
sope-ldap/samples/GNUmakefile [new file with mode: 0644]
sope-ldap/samples/GNUmakefile.preamble [new file with mode: 0644]
sope-ldap/samples/README [new file with mode: 0644]
sope-ldap/samples/ldap2dsml.m [new file with mode: 0644]
sope-ldap/samples/ldapchkpwd.m [new file with mode: 0644]
sope-ldap/samples/ldapls.m [new file with mode: 0644]
sope-ldap/samples/pwd-check.m [moved from sope-core/samples/pwd-check.m with 100% similarity]
sope-mime/GNUmakefile [deleted file]
sope-mime/GNUmakefile.preamble [moved from sope-mime/NGMime/GNUmakefile.preamble with 100% similarity]
sope-mime/NGImap4/COPYING [new file with mode: 0644]
sope-mime/NGImap4/ChangeLog [moved from sope-mime/NGMime/NGImap4/ChangeLog with 100% similarity]
sope-mime/NGImap4/EOQualifier+IMAPAdditions.m [moved from sope-mime/NGMime/NGImap4/EOQualifier+IMAPAdditions.m with 100% similarity]
sope-mime/NGImap4/GNUmakefile [moved from sope-mime/NGMime/NGImap4/GNUmakefile with 100% similarity]
sope-mime/NGImap4/NGImap4-Info.plist [moved from sope-mime/NGMime/NGImap4/NGImap4-Info.plist with 100% similarity]
sope-mime/NGImap4/NGImap4.h [moved from sope-mime/NGMime/NGImap4/NGImap4.h with 100% similarity]
sope-mime/NGImap4/NGImap4.m [moved from sope-mime/NGMime/NGImap4/NGImap4.m with 100% similarity]
sope-mime/NGImap4/NGImap4Client.h [moved from sope-mime/NGMime/NGImap4/NGImap4Client.h with 100% similarity]
sope-mime/NGImap4/NGImap4Client.m [moved from sope-mime/NGMime/NGImap4/NGImap4Client.m with 100% similarity]
sope-mime/NGImap4/NGImap4Context.h [moved from sope-mime/NGMime/NGImap4/NGImap4Context.h with 100% similarity]
sope-mime/NGImap4/NGImap4Context.m [moved from sope-mime/NGMime/NGImap4/NGImap4Context.m with 100% similarity]
sope-mime/NGImap4/NGImap4DataSource.h [moved from sope-mime/NGMime/NGImap4/NGImap4DataSource.h with 100% similarity]
sope-mime/NGImap4/NGImap4DataSource.m [moved from sope-mime/NGMime/NGImap4/NGImap4DataSource.m with 100% similarity]
sope-mime/NGImap4/NGImap4FileManager.h [moved from sope-mime/NGMime/NGImap4/NGImap4FileManager.h with 100% similarity]
sope-mime/NGImap4/NGImap4FileManager.m [moved from sope-mime/NGMime/NGImap4/NGImap4FileManager.m with 100% similarity]
sope-mime/NGImap4/NGImap4Folder.h [moved from sope-mime/NGMime/NGImap4/NGImap4Folder.h with 100% similarity]
sope-mime/NGImap4/NGImap4Folder.m [moved from sope-mime/NGMime/NGImap4/NGImap4Folder.m with 100% similarity]
sope-mime/NGImap4/NGImap4FolderFlags.h [moved from sope-mime/NGMime/NGImap4/NGImap4FolderFlags.h with 100% similarity]
sope-mime/NGImap4/NGImap4FolderFlags.m [moved from sope-mime/NGMime/NGImap4/NGImap4FolderFlags.m with 100% similarity]
sope-mime/NGImap4/NGImap4FolderGlobalID.h [moved from sope-mime/NGMime/NGImap4/NGImap4FolderGlobalID.h with 100% similarity]
sope-mime/NGImap4/NGImap4FolderGlobalID.m [moved from sope-mime/NGMime/NGImap4/NGImap4FolderGlobalID.m with 100% similarity]
sope-mime/NGImap4/NGImap4FolderMailRegistry.h [moved from sope-mime/NGMime/NGImap4/NGImap4FolderMailRegistry.h with 100% similarity]
sope-mime/NGImap4/NGImap4FolderMailRegistry.m [moved from sope-mime/NGMime/NGImap4/NGImap4FolderMailRegistry.m with 100% similarity]
sope-mime/NGImap4/NGImap4Functions.h [moved from sope-mime/NGMime/NGImap4/NGImap4Functions.h with 100% similarity]
sope-mime/NGImap4/NGImap4Functions.m [moved from sope-mime/NGMime/NGImap4/NGImap4Functions.m with 100% similarity]
sope-mime/NGImap4/NGImap4Message+BodyStructure.h [moved from sope-mime/NGMime/NGImap4/NGImap4Message+BodyStructure.h with 100% similarity]
sope-mime/NGImap4/NGImap4Message.h [moved from sope-mime/NGMime/NGImap4/NGImap4Message.h with 100% similarity]
sope-mime/NGImap4/NGImap4Message.m [moved from sope-mime/NGMime/NGImap4/NGImap4Message.m with 100% similarity]
sope-mime/NGImap4/NGImap4MessageGlobalID.h [moved from sope-mime/NGMime/NGImap4/NGImap4MessageGlobalID.h with 100% similarity]
sope-mime/NGImap4/NGImap4MessageGlobalID.m [moved from sope-mime/NGMime/NGImap4/NGImap4MessageGlobalID.m with 100% similarity]
sope-mime/NGImap4/NGImap4ResponseNormalizer.h [moved from sope-mime/NGMime/NGImap4/NGImap4ResponseNormalizer.h with 100% similarity]
sope-mime/NGImap4/NGImap4ResponseNormalizer.m [moved from sope-mime/NGMime/NGImap4/NGImap4ResponseNormalizer.m with 100% similarity]
sope-mime/NGImap4/NGImap4ResponseParser.h [moved from sope-mime/NGMime/NGImap4/NGImap4ResponseParser.h with 100% similarity]
sope-mime/NGImap4/NGImap4ResponseParser.m [moved from sope-mime/NGMime/NGImap4/NGImap4ResponseParser.m with 100% similarity]
sope-mime/NGImap4/NGImap4ServerGlobalID.h [moved from sope-mime/NGMime/NGImap4/NGImap4ServerGlobalID.h with 100% similarity]
sope-mime/NGImap4/NGImap4ServerGlobalID.m [moved from sope-mime/NGMime/NGImap4/NGImap4ServerGlobalID.m with 100% similarity]
sope-mime/NGImap4/NGImap4ServerRoot.h [moved from sope-mime/NGMime/NGImap4/NGImap4ServerRoot.h with 100% similarity]
sope-mime/NGImap4/NGImap4ServerRoot.m [moved from sope-mime/NGMime/NGImap4/NGImap4ServerRoot.m with 100% similarity]
sope-mime/NGImap4/NGImap4Support.h [moved from sope-mime/NGMime/NGImap4/NGImap4Support.h with 100% similarity]
sope-mime/NGImap4/NGImap4Support.m [moved from sope-mime/NGMime/NGImap4/NGImap4Support.m with 100% similarity]
sope-mime/NGImap4/NGSieveClient.h [moved from sope-mime/NGMime/NGImap4/NGSieveClient.h with 100% similarity]
sope-mime/NGImap4/NGSieveClient.m [moved from sope-mime/NGMime/NGImap4/NGSieveClient.m with 100% similarity]
sope-mime/NGImap4/NSString+Imap4.h [moved from sope-mime/NGMime/NGImap4/NSString+Imap4.h with 100% similarity]
sope-mime/NGImap4/NSString+Imap4.m [moved from sope-mime/NGMime/NGImap4/NSString+Imap4.m with 100% similarity]
sope-mime/NGImap4/README [moved from sope-mime/NGMime/NGImap4/README with 100% similarity]
sope-mime/NGImap4/SxCore-NGImap4Flow.graffle [moved from sope-mime/NGMime/NGImap4/SxCore-NGImap4Flow.graffle with 100% similarity]
sope-mime/NGImap4/TODO [moved from sope-mime/NGMime/NGImap4/TODO with 100% similarity]
sope-mime/NGImap4/imCommon.h [moved from sope-mime/NGMime/NGImap4/imCommon.h with 100% similarity]
sope-mime/NGImap4/imTimeMacros.h [moved from sope-mime/NGMime/NGImap4/imTimeMacros.h with 100% similarity]
sope-mime/NGMail/COPYING [new file with mode: 0644]
sope-mime/NGMail/ChangeLog [moved from sope-mime/NGMime/NGMail/ChangeLog with 100% similarity]
sope-mime/NGMail/GNUmakefile [moved from sope-mime/NGMime/NGMail/GNUmakefile with 100% similarity]
sope-mime/NGMail/NGMBoxReader.h [moved from sope-mime/NGMime/NGMail/NGMBoxReader.h with 100% similarity]
sope-mime/NGMail/NGMBoxReader.m [moved from sope-mime/NGMime/NGMail/NGMBoxReader.m with 100% similarity]
sope-mime/NGMail/NGMail-Info.plist [moved from sope-mime/NGMime/NGMail/NGMail-Info.plist with 100% similarity]
sope-mime/NGMail/NGMail.h [moved from sope-mime/NGMime/NGMail/NGMail.h with 100% similarity]
sope-mime/NGMail/NGMail.m [moved from sope-mime/NGMime/NGMail/NGMail.m with 100% similarity]
sope-mime/NGMail/NGMailAddress.h [moved from sope-mime/NGMime/NGMail/NGMailAddress.h with 100% similarity]
sope-mime/NGMail/NGMailAddress.m [moved from sope-mime/NGMime/NGMail/NGMailAddress.m with 100% similarity]
sope-mime/NGMail/NGMailAddressList.h [moved from sope-mime/NGMime/NGMail/NGMailAddressList.h with 100% similarity]
sope-mime/NGMail/NGMailAddressList.m [moved from sope-mime/NGMime/NGMail/NGMailAddressList.m with 100% similarity]
sope-mime/NGMail/NGMailAddressParser.h [moved from sope-mime/NGMime/NGMail/NGMailAddressParser.h with 100% similarity]
sope-mime/NGMail/NGMailAddressParser.m [moved from sope-mime/NGMime/NGMail/NGMailAddressParser.m with 100% similarity]
sope-mime/NGMail/NGMailDecls.h [moved from sope-mime/NGMime/NGMail/NGMailDecls.h with 100% similarity]
sope-mime/NGMail/NGMimeMessage.h [moved from sope-mime/NGMime/NGMail/NGMimeMessage.h with 100% similarity]
sope-mime/NGMail/NGMimeMessage.m [moved from sope-mime/NGMime/NGMail/NGMimeMessage.m with 100% similarity]
sope-mime/NGMail/NGMimeMessageBodyGenerator.m [moved from sope-mime/NGMime/NGMail/NGMimeMessageBodyGenerator.m with 100% similarity]
sope-mime/NGMail/NGMimeMessageGenerator.h [moved from sope-mime/NGMime/NGMail/NGMimeMessageGenerator.h with 100% similarity]
sope-mime/NGMail/NGMimeMessageGenerator.m [moved from sope-mime/NGMime/NGMail/NGMimeMessageGenerator.m with 100% similarity]
sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m [moved from sope-mime/NGMime/NGMail/NGMimeMessageMultipartBodyGenerator.m with 100% similarity]
sope-mime/NGMail/NGMimeMessageParser.h [moved from sope-mime/NGMime/NGMail/NGMimeMessageParser.h with 100% similarity]
sope-mime/NGMail/NGMimeMessageParser.m [moved from sope-mime/NGMime/NGMail/NGMimeMessageParser.m with 100% similarity]
sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m [moved from sope-mime/NGMime/NGMail/NGMimeMessageRfc822BodyGenerator.m with 100% similarity]
sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m [moved from sope-mime/NGMime/NGMail/NGMimeMessageTextBodyGenerator.m with 100% similarity]
sope-mime/NGMail/NGPop3Client.h [moved from sope-mime/NGMime/NGMail/NGPop3Client.h with 100% similarity]
sope-mime/NGMail/NGPop3Client.m [moved from sope-mime/NGMime/NGMail/NGPop3Client.m with 100% similarity]
sope-mime/NGMail/NGPop3Support.h [moved from sope-mime/NGMime/NGMail/NGPop3Support.h with 100% similarity]
sope-mime/NGMail/NGPop3Support.m [moved from sope-mime/NGMime/NGMail/NGPop3Support.m with 100% similarity]
sope-mime/NGMail/NGSmtpClient.h [moved from sope-mime/NGMime/NGMail/NGSmtpClient.h with 100% similarity]
sope-mime/NGMail/NGSmtpClient.m [moved from sope-mime/NGMime/NGMail/NGSmtpClient.m with 100% similarity]
sope-mime/NGMail/NGSmtpReplyCodes.h [moved from sope-mime/NGMime/NGMail/NGSmtpReplyCodes.h with 100% similarity]
sope-mime/NGMail/NGSmtpSupport.h [moved from sope-mime/NGMime/NGMail/NGSmtpSupport.h with 100% similarity]
sope-mime/NGMail/NGSmtpSupport.m [moved from sope-mime/NGMime/NGMail/NGSmtpSupport.m with 100% similarity]
sope-mime/NGMail/README [moved from sope-mime/NGMime/NGMail/README with 100% similarity]
sope-mime/NGMail/common.h [moved from sope-mime/NGMime/NGMail/common.h with 100% similarity]
sope-mime/NGMail/libNGMail.def [moved from sope-mime/NGMime/NGMail/libNGMail.def with 100% similarity]
sope-mime/NGMime/ChangeLog
sope-mime/samples/COPYING [new file with mode: 0644]
sope-mime/samples/ChangeLog [new file with mode: 0644]
sope-mime/samples/GNUmakefile [new file with mode: 0644]
sope-mime/samples/GNUmakefile.preamble [new file with mode: 0644]
sope-mime/samples/ImapListTool.h [new file with mode: 0644]
sope-mime/samples/ImapListTool.m [new file with mode: 0644]
sope-mime/samples/ImapQuotaTool.h [new file with mode: 0644]
sope-mime/samples/ImapQuotaTool.m [new file with mode: 0644]
sope-mime/samples/ImapTool.h [new file with mode: 0644]
sope-mime/samples/ImapTool.m [new file with mode: 0644]
sope-mime/samples/Mime2XmlTool.h [moved from sope-core/samples/Mime2XmlTool.h with 100% similarity]
sope-mime/samples/Mime2XmlTool.m [moved from sope-core/samples/Mime2XmlTool.m with 100% similarity]
sope-mime/samples/README [new file with mode: 0644]
sope-mime/samples/imap_tool.m [new file with mode: 0644]
sope-mime/samples/imapls.m [new file with mode: 0644]
sope-mime/samples/imapquota.m [new file with mode: 0644]
sope-mime/samples/mime2xml.m [moved from sope-core/samples/mime2xml.m with 100% similarity]
sope-xml/libxmlSAXDriver/GNUmakefile.preamble
sopex/README-WebObjects

diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..efe7fc5
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,19 @@
+SOPE Installation Guide
+=======================
+
+TODO: write install guide for SOPE 3.3.
+
+Prerequisites
+=============
+
+sope-xml
+- libxml2/libxml2-dev
+
+sope-core
+- autoconf
+
+sope-ldap
+- openldap2/openldap2-dev
+
+sope-gdl1
+- postgresql-dev
index f1a4c2235641c8eee9ff41e713351697512edd6d..c667ef6162f26a7bd07fc325fcb50f160102067f 100644 (file)
@@ -1,5 +1,7 @@
 2004-08-20  Helge Hess  <helge.hess@opengroupware.org>
 
+       * common.make: updated for new SOPE 3.3 hierarchy
+
        * updated Version to 4.3
 
 2004-08-16  Marcus Mueller  <znek@mulle-kybernetik.com>
index 0b712f4bccc2aff6fa8c1f9a803a9e9d36cf242d..c3ead118dbe50999729e467f96388a847c37e84e 100644 (file)
@@ -1,5 +1,8 @@
 2004-08-20  Helge Hess  <helge.hess@opengroupware.org>
 
+       * XmlExt.subproj/GNUmakefile: added include path for "inline" SOPE 3.3
+         compilation (v4.3.104)
+
        * moved to SOPE 4.3 (v4.3.103)
 
 2004-08-16  Helge Hess  <helge.hess@skyrix.com>
index a76cdf5fe26a14c144ce3c884a9fe6c2c79f5f94..19c8a805c0b298ff19bbf03885ec0f52cc9eda51 100644 (file)
@@ -5,7 +5,7 @@ libNGExtensions_INCLUDE_DIRS += -I..
 
 ifneq ($(GNUSTEP_BUILD_DIR),)
 RELBUILD_DIR_SxCore=$(GNUSTEP_BUILD_DIR)/..
-RELBUILD_DIR_SxXml=$(GNUSTEP_BUILD_DIR)/../../skyrix-xml
+RELBUILD_DIR_SxXml=$(GNUSTEP_BUILD_DIR)/../../sope-xml
 
 libNGExtensions_LIB_DIRS += \
        -L$(RELBUILD_DIR_SxCore)/EOControl/$(GNUSTEP_OBJ_DIR_NAME)      \
@@ -13,7 +13,7 @@ libNGExtensions_LIB_DIRS += \
 else
 libNGExtensions_LIB_DIRS += \
        -L../EOControl/$(GNUSTEP_OBJ_DIR) \
-       -L../../skyrix-xml/DOM/$(GNUSTEP_OBJ_DIR)
+       -L../../sope-xml/DOM/$(GNUSTEP_OBJ_DIR)
 endif
 
 libNGExtensions_LIBRARIES_DEPEND_UPON += -lEOControl -lDOM -lSaxObjC -lz
index 1bb5a641eb583ce44a4ca6bfc53fd6fccf054c73..6c8c995ba63de9a69ce23d4308126b6d722d9397 100644 (file)
@@ -1,5 +1,5 @@
 # $Id$
 
-SUBMINOR_VERSION:=103
+SUBMINOR_VERSION:=104
 
 # v4.2.72 requires libEOControl v4.2.39
index 223777f04012186393b49e42b54ec064a55409ee..988909bcbc59861c1bfec0a3e0ebd0cbc28cc8e1 100644 (file)
@@ -7,7 +7,11 @@ SUBPROJECT_NAME = XmlExt
 XmlExt_OBJC_FILES = \
        DOMNode+EOQualifier.m
 
-ADDITIONAL_INCLUDE_DIRS += -I. -I.. -I../NGExtensions/ -I../..
+ADDITIONAL_INCLUDE_DIRS += \
+       -I. -I..                \
+       -I../NGExtensions/      \
+       -I../../../sope-xml/    \
+       -I../..
 
 -include GNUmakefile.preamble
 include $(GNUSTEP_MAKEFILES)/subproject.make
index f9a9e45cc8150958b9f0e009be666706d1831e2f..79a465be32e6547da8128bcea527729e95b342ec 100644 (file)
@@ -2,7 +2,7 @@
 
 ifneq ($(GNUSTEP_BUILD_DIR),)
 RELBUILD_DIR_SxCore=$(GNUSTEP_BUILD_DIR)/..
-RELBUILD_DIR_SxXml=$(GNUSTEP_BUILD_DIR)/../../skyrix-xml
+RELBUILD_DIR_SxXml=$(GNUSTEP_BUILD_DIR)/../../sope-xml
 
 libNGStreams_LIB_DIRS += \
        -L$(GNUSTEP_OBJ_DIR)                                            \
index ab0c70acd224c130396a50b22874d259bbf15194..7d659c6b4f559e0486885fe75f928854cf6df6f1 100644 (file)
@@ -1,3 +1 @@
-# $Id$
-
 PROJECTLEAD=helge.hess@opengroupware.org
index a8059f94667389c3d910c0cd42fbcbb123cfed8f..e9b25c82d43ab4b8d595f0d5c5bc990bcefc41e2 100644 (file)
@@ -15,28 +15,13 @@ endif
 
 ADDITIONAL_INCLUDE_DIRS += \
        -I.. -I../NGStreams/    \
-       -I../../skyrix-xml
+       -I../../sope-xml
 
 ADDITIONAL_LIB_DIRS += \
-        -L./$(GNUSTEP_OBJ_DIR)                 \
-       \
-       -L../../skyrix-xml/SaxObjC/$(GNUSTEP_OBJ_DIR)   \
-       -L../../skyrix-xml/DOM/$(GNUSTEP_OBJ_DIR)       \
-       -L../../skyrix-xml/XmlRpc/$(GNUSTEP_OBJ_DIR)
-
-AUTODOC_COPYRIGHT = "SKYRIX Software AG"
-AUTODOC_SxVERSION = "4.2"
-AUTODOC_TEMPLATE  = "../Documentation/AutoDocTemplate.html"
-
-AUTODOC_FLAGS     = \
-       -copyright $(AUTODOC_COPYRIGHT) \
-       -format html                    \
-       -typedirs                       \
-       -copydocs                       \
-       -tree                           \
-       -allclasses                     \
-       -define-SxVersion $(AUTODOC_SxVERSION) \
-       -template $(AUTODOC_TEMPLATE)
+        -L./$(GNUSTEP_OBJ_DIR)                         \
+       -L../../sope-xml/SaxObjC/$(GNUSTEP_OBJ_DIR)     \
+       -L../../sope-xml/DOM/$(GNUSTEP_OBJ_DIR)         \
+       -L../../sope-xml/XmlRpc/$(GNUSTEP_OBJ_DIR)
 
 ifeq ($(FOUNDATION_LIB),nx)
 ADDITIONAL_LDFLAGS += -framework Foundation
index f78f6b578280130f8d59150f2033f19450f492b0..64c5448c0c8dd6f11c838036099b53b6db000df4 100644 (file)
@@ -1,3 +1,7 @@
+2004-08-20  Helge Hess  <helge.hess@opengroupware.org>
+
+       * moved samples to sope-mime, sope-ldap, sope-ical
+
 2004-08-17  Helge Hess  <helge.hess@opengroupware.org>
 
        * subclassing.m: fixed a compiler warning
index d0af1267259884dfe5186378d4efe3e5722541e6..5c93b9c7a846912b85bd42c9b344216a7177e531 100644 (file)
@@ -3,22 +3,14 @@
 include $(GNUSTEP_MAKEFILES)/common.make
 
 TOOL_NAME = \
-       mime2xml        \
-       imapls          \
        encoding        \
        fmdls           \
        testdirenum     \
        bmlookup        \
        test_qpdecode   \
        eoqual          \
-       ldapls          \
-       ldap2dsml       \
-       ldapchkpwd      \
-       imapquota       \
        testsock        \
        httpu_notify    \
-       ical2           \
-       ical3           \
        parserule       \
        testurl         \
 
@@ -26,10 +18,6 @@ ifneq ($(OBJC_RUNTIME_LIB),apple)
 TOOL_NAME += subclassing
 endif
 
-imapquota_OBJC_FILES       = ImapQuotaTool.m ImapTool.m imapquota.m
-imapget_OBJC_FILES       = ImapTool.m imapget.m
-mime2xml_OBJC_FILES      = Mime2XmlTool.m mime2xml.m
-imapls_OBJC_FILES        = ImapTool.m ImapListTool.m imapls.m
 encoding_OBJC_FILES      = EncodingTool.m encoding.m
 subclassing_OBJC_FILES   = subclassing.m
 fmdls_OBJC_FILES         = fmdls.m
@@ -37,27 +25,11 @@ bmlookup_OBJC_FILES      = bmlookup.m
 testdirenum_OBJC_FILES   = testdirenum.m
 test_qpdecode_OBJC_FILES = test_qpdecode.m
 eoqual_OBJC_FILES        = eoqual.m EOQualTool.m
-ldapls_OBJC_FILES       = ldapls.m
-ldap2dsml_OBJC_FILES    = ldap2dsml.m
-ldapchkpwd_OBJC_FILES   = ldapchkpwd.m
 testsock_OBJC_FILES      = testsock.m
 parserule_OBJC_FILES     = parserule.m
 httpu_notify_OBJC_FILES  = httpu_notify.m
 testurl_OBJC_FILES       = testurl.m
 
-ical2_OBJC_FILES        = ical2.m
-ical3_OBJC_FILES        = ical3.m
-
-#TOOL_NAME = #pwd-check
-#pwd-check_OBJC_FILES = pwd-check.m
-
-ldapls_TOOL_LIBS     += -lNGLdap
-ldap2dsml_TOOL_LIBS  += -lNGLdap
-ldapchkpwd_TOOL_LIBS += -lNGLdap
-
-ical2_TOOL_LIBS += -lNGiCal -lSaxObjC
-ical3_TOOL_LIBS += -lNGiCal -lSaxObjC
-
 -include GNUmakefile.preamble
 include $(GNUSTEP_MAKEFILES)/tool.make
 -include GNUmakefile.postamble
index 7bf8471901695ae9959ab1fe8ae4a9e7e6edcf2a..49f4ae0718b8a7ab86548ebe5688d72a199aa2d9 100644 (file)
@@ -2,7 +2,6 @@
 
 ADDITIONAL_INCLUDE_DIRS += \
        -I..                    \
-       -I../NGMime             \
        -I../NGStreams          \
        -I../NGExtensions       \
 
@@ -10,12 +9,7 @@ ADDITIONAL_LIB_DIRS += \
        -L../EOControl/$(GNUSTEP_OBJ_DIR)    \
        -L../NGExtensions/$(GNUSTEP_OBJ_DIR) \
        -L../NGStreams/$(GNUSTEP_OBJ_DIR)    \
-       -L../NGMime/$(GNUSTEP_OBJ_DIR)       \
-       -L../NGLdap/$(GNUSTEP_OBJ_DIR)       \
-       -L../NGiCal/$(GNUSTEP_OBJ_DIR)       \
-
 
 ADDITIONAL_TOOL_LIBS += \
-       -lNGMime -lNGStreams -lNGExtensions -lEOControl \
+       -lNGStreams -lNGExtensions -lEOControl  \
        -lDOM -lSaxObjC
-
diff --git a/sope-ical/samples/ChangeLog b/sope-ical/samples/ChangeLog
new file mode 100644 (file)
index 0000000..f78f6b5
--- /dev/null
@@ -0,0 +1,129 @@
+2004-08-17  Helge Hess  <helge.hess@opengroupware.org>
+
+       * subclassing.m: fixed a compiler warning
+
+2004-07-09  Helge Hess  <helge.hess@skyrix.com>
+
+       * bmlookup.m: major code cleanups, improved output
+
+2004-06-27  Helge Hess  <helge.hess@opengroupware.org>
+
+       * ldap2dsml.m: fixed a compile warning
+
+2004-06-21  Helge Hess  <helge.hess@opengroupware.org>
+
+       * common.h: fixed compatibility with gstep-base
+
+2004-06-17  Helge Hess  <helge.hess@opengroupware.org>
+
+       * added 'testurl' to test NSURL for the Cocoa Foundation bug wrt the
+         trailing suffix in -path
+
+2004-05-09  Helge Hess  <helge.hess@opengroupware.org>
+
+       * subclassing.m: added support for Apple runtime
+
+2004-04-12  Helge Hess  <helge.hess@opengroupware.org>
+
+       * ImapListTool, ImapTool.m, imapls.m: minor code cleanups
+
+2004-01-19  Helge Hess  <helge.hess@opengroupware.org>
+
+       * ldapls.m: minor fixes (moved NSAutoreleasePool to correct place)
+
+2004-01-11  Helge Hess  <helge.hess@opengroupware.org>
+
+       * minor cleanups to log messages
+
+2003-10-12  Helge Hess  <helge@opengroupware.org>
+
+       * EOQualTool.m: fix: returned value in a void method
+
+       * GNUmakefile (TOOL_NAME): do not compile subclassing.m on
+         MacOSX
+
+       * EncodingTool.m: fixed compilation on MacOSX
+
+2003-05-15  Helge Hess  <helge.hess@skyrix.com>
+
+       * added parserule for testing parsing of NGRule objects
+
+2003-05-14  Helge Hess  <helge.hess@skyrix.com>
+
+       * some gcc 3.3 warnings fixed
+
+2003-04-03  Helge Hess  <helge.hess@skyrix.com>
+
+       * GNUmakefile: added ldapchkpwd tool
+
+       * ldap2dsml.m: added autorelease-pool to main()
+
+2003-04-01  GNUstep User  <helge.hess@skyrix.com>
+
+       * ImapListTool.m: do not use NSFileIdentifier constant
+
+       * EncodingTool.m: removed some undeclared encodings when compiling for
+         GNUstep Base
+
+2003-02-12  Helge Hess  <helge.hess@skyrix.com>
+
+       * added ical2.m, ical3.m - examples for NGiCal
+
+2003-01-30  Helge Hess  <helge.hess@skyrix.com>
+       
+       * added httpu_notify, a small tool to send out HTTP-over-UDP 
+         NOTIFY notifications
+
+2003-01-08  Helge Hess  <helge.hess@skyrix.com>
+
+       * testsock.m: improved test code
+
+2003-01-07  Helge Hess  <helge.hess@skyrix.com>
+
+       * subclassing.m, ImapQuotaTool.m, imapquota.m: fixed compilation 
+         warnings
+         
+       * moved in testsock.m from NGStreams
+
+       * changes for improved compilation on MacOSX, replaced RETAIN macros
+         with methods
+
+Fri Dec 27 10:54:40 2002  Helge Hess  <helge.hess@skyrix.com>
+
+       * Mime2XmlTool.m: fixed a protocol warning
+
+Mon Dec 23 15:36:01 2002  Helge Hess  <helge.hess@skyrix.com>
+
+       * ImapListTool.m: pass correct filemanager as a parameter
+
+2002-12-08  Helge Hess  <helge.hess@skyrix.com>
+
+       * testdirenum.m: cleanups
+
+Tue Dec 17 15:07:40 2002    <jan@skyrix.com>
+
+       * imapquota.m: add quota test
+
+2002-11-21  Jan Reichmann <jr@skyrix.com>
+
+       * added Imap-Super class, improve imapls
+
+2002-11-21  Helge Hess  <helge.hess@skyrix.com>
+
+       * added ldapls, ldap2dsml as examples for NGLdap
+
+2002-11-15  Helge Hess  <helge.hess@skyrix.com>
+
+       * EOQualTool.m: added test for complex cast
+
+2002-10-29  Helge Hess  <helge.hess@skyrix.com>
+
+       * EOQualTool.m: added support for parsing SQL using the new EOSQLParser
+
+2002-10-25  Helge Hess  <helge.hess@skyrix.com>
+
+       * added eoqual tool for parsing EOQualifier's (useful for syntax 
+         checks)
+
+       * created ChangeLog
+
diff --git a/sope-ical/samples/GNUmakefile b/sope-ical/samples/GNUmakefile
new file mode 100644 (file)
index 0000000..2016d11
--- /dev/null
@@ -0,0 +1,17 @@
+# $Id$
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+TOOL_NAME = \
+       ical2           \
+       ical3           \
+
+ical2_OBJC_FILES        = ical2.m
+ical3_OBJC_FILES        = ical3.m
+
+ical2_TOOL_LIBS += -lNGiCal -lSaxObjC
+ical3_TOOL_LIBS += -lNGiCal -lSaxObjC
+
+-include GNUmakefile.preamble
+include $(GNUSTEP_MAKEFILES)/tool.make
+-include GNUmakefile.postamble
diff --git a/sope-ical/samples/GNUmakefile.preamble b/sope-ical/samples/GNUmakefile.preamble
new file mode 100644 (file)
index 0000000..33ceafa
--- /dev/null
@@ -0,0 +1,18 @@
+# $Id$
+
+ADDITIONAL_INCLUDE_DIRS += \
+       -I..                    \
+       -I../NGStreams          \
+       -I../NGExtensions       \
+
+ADDITIONAL_LIB_DIRS += \
+       -L../EOControl/$(GNUSTEP_OBJ_DIR)    \
+       -L../NGExtensions/$(GNUSTEP_OBJ_DIR) \
+       -L../NGStreams/$(GNUSTEP_OBJ_DIR)    \
+       -L../NGiCal/$(GNUSTEP_OBJ_DIR)       \
+
+
+ADDITIONAL_TOOL_LIBS += \
+       -lNGStreams -lNGExtensions -lEOControl  \
+       -lDOM -lSaxObjC
+
diff --git a/sope-ical/samples/README b/sope-ical/samples/README
new file mode 100644 (file)
index 0000000..692d2a6
--- /dev/null
@@ -0,0 +1,26 @@
+# $Id$
+
+This directory contains sample programs for the skyrix-core libraries.
+
+Tools
+=====
+
+mime2xml    - read a MIME file and output the structure as XML
+
+imapls      - list IMAP4 server directories, sample for NGImap4FileManager
+
+bmlookup    - perform resource lookups using the NGExtensions NGBundleManager
+              class
+
+fmdls       - list directories using the NGFileManager directory-datasource
+              implementation
+
+subclassing - test runtime subclassing in the Objective-C runtime 
+              (NGObjCRuntime in NGExtensions)
+
+testdirenum - test the NGDirectoryEnumerator
+
+ldapls     - an 'ls' for LDAP directories
+ldap2dsml   - return the output of an LDAP server as DSML (directory service
+              markup language)
+ldapchkpwd  - check whether a login/password combo would be authenticated
diff --git a/sope-ical/samples/ical2.m b/sope-ical/samples/ical2.m
new file mode 100644 (file)
index 0000000..276824e
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ical2.m 4 2004-08-20 17:04:31Z helge $
+
+#import <Foundation/Foundation.h>
+#include <SaxObjC/SaxObjC.h>
+
+@interface iCal2Tool : NSObject
+{
+  id<NSObject,SaxXMLReader> parser;
+  SaxObjectDecoder *sax;
+}
+
+- (int)runWithArguments:(NSArray *)_args;
+
+@end
+
+@implementation iCal2Tool
+
+- (id)init {
+  if ((self = [super init])) {
+    self->parser =
+      [[[SaxXMLReaderFactory standardXMLReaderFactory] 
+                            createXMLReaderForMimeType:@"text/calendar"]
+                             retain];
+    if (self->parser == nil) {
+      NSLog(@"%s: did not find a parser for text/calendar !",
+           __PRETTY_FUNCTION__);
+      [self release];
+      return nil;
+    }
+    
+    /* ensure that NGiCal.xmap can be found ! (Library/SaxMappings) */
+    self->sax = [[SaxObjectDecoder alloc] initWithMappingNamed:@"NGiCal"];
+    if (self->sax == nil) {
+      NSLog(@"could not create the iCal SAX handler !");
+      [self release];
+      return nil;
+    }
+    
+    [self->parser setContentHandler:self->sax];
+    [self->parser setErrorHandler:self->sax];
+  }
+  return self;
+}
+- (void)dealloc {
+  [self->sax    release];
+  [self->parser release];
+  [super dealloc];
+}
+
+/* parsing */
+
+- (id)parseFile:(NSString *)_path {
+  if ([_path length] == 0) return nil;
+  
+  _path = [@"file://" stringByAppendingString:_path];
+  
+  [self->parser parseFromSystemId:_path];
+  
+  return [self->sax rootObject];
+}
+
+- (void)printParsedObject:(id)_object {
+  NSLog(@"component: %@",       _object);
+#if 0
+  NSLog(@"  subcomponents: %@", [_object subComponents]);
+  
+  printf("%s", [[_object icalString] cString]);
+#endif
+}
+
+/* run */
+
+- (int)runWithArguments:(NSArray *)_args {
+  NSEnumerator      *args;
+  NSString          *arg;
+  
+  args = [_args objectEnumerator];
+  [args nextObject]; // process name ...
+
+  while ((arg = [args nextObject])) {
+    NSAutoreleasePool *pool2;
+
+    if ([arg hasPrefix:@"-"]) { /* consume defaults */
+      [args nextObject];
+      continue;
+    }
+    
+    pool2 = [[NSAutoreleasePool alloc] init];
+    {    
+      id component;
+      
+      NS_DURING
+       component = [self parseFile:arg];
+      NS_HANDLER
+       abort();
+      NS_ENDHANDLER;
+      
+      if (component == nil)
+       NSLog(@"could not parse file: '%@'", arg);
+      else
+       [self printParsedObject:component];
+    }
+    [pool2 release];
+  }
+  return 0;
+}
+
+@end /* iCal2Tool */
+
+int main(int argc, char **argv, char **env)  {
+  NSAutoreleasePool *pool;
+  iCal2Tool *tool;
+  int rc;
+
+#if LIB_FOUNDATION_LIBRARY  
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+  
+  pool = [[NSAutoreleasePool alloc] init];
+  
+  if ((tool = [[iCal2Tool alloc] init])) {
+    NS_DURING
+      rc = [tool runWithArguments:[[NSProcessInfo processInfo] arguments]];
+    NS_HANDLER
+      abort();
+    NS_ENDHANDLER;
+    
+    [tool release];
+  }
+  else
+    rc = 1;
+  
+  [pool release];
+  return rc;
+}
diff --git a/sope-ical/samples/ical3.m b/sope-ical/samples/ical3.m
new file mode 100644 (file)
index 0000000..e98468f
--- /dev/null
@@ -0,0 +1,165 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ical3.m 4 2004-08-20 17:04:31Z helge $
+
+#import <Foundation/Foundation.h>
+
+@class EOQualifier, NSString, EOSortOrdering;
+
+@interface iCal3Tool : NSObject
+{
+  EOQualifier *qualifier;
+  NSString    *entityName;
+  NSArray     *sortOrderings;
+}
+
+- (int)runWithArguments:(NSArray *)_args;
+
+@end
+
+#include <NGiCal/iCalDataSource.h>
+#include <NGiCal/iCalObject.h>
+#include <EOControl/EOQualifier.h>
+#include <EOControl/EOSortOrdering.h>
+#include "common.h"
+
+@implementation iCal3Tool
+
+- (id)init {
+  if ((self = [super init])) {
+    NSUserDefaults *ud;
+    id tmp;
+    
+    /* collect options */
+    ud = [NSUserDefaults standardUserDefaults];
+
+    self->entityName = [[ud stringForKey:@"entity"] copy];
+    
+    if ((tmp = [ud objectForKey:@"qualifier"]))
+      self->qualifier = [[EOQualifier alloc] initWithPropertyList:tmp];
+
+    if ((tmp = [ud objectForKey:@"sort"])) {
+      if ((tmp = [[EOSortOrdering alloc] initWithPropertyList:tmp])) {
+       self->sortOrderings = [[NSArray alloc] initWithObjects:tmp,nil];
+       [tmp release];
+      }
+    }
+  }
+  return self;
+}
+- (void)dealloc {
+  [self->sortOrderings release];
+  [self->qualifier     release];
+  [self->entityName    release];
+  [super dealloc];
+}
+
+/* run */
+
+- (void)printObject:(id)_object {
+  printf("object: %s\n", [[_object description] cString]);
+}
+
+- (int)runWithArguments:(NSArray *)_args {
+  NSEnumerator *args;
+  NSString     *arg;
+  
+  /* begin processing */
+  
+  args = [_args objectEnumerator];
+  [args nextObject]; // process name ...
+  
+  while ((arg = [args nextObject])) {
+    NSAutoreleasePool *pool2;
+    
+    if ([arg hasPrefix:@"-"]) { /* consume defaults */
+      [args nextObject];
+      continue;
+    }
+    
+    pool2 = [[NSAutoreleasePool alloc] init];
+    {    
+      iCalDataSource       *ds;
+      EOFetchSpecification *fspec;
+      NSArray    *objs;
+      iCalObject *obj;
+      
+      /* setup fetch specification */
+      
+      fspec = [[[EOFetchSpecification alloc] init] autorelease];
+      [fspec setEntityName:self->entityName];
+      [fspec setQualifier:self->qualifier];
+      
+      /* setup datasource */
+      
+      ds = [[[iCalDataSource alloc] initWithPath:arg] autorelease];
+      [ds setFetchSpecification:fspec];
+
+      /* perform fetch */
+      
+      if ((objs = [ds fetchObjects]) == nil) {
+       /* fetch failed */
+       
+       NSLog(@"fetch on ical file failed: %@", arg);
+      }
+      else {
+       /* process results */
+       NSEnumerator *e;
+       
+       e = [objs objectEnumerator];
+       while ((obj = [e nextObject])) {
+         [self printObject:obj];
+       }
+      }
+    }
+    [pool2 release];
+  }
+  return 0;
+}
+
+@end /* iCal3Tool */
+
+int main(int argc, char **argv, char **env)  {
+  NSAutoreleasePool *pool;
+  iCal3Tool *tool;
+  int rc;
+
+#if LIB_FOUNDATION_LIBRARY  
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+  
+  pool = [[NSAutoreleasePool alloc] init];
+  
+  if ((tool = [[iCal3Tool alloc] init])) {
+    NS_DURING
+      rc = [tool runWithArguments:[[NSProcessInfo processInfo] arguments]];
+    NS_HANDLER
+      abort();
+    NS_ENDHANDLER;
+    
+    [tool release];
+  }
+  else
+    rc = 1;
+  
+  [pool release];
+  return rc;
+}
diff --git a/sope-ldap/samples/ChangeLog b/sope-ldap/samples/ChangeLog
new file mode 100644 (file)
index 0000000..587de7c
--- /dev/null
@@ -0,0 +1,33 @@
+2004-08-20  Helge Hess  <helge.hess@opengroupware.org>
+
+       * moved in NGLdap samples from sope-core
+
+2004-06-27  Helge Hess  <helge.hess@opengroupware.org>
+
+       * ldap2dsml.m: fixed a compile warning
+
+2004-06-21  Helge Hess  <helge.hess@opengroupware.org>
+
+       * common.h: fixed compatibility with gstep-base
+
+2004-01-19  Helge Hess  <helge.hess@opengroupware.org>
+
+       * ldapls.m: minor fixes (moved NSAutoreleasePool to correct place)
+
+2004-01-11  Helge Hess  <helge.hess@opengroupware.org>
+
+       * minor cleanups to log messages
+
+2003-05-14  Helge Hess  <helge.hess@skyrix.com>
+
+       * some gcc 3.3 warnings fixed
+
+2003-04-03  Helge Hess  <helge.hess@skyrix.com>
+
+       * GNUmakefile: added ldapchkpwd tool
+
+       * ldap2dsml.m: added autorelease-pool to main()
+
+2002-11-21  Helge Hess  <helge.hess@skyrix.com>
+
+       * added ldapls, ldap2dsml as examples for NGLdap
diff --git a/sope-ldap/samples/GNUmakefile b/sope-ldap/samples/GNUmakefile
new file mode 100644 (file)
index 0000000..a25605b
--- /dev/null
@@ -0,0 +1,24 @@
+# $Id$
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+TOOL_NAME = \
+       ldapls          \
+       ldap2dsml       \
+       ldapchkpwd      \
+       imapquota       \
+
+ldapls_OBJC_FILES       = ldapls.m
+ldap2dsml_OBJC_FILES    = ldap2dsml.m
+ldapchkpwd_OBJC_FILES   = ldapchkpwd.m
+
+#TOOL_NAME = #pwd-check
+#pwd-check_OBJC_FILES = pwd-check.m
+
+ldapls_TOOL_LIBS     += -lNGLdap
+ldap2dsml_TOOL_LIBS  += -lNGLdap
+ldapchkpwd_TOOL_LIBS += -lNGLdap
+
+-include GNUmakefile.preamble
+include $(GNUSTEP_MAKEFILES)/tool.make
+-include GNUmakefile.postamble
diff --git a/sope-ldap/samples/GNUmakefile.preamble b/sope-ldap/samples/GNUmakefile.preamble
new file mode 100644 (file)
index 0000000..ac2cfcb
--- /dev/null
@@ -0,0 +1,17 @@
+# $Id$
+
+ADDITIONAL_INCLUDE_DIRS += \
+       -I..                    \
+       -I../NGStreams          \
+       -I../NGExtensions       \
+
+ADDITIONAL_LIB_DIRS += \
+       -L../EOControl/$(GNUSTEP_OBJ_DIR)    \
+       -L../NGExtensions/$(GNUSTEP_OBJ_DIR) \
+       -L../NGStreams/$(GNUSTEP_OBJ_DIR)    \
+       -L../NGLdap/$(GNUSTEP_OBJ_DIR)       \
+
+ADDITIONAL_TOOL_LIBS += \
+       -lNGStreams -lNGExtensions -lEOControl  \
+       -lDOM -lSaxObjC
+
diff --git a/sope-ldap/samples/README b/sope-ldap/samples/README
new file mode 100644 (file)
index 0000000..692d2a6
--- /dev/null
@@ -0,0 +1,26 @@
+# $Id$
+
+This directory contains sample programs for the skyrix-core libraries.
+
+Tools
+=====
+
+mime2xml    - read a MIME file and output the structure as XML
+
+imapls      - list IMAP4 server directories, sample for NGImap4FileManager
+
+bmlookup    - perform resource lookups using the NGExtensions NGBundleManager
+              class
+
+fmdls       - list directories using the NGFileManager directory-datasource
+              implementation
+
+subclassing - test runtime subclassing in the Objective-C runtime 
+              (NGObjCRuntime in NGExtensions)
+
+testdirenum - test the NGDirectoryEnumerator
+
+ldapls     - an 'ls' for LDAP directories
+ldap2dsml   - return the output of an LDAP server as DSML (directory service
+              markup language)
+ldapchkpwd  - check whether a login/password combo would be authenticated
diff --git a/sope-ldap/samples/ldap2dsml.m b/sope-ldap/samples/ldap2dsml.m
new file mode 100644 (file)
index 0000000..82981aa
--- /dev/null
@@ -0,0 +1,366 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ldap2dsml.m 4 2004-08-20 17:04:31Z helge $
+
+#import <Foundation/NSObject.h>
+#import <SaxObjC/SaxXMLReader.h>
+#import <NGLdap/NGLdapAttribute.h>
+#import <NGLdap/NGLdapEntry.h>
+#import <NGLdap/NGLdapConnection.h>
+#include "common.h"
+
+@interface DSMLSaxProducer : NSObject
+{
+  id<NSObject,SaxContentHandler> contentHandler;
+  id<NSObject,SaxErrorHandler>   errorHandler;
+}
+
+- (void)setContentHandler:(id<NSObject,SaxContentHandler>)_handler;
+- (void)setErrorHandler:(id<NSObject,SaxErrorHandler>)_handler;
+
+- (void)produceOnConnection:(NGLdapConnection *)_con dn:(NSString *)_dn;
+
+@end
+
+static NSString *XMLNS_DSML = @"http://wwww.dsml.org/DSML";
+
+@implementation DSMLSaxProducer
+
+- (void)dealloc {
+  [self->errorHandler   release];
+  [self->contentHandler release];
+  [super dealloc];
+}
+
+- (void)setContentHandler:(id<NSObject,SaxContentHandler>)_handler {
+  ASSIGN(self->contentHandler, _handler);
+}
+- (void)setErrorHandler:(id<NSObject,SaxErrorHandler>)_handler {
+  ASSIGN(self->errorHandler, _handler);
+}
+
+- (void)_produceAttribute:(NGLdapAttribute *)_attribute
+  ofEntry:(NGLdapEntry *)_entry
+{
+  SaxAttributes *attrs;
+
+  attrs = [[SaxAttributes alloc] init];
+  
+  [attrs addAttribute:@"name" uri:XMLNS_DSML rawName:@"name"
+         type:@"CDATA"
+         value:[_attribute attributeName]];
+  
+  [self->contentHandler
+       startElement:@"attr"
+       namespace:XMLNS_DSML
+       rawName:@"attr"
+       attributes:attrs];
+  
+  [attrs release]; attrs = nil;
+  
+  /* encode values */
+  {
+    NSEnumerator *values;
+    NSString *value;
+  
+    values = [_attribute stringValueEnumerator];
+    while ((value = [values nextObject])) {
+      unsigned len;
+      unichar  *chars;
+
+      if ((len = [value length]) == 0)
+        continue;
+      
+      chars = calloc(len + 1, sizeof(unichar));
+      [value getCharacters:chars];
+      
+      [self->contentHandler
+           startElement:@"value"
+           namespace:XMLNS_DSML
+           rawName:@"value"
+           attributes:nil];
+      
+      [self->contentHandler characters:chars length:len];
+      
+      if (chars) free(chars);
+      
+      [self->contentHandler
+           endElement:@"value"
+           namespace:XMLNS_DSML
+           rawName:@"value"];
+    }
+  }
+  
+  [self->contentHandler
+       endElement:@"attr"
+       namespace:XMLNS_DSML
+       rawName:@"attr"];
+}
+
+- (void)_produceObjectClassOfEntry:(NGLdapEntry *)_entry {
+  NGLdapAttribute *attr;
+
+  if ((attr = [_entry attributeWithName:@"objectclass"]) == nil)
+    return;
+  
+  [self->contentHandler
+       startElement:@"objectclass"
+       namespace:XMLNS_DSML
+       rawName:@"objectclass"
+       attributes:nil];
+  
+  /* encode values */
+  {
+    NSEnumerator *values;
+    NSString *value;
+  
+    values = [attr stringValueEnumerator];
+    while ((value = [values nextObject])) {
+      unsigned len;
+      unichar  *chars;
+
+      if ((len = [value length]) == 0)
+        continue;
+      
+      chars = calloc(len + 1, sizeof(unichar));
+      [value getCharacters:chars];
+      
+      [self->contentHandler
+           startElement:@"objectclass"
+           namespace:XMLNS_DSML
+           rawName:@"objectclass"
+           attributes:nil];
+      
+      [self->contentHandler characters:chars length:len];
+      
+      if (chars) free(chars);
+      
+      [self->contentHandler
+           endElement:@"objectclass"
+           namespace:XMLNS_DSML
+           rawName:@"objectclass"];
+    }
+  }
+  
+  [self->contentHandler
+       endElement:@"objectclass"
+       namespace:XMLNS_DSML
+       rawName:@"objectclass"];
+}
+
+- (void)_produceEntry:(NGLdapEntry *)_entry {
+  SaxAttributes *attrs;
+  NSEnumerator  *names;
+  NSString      *cname;
+  
+  attrs = [[SaxAttributes alloc] init];
+  
+  [attrs addAttribute:@"dn" uri:XMLNS_DSML rawName:@"dn"
+         type:@"CDATA"
+         value:[_entry dn]];
+  
+  [self->contentHandler
+       startElement:@"entry"
+       namespace:XMLNS_DSML
+       rawName:@"entry"
+       attributes:attrs];
+
+  [attrs release]; attrs = nil;
+
+  /* attributes */
+
+  [self _produceObjectClassOfEntry:_entry];
+  
+  names = [[_entry attributeNames] objectEnumerator];
+  while ((cname = [names nextObject])) {
+    NGLdapAttribute *attr;
+
+    if ([cname isEqualToString:@"objectclass"])
+      continue;
+    
+    if ((attr = [_entry attributeWithName:cname]))
+      [self _produceAttribute:attr ofEntry:_entry];
+  }  
+  
+  [self->contentHandler
+       endElement:@"entry"
+       namespace:XMLNS_DSML
+       rawName:@"entry"];
+}
+
+- (void)_produceEntries:(NSEnumerator *)_entries {
+  NGLdapEntry *entry;
+
+  [self->contentHandler
+       startElement:@"directory-entries"
+       namespace:XMLNS_DSML
+       rawName:@"directory-entries"
+       attributes:nil];
+  
+  while ((entry = [_entries nextObject]))
+    [self _produceEntry:entry];
+  
+  [self->contentHandler
+       endElement:@"directory-entries"
+       namespace:XMLNS_DSML
+       rawName:@"directory-entries"];
+}
+
+- (void)produceOnConnection:(NGLdapConnection *)_con dn:(NSString *)_dn {
+  [self->contentHandler startDocument];
+  [self->contentHandler startPrefixMapping:@"" uri:XMLNS_DSML];
+  
+  [self->contentHandler
+       startElement:@"dsml"
+       namespace:XMLNS_DSML
+       rawName:@"dsml"
+       attributes:nil];
+
+  [self _produceEntries:[_con flatSearchAtBaseDN:_dn
+                              qualifier:nil
+                              attributes:nil]];
+  
+  [self->contentHandler endElement:@"dsml" namespace:XMLNS_DSML rawName:@"dsml"];
+  
+  [self->contentHandler endPrefixMapping:@""];
+  [self->contentHandler endDocument];
+}
+
+@end /* DSMLSaxProducer */
+
+#import <SaxObjC/SaxDefaultHandler.h>
+
+@interface DSMLSaxOutputter : SaxDefaultHandler
+{
+  int level;
+}
+@end
+
+@implementation DSMLSaxOutputter
+
+- (void)startElement:(NSString *)_localName
+  namespace:(NSString *)_ns
+  rawName:(NSString *)_rawName
+  attributes:(id<SaxAttributes>)_attrs
+{
+  int i, count;
+  
+  level++;
+  for (i = 0; i < level; i++)
+    printf("  ");
+  printf("<dsml:%s", [_localName cString]);
+  
+  if (level <= 1) {
+    printf(" xmlns:dsml='%s'", [_ns cString]);
+  }
+
+  for (i = 0, count = [_attrs count]; i < count; i++) {
+    printf(" %s='%s'",
+           [[_attrs nameAtIndex:i] cString],
+           [[_attrs valueAtIndex:i] cString]);
+  }
+  
+  printf(">\n");
+}
+
+- (void)endElement:(NSString *)_localName
+  namespace:(NSString *)_ns
+  rawName:(NSString *)_rawName
+{
+  int i;
+  for (i = 0; i < level; i++)
+    printf("  ");
+  printf("</dsml:%s>\n", [_localName cString]);
+  level--;
+}
+
+- (void)characters:(unichar *)_chars length:(int)_len {
+  int i;
+  NSString *s;
+  
+  for (i = 0; i < level + 1; i++)
+    printf("  ");
+
+  s = [[NSString alloc] initWithCharacters:_chars length:_len];
+  printf("%s\n", [s cString]);
+  [s release];
+}
+
+@end /* DSMLSaxOutputter */
+
+#import <Foundation/Foundation.h>
+
+int main(int argc, char **argv, char **env) {
+  NSAutoreleasePool *pool;
+  NSUserDefaults   *ud;
+  NSArray          *args;
+  DSMLSaxProducer  *cpu;
+  DSMLSaxOutputter *out;
+  
+  pool = [[NSAutoreleasePool alloc] init];
+#if LIB_FOUNDATION_LIBRARY
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+  
+  args = [[NSProcessInfo processInfo] arguments];
+  if ([args count] < 1) {
+    NSLog(@"usage: %@ <files>", [args objectAtIndex:0]);
+    exit(1);
+  }
+  else if ([args count] == 1)
+    args = [args arrayByAddingObject:@"."];
+
+  ud = [NSUserDefaults standardUserDefaults];
+
+  cpu = [[DSMLSaxProducer alloc] init];
+  out = [[DSMLSaxOutputter alloc] init];
+  [cpu setContentHandler:out];
+  [cpu setErrorHandler:out];
+
+#if 0
+  fm = [[NGLdapFileManager alloc]
+                           initWithHostName:[ud stringForKey:@"LDAPHost"]
+                           port:0
+                           bindDN:[ud stringForKey:@"LDAPBindDN"]
+                           credentials:[ud stringForKey:@"LDAPPassword"]
+                           rootDN:[ud stringForKey:@"LDAPRootDN"]];
+  fm = [fm autorelease];
+#endif
+
+  {
+    NGLdapConnection *con;
+
+    con = [[NGLdapConnection alloc]
+                             initWithHostName:[ud stringForKey:@"LDAPHost"]
+                             port:0];
+    [con bindWithMethod:@"simple"
+         binddn:[ud stringForKey:@"LDAPBindDN"]
+         credentials:[ud stringForKey:@"LDAPPassword"]];
+    
+    [cpu produceOnConnection:con
+         dn:[ud stringForKey:@"LDAPRootDN"]];
+    
+    [con release];
+  }
+  [pool release];
+  exit(0);
+  return 0;
+}
diff --git a/sope-ldap/samples/ldapchkpwd.m b/sope-ldap/samples/ldapchkpwd.m
new file mode 100644 (file)
index 0000000..53153f3
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ldapchkpwd.m 4 2004-08-20 17:04:31Z helge $
+
+#import <EOControl/EOControl.h>
+#import <NGLdap/NGLdapConnection.h>
+#include "common.h"
+
+int main(int argc, char **argv, char **env) {
+  NSAutoreleasePool *pool;
+  NSUserDefaults *ud;
+  NSArray        *args;
+  BOOL ok = NO;
+  
+#if LIB_FOUNDATION_LIBRARY
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+
+  pool = [[NSAutoreleasePool alloc] init];
+  
+  args = [[NSProcessInfo processInfo] arguments];
+  if ([args count] < 3) {
+    NSLog(@"usage: %@ <user> <password>", [args objectAtIndex:0]);
+    exit(1);
+  }
+  
+  ud = [NSUserDefaults standardUserDefaults];
+  
+  ok = [NGLdapConnection checkPassword:[args objectAtIndex:2]
+                         ofLogin:[args objectAtIndex:1]
+                         atBaseDN:[ud stringForKey:@"LDAPRootDN"]
+                         onHost:[ud stringForKey:@"LDAPHost"]
+                         port:0];
+  if (ok)
+    printf("authenticated successfully.\n");
+  else
+    printf("did not authenticate !\n");
+  
+  [pool release];
+  
+  exit(0);
+  return 0;
+}
diff --git a/sope-ldap/samples/ldapls.m b/sope-ldap/samples/ldapls.m
new file mode 100644 (file)
index 0000000..e3afde5
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ldapls.m 4 2004-08-20 17:04:31Z helge $
+
+#include <EOControl/EOControl.h>
+#include <NGLdap/NGLdapFileManager.h>
+#include "common.h"
+
+int main(int argc, char **argv, char **env) {
+  NSAutoreleasePool *pool;
+  NSUserDefaults *ud;
+  NSArray        *args;
+  NSFileManager  *fm;
+  unsigned i;
+  BOOL     doDeep = NO;
+
+  pool = [[NSAutoreleasePool alloc] init];
+#if LIB_FOUNDATION_LIBRARY
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+
+  args = [[NSProcessInfo processInfo] arguments];
+  if ([args count] < 1) {
+    NSLog(@"usage: %@ <files>", [args objectAtIndex:0]);
+    exit(1);
+  }
+  else if ([args count] == 1)
+    args = [args arrayByAddingObject:@"."];
+  
+  ud = [NSUserDefaults standardUserDefaults];
+
+  fm = [[NGLdapFileManager alloc]
+                           initWithHostName:[ud stringForKey:@"LDAPHost"]
+                           port:0
+                           bindDN:[ud stringForKey:@"LDAPBindDN"]
+                           credentials:[ud stringForKey:@"LDAPPassword"]
+                           rootDN:[ud stringForKey:@"LDAPRootDN"]];
+  fm = [fm autorelease];
+  
+  if (fm == nil) {
+    NSLog(@"could not open LDAP connection (got no filemanager).");
+    exit(2);
+  }
+  
+  // NSLog(@"LDAP: %@", fm);
+  
+  for (i = 1; i < [args count]; i++) {
+    NSString *path;
+    BOOL     isDir;
+    
+    path = [args objectAtIndex:i];
+
+    if ([path hasPrefix:@"-r"]) {
+      doDeep = YES;
+      continue;
+    }
+    
+    if ([path hasPrefix:@"-"]) {
+      i++;
+      continue;
+    }
+    
+    if (![fm fileExistsAtPath:path isDirectory:&isDir]) {
+      NSLog(@"file/directory does not exist: %@", path);
+      continue;
+    }
+    
+    if (isDir) {
+      NSArray  *dirContents;
+      unsigned i, count;
+      NSString *mid;
+      
+      dirContents = doDeep
+        ? [fm subpathsAtPath:path]
+        : [fm directoryContentsAtPath:path];
+      
+      for (i = 0, count = [dirContents count]; i < count; i++) {
+        NSString     *cpath, *apath;
+        NSDictionary *info;
+        NSString     *owner;
+        NSString     *date;
+        
+        cpath = [dirContents objectAtIndex:i];
+        apath = [path stringByAppendingPathComponent:cpath];
+        
+        info = [fm fileAttributesAtPath:apath
+                   traverseLink:NO];
+        
+        mid = [[info objectForKey:@"NSFileIdentifier"] description];
+        if ([mid length] > 39) {
+          mid = [mid substringToIndex:37];
+          mid = [mid stringByAppendingString:@"..."];
+        }
+
+        owner = [info objectForKey:NSFileOwnerAccountName];
+        date  = [[info objectForKey:NSFileModificationDate] description];
+
+        if (owner == nil)
+          owner = @"-";
+        if (date == nil)
+          date = @"-";
+        
+        /* id uid date name */
+        printf("%-34s  %20s  %-32s %s",
+               [mid   cString],
+               [owner cString],
+               [date  cString],
+               [apath cString]);
+
+        if ([[info objectForKey:NSFileType]
+                   isEqualToString:NSFileTypeDirectory])
+          printf("/\n");
+        else
+          printf("\n");
+      }
+    }
+    else {
+      /* a file */
+      NSData   *contents;
+      NSString *s;
+      
+      if ((contents = [fm contentsAtPath:path]) == nil) {
+        NSLog(@"could not get content of record: '%@'", path);
+      }
+      else {
+        s = [[NSString alloc] initWithData:contents
+                              encoding:[NSString defaultCStringEncoding]];
+        printf("%s\n", [s cString]);
+        [s release];
+      }
+    }
+  }
+
+  [pool release];
+  
+  exit(0);
+  return 0;
+}
diff --git a/sope-mime/GNUmakefile b/sope-mime/GNUmakefile
deleted file mode 100644 (file)
index 8d20362..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-include $(GNUSTEP_MAKEFILES)/common.make
-
-PACKAGE_NAME=sope-mime
-VERSION=4.3.0
-
-SUBPROJECTS = \
-       NGMime
-
-include $(GNUSTEP_MAKEFILES)/aggregate.make
diff --git a/sope-mime/NGImap4/COPYING b/sope-mime/NGImap4/COPYING
new file mode 100644 (file)
index 0000000..161a3d1
--- /dev/null
@@ -0,0 +1,482 @@
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+\f
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+\f
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+     Appendix: How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+    MA 02111-1307, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/sope-mime/NGMail/COPYING b/sope-mime/NGMail/COPYING
new file mode 100644 (file)
index 0000000..161a3d1
--- /dev/null
@@ -0,0 +1,482 @@
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+\f
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+\f
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+     Appendix: How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+    MA 02111-1307, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
index 38c65c548bfcb46caca6d738fd2be73e6bf622c6..db06b08860ff1e2be40df04db9e37abe3f50c6ef 100644 (file)
@@ -1,6 +1,6 @@
 2004-08-20  Helge Hess  <helge.hess@opengroupware.org>
 
-       * moved to sope-mime top
+       * moved to sope-mime
 
        * moved to SOPE 4.3 (v4.3.172)
 
diff --git a/sope-mime/samples/COPYING b/sope-mime/samples/COPYING
new file mode 100644 (file)
index 0000000..161a3d1
--- /dev/null
@@ -0,0 +1,482 @@
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+\f
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+\f
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+     Appendix: How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+    MA 02111-1307, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/sope-mime/samples/ChangeLog b/sope-mime/samples/ChangeLog
new file mode 100644 (file)
index 0000000..e48ddf0
--- /dev/null
@@ -0,0 +1,39 @@
+2004-08-20  Helge Hess  <helge.hess@opengroupware.org>
+
+       * moved in NGMime samples from sope-core
+
+2004-06-21  Helge Hess  <helge.hess@opengroupware.org>
+
+       * common.h: fixed compatibility with gstep-base
+
+2004-04-12  Helge Hess  <helge.hess@opengroupware.org>
+
+       * ImapListTool, ImapTool.m, imapls.m: minor code cleanups
+
+2003-05-14  Helge Hess  <helge.hess@skyrix.com>
+
+       * some gcc 3.3 warnings fixed
+
+2003-04-01  GNUstep User  <helge.hess@skyrix.com>
+
+       * ImapListTool.m: do not use NSFileIdentifier constant
+
+2003-01-07  Helge Hess  <helge.hess@skyrix.com>
+
+       * ImapQuotaTool.m, imapquota.m: fixed compilation warnings
+
+Fri Dec 27 10:54:40 2002  Helge Hess  <helge.hess@skyrix.com>
+
+       * Mime2XmlTool.m: fixed a protocol warning
+
+Mon Dec 23 15:36:01 2002  Helge Hess  <helge.hess@skyrix.com>
+
+       * ImapListTool.m: pass correct filemanager as a parameter
+
+Tue Dec 17 15:07:40 2002    <jan@skyrix.com>
+
+       * imapquota.m: add quota test
+
+2002-11-21  Jan Reichmann <jr@skyrix.com>
+
+       * added Imap-Super class, improve imapls
diff --git a/sope-mime/samples/GNUmakefile b/sope-mime/samples/GNUmakefile
new file mode 100644 (file)
index 0000000..d0af126
--- /dev/null
@@ -0,0 +1,63 @@
+# $Id$
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+TOOL_NAME = \
+       mime2xml        \
+       imapls          \
+       encoding        \
+       fmdls           \
+       testdirenum     \
+       bmlookup        \
+       test_qpdecode   \
+       eoqual          \
+       ldapls          \
+       ldap2dsml       \
+       ldapchkpwd      \
+       imapquota       \
+       testsock        \
+       httpu_notify    \
+       ical2           \
+       ical3           \
+       parserule       \
+       testurl         \
+
+ifneq ($(OBJC_RUNTIME_LIB),apple)
+TOOL_NAME += subclassing
+endif
+
+imapquota_OBJC_FILES       = ImapQuotaTool.m ImapTool.m imapquota.m
+imapget_OBJC_FILES       = ImapTool.m imapget.m
+mime2xml_OBJC_FILES      = Mime2XmlTool.m mime2xml.m
+imapls_OBJC_FILES        = ImapTool.m ImapListTool.m imapls.m
+encoding_OBJC_FILES      = EncodingTool.m encoding.m
+subclassing_OBJC_FILES   = subclassing.m
+fmdls_OBJC_FILES         = fmdls.m
+bmlookup_OBJC_FILES      = bmlookup.m
+testdirenum_OBJC_FILES   = testdirenum.m
+test_qpdecode_OBJC_FILES = test_qpdecode.m
+eoqual_OBJC_FILES        = eoqual.m EOQualTool.m
+ldapls_OBJC_FILES       = ldapls.m
+ldap2dsml_OBJC_FILES    = ldap2dsml.m
+ldapchkpwd_OBJC_FILES   = ldapchkpwd.m
+testsock_OBJC_FILES      = testsock.m
+parserule_OBJC_FILES     = parserule.m
+httpu_notify_OBJC_FILES  = httpu_notify.m
+testurl_OBJC_FILES       = testurl.m
+
+ical2_OBJC_FILES        = ical2.m
+ical3_OBJC_FILES        = ical3.m
+
+#TOOL_NAME = #pwd-check
+#pwd-check_OBJC_FILES = pwd-check.m
+
+ldapls_TOOL_LIBS     += -lNGLdap
+ldap2dsml_TOOL_LIBS  += -lNGLdap
+ldapchkpwd_TOOL_LIBS += -lNGLdap
+
+ical2_TOOL_LIBS += -lNGiCal -lSaxObjC
+ical3_TOOL_LIBS += -lNGiCal -lSaxObjC
+
+-include GNUmakefile.preamble
+include $(GNUSTEP_MAKEFILES)/tool.make
+-include GNUmakefile.postamble
diff --git a/sope-mime/samples/GNUmakefile.preamble b/sope-mime/samples/GNUmakefile.preamble
new file mode 100644 (file)
index 0000000..7bf8471
--- /dev/null
@@ -0,0 +1,21 @@
+# $Id$
+
+ADDITIONAL_INCLUDE_DIRS += \
+       -I..                    \
+       -I../NGMime             \
+       -I../NGStreams          \
+       -I../NGExtensions       \
+
+ADDITIONAL_LIB_DIRS += \
+       -L../EOControl/$(GNUSTEP_OBJ_DIR)    \
+       -L../NGExtensions/$(GNUSTEP_OBJ_DIR) \
+       -L../NGStreams/$(GNUSTEP_OBJ_DIR)    \
+       -L../NGMime/$(GNUSTEP_OBJ_DIR)       \
+       -L../NGLdap/$(GNUSTEP_OBJ_DIR)       \
+       -L../NGiCal/$(GNUSTEP_OBJ_DIR)       \
+
+
+ADDITIONAL_TOOL_LIBS += \
+       -lNGMime -lNGStreams -lNGExtensions -lEOControl \
+       -lDOM -lSaxObjC
+
diff --git a/sope-mime/samples/ImapListTool.h b/sope-mime/samples/ImapListTool.h
new file mode 100644 (file)
index 0000000..ef17636
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ImapListTool.h 4 2004-08-20 17:04:31Z helge $
+
+#ifndef __ImapListTool_H__
+#define __ImapListTool_H__
+
+#import "ImapTool.h"
+
+@class NSArray;
+
+/*
+  Supported Args:
+    -statistics YES|NO (print statistics, parsing time, memory)
+    -datasource YES|NO (use datasource or directoryContentsAtPath:)
+    -preloops   <int>  (loop n-times before running the actual fetch)
+*/
+
+@interface ImapListTool : ImapTool
+{
+  BOOL useDataSource;
+  int  preloops;
+  BOOL stats;
+}
+
+- (int)runWithArguments:(NSArray *)_args;
+
+@end
+
+#endif /* __ImapListTool_H__ */
diff --git a/sope-mime/samples/ImapListTool.m b/sope-mime/samples/ImapListTool.m
new file mode 100644 (file)
index 0000000..b4ee7b2
--- /dev/null
@@ -0,0 +1,341 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ImapListTool.m 4 2004-08-20 17:04:31Z helge $
+
+#include "ImapListTool.h"
+#include "common.h"
+#include <NGImap4/NGImap4.h>
+#include <EOControl/EOControl.h>
+#include <NGImap4/NGImap4FileManager.h>
+#include <NGImap4/NGImap4Message.h>
+
+@implementation ImapListTool
+
+/* output */
+
+- (BOOL)outputResultsAsList:(NSArray *)dirContents
+  fileManager:(NGImap4FileManager *)fm part:(NSString *)_part
+{
+  unsigned i, count;
+  NSString *path = [fm currentDirectoryPath];
+  
+  for (i = 0, count = [dirContents count]; i < count; i++) {
+    NSString     *cpath, *apath;
+    NSDictionary *info;
+    NSString     *mid;
+        
+    if (!self->useDataSource) {
+      cpath = [dirContents objectAtIndex:i];
+      apath = [path stringByAppendingPathComponent:cpath];
+        
+      info = [fm fileAttributesAtPath:apath
+                traverseLink:NO];
+    }
+    else {
+      info = [dirContents objectAtIndex:i];
+      cpath = [NSString stringWithFormat:@"%u", [(id)info uid]];
+      apath = [path stringByAppendingPathComponent:cpath];
+      //cpath = [info valueForKey:@"NSFileName"];
+      //apath = [info valueForKey:@"NSFilePath"];
+    }
+    
+    mid = [[info valueForKey:@"NSFileIdentifier"] description];
+    if ([mid length] > 39) {
+      mid = [mid substringToIndex:37];
+      mid = [mid stringByAppendingString:@"..."];
+    }
+        
+    /* id uid date name */
+    if (_part) {
+      printf("%10d ",
+             [[fm contentsAtPath:[info valueForKey:@"NSFilePath"]
+                  part:_part] length]);
+    }
+    printf("%-40s  %8s  %8i  %-32s %s",
+          [mid cString],
+          [[info valueForKey:NSFileOwnerAccountName]      cString],
+          [[info valueForKey:NSFileSize] intValue],
+          [[[info valueForKey:NSFileModificationDate]
+             description] cString],
+          [apath cString]);
+
+    if ([[info valueForKey:NSFileType]
+         isEqualToString:NSFileTypeDirectory])
+      printf("/\n");
+    else
+      printf("\n");
+
+    
+  }
+  return YES;
+}
+
+- (BOOL)outputResultsAsXML:(NSArray *)_dirContents
+  fileManager:(NGFileManager *)_fm 
+{
+  NSLog(@"XML output not implemented ...");
+  return NO;
+}
+
+- (BOOL)outputResults:(NSArray *)dirContents
+  fileManager:(NGImap4FileManager *)fm part:(NSString *)_part
+{
+  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+  NSAutoreleasePool *pool;
+  NSString *out;
+  BOOL result;
+  
+  pool = [[NSAutoreleasePool alloc] init];
+  
+  out = [ud stringForKey:@"out"];
+  if ([out length] == 0)
+    result = YES;
+  else if ([out isEqualToString:@"xml"])
+    result = [self outputResultsAsXML:dirContents fileManager:fm];
+  else if ([out isEqualToString:@"ls"]) 
+    result = [self outputResultsAsList:dirContents fileManager:fm part:_part];
+  else {
+    NSLog(@"unknown output module: %@", out);
+    result = NO;
+  }
+  [pool release];
+  return result;
+}
+
+/* ops */
+
+- (void)processFile:(NSString *)path fileManager:(NGImap4FileManager *)fm
+  part:(NSString *)_part
+{
+  /* a file */
+  NSData   *contents;
+  NSString *s;
+
+  if (_part) {
+    if ((contents = [fm contentsAtPath:path part:_part]) == nil) {
+      NSLog(@"could not get content of message: '%@'", path);
+    }
+    else {
+      s = [[NSString alloc] initWithData:contents
+                            encoding:[NSString defaultCStringEncoding]];
+      printf("%s\n", [s cString]);
+      [s release];
+    }
+  }
+  else {
+    NGImap4Message *contents;
+  
+    if ((contents = [fm messageAtPath:path]) == nil) {
+      NSLog(@"could not get message at path: '%@'", path);
+    }
+    else {
+#if 0
+      s = [[NSString alloc] initWithData:contents
+                            encoding:[NSString defaultCStringEncoding]];
+      printf("%s\n", [s cString]);
+      [s release];
+#else
+      printf("%s\n", [[contents description] cString]);
+      printf("%s\n", [[[contents bodyStructure] description] cString]);
+    
+#endif
+    }
+  }
+}
+
+- (void)processFolder:(NSString *)path fileManager:(NGImap4FileManager *)fm
+  part:(NSString *)_part
+{
+  NSAutoreleasePool *pool;
+  NSTimeInterval startTime, endTime;
+  unsigned int   startSize, endSize;
+  NSProcessInfo  *pi = [NSProcessInfo processInfo];
+  NSArray        *dirContents;
+  unsigned       i;
+  EODataSource   *ds;
+  
+  if (![fm changeCurrentDirectoryPath:path]) {
+    NSLog(@"%s: could not change to directory: '%@'", path);
+  }
+
+  ds = self->useDataSource
+    ? [(id<NGFileManagerDataSources>)fm dataSourceAtPath:path]
+    : nil;
+  
+  /* pre fetches */
+  
+  for (i = 0; i < self->preloops; i++ ) {
+    NSAutoreleasePool *pool;
+    
+    startTime = [[NSDate date] timeIntervalSince1970];
+    startSize = [pi virtualMemorySize];
+    
+    /* fetch */
+    
+    pool = [[NSAutoreleasePool alloc] init];
+    {
+      ds = self->useDataSource
+       ? [(id<NGFileManagerDataSources>)fm dataSourceAtPath:path]
+       : nil;
+  
+      dirContents = (!self->useDataSource)
+       ? [fm directoryContentsAtPath:path]
+       : [ds fetchObjects];
+    }
+    [pool release];
+    
+    /* statistics */
+    
+    endSize = [pi virtualMemorySize];
+    endTime = [[NSDate date] timeIntervalSince1970];
+    
+    if (self->stats) {
+      fprintf(stderr, 
+             "parsing time [%2i]: %.3fs, "
+             "vmem-diff: %8i (%4iK,%4iM), vmem: %8i (%4iK,%4iM))\n", 
+             i, (endTime-startTime), 
+             (endSize - startSize), 
+             (endSize - startSize) / 1024, 
+             (endSize - startSize) / 1024 / 1024, 
+             endSize, endSize/1024, endSize/1024/1024);
+    }
+  }
+  
+  /* actual fetch */
+
+  startTime = [[NSDate date] timeIntervalSince1970];
+  startSize = [pi virtualMemorySize];
+
+  pool = [[NSAutoreleasePool alloc] init];
+  
+  ds = self->useDataSource
+    ? [(id<NGFileManagerDataSources>)fm dataSourceAtPath:path]
+    : nil;
+  
+  dirContents = (!self->useDataSource)
+    ? [fm directoryContentsAtPath:path]
+    : [ds fetchObjects];
+  
+  dirContents = [dirContents retain];
+  [pool release];
+  dirContents = [dirContents autorelease];
+  
+  /* statistics */
+      
+  endSize = [pi virtualMemorySize];
+  endTime = [[NSDate date] timeIntervalSince1970];
+  
+  if (self->stats) {
+    fprintf(stderr, 
+           "parsing time: %.3fs, "
+           "vmem-diff: %8i (%4iK,%4iM), vmem: %8i (%4iK,%4iM))\n", 
+           (endTime-startTime), 
+           (endSize - startSize), 
+           (endSize - startSize) / 1024, 
+           (endSize - startSize) / 1024 / 1024, 
+           endSize, endSize/1024, endSize/1024/1024);
+  }
+  
+  /* output */
+  [self outputResults:dirContents fileManager:fm part:_part];
+}
+
+/*
+  path /INBOX/1233?part=1.2
+*/
+
+
+- (void)processPath:(NSString *)path fileManager:(NGImap4FileManager *)fm {
+  BOOL    isDir;
+  NSArray *array;
+  NSString *part;
+
+  array = [path componentsSeparatedByString:@"?"];
+
+  if ([array count] > 1) {
+    path = [array objectAtIndex:0];
+    part = [[[array objectAtIndex:1] componentsSeparatedByString:@"="]
+                     lastObject]; 
+  }
+  else
+    part = nil;
+  
+  if (![fm fileExistsAtPath:path isDirectory:&isDir]) {
+    NSLog(@"file/directory does not exist: %@", path);
+    return;
+  }
+    
+  if (isDir) {
+    [self processFolder:path fileManager:fm part:part];
+  }
+  else {
+    [self processFile:path fileManager:fm part:part];
+  }
+}
+
+/* tool operation */
+- (int)usage {
+  fprintf(stderr, "usage: imapls <pathes>?part=<part>\n");
+  fprintf(stderr, "usage: imapls <pathes>\n");
+  fprintf(stderr, "  -url        <url>\n");
+  fprintf(stderr, "  -user       <login>\n");
+  fprintf(stderr, "  -password   <pwd>\n");
+  fprintf(stderr, "  -host       <host>\n");
+  fprintf(stderr, "  -datasource YES|NO\n");
+  fprintf(stderr, "  -out        ls|xml\n");
+  fprintf(stderr, "  -statistics YES|NO\n");
+  fprintf(stderr, "  -preloops   <n>\n");
+  return 1;
+}
+
+- (int)runWithArguments:(NSArray *)_args {
+  NGImap4FileManager *fm;
+  NSUserDefaults *ud;
+  int            i;
+  
+  _args = [_args subarrayWithRange:NSMakeRange(1, [_args count] - 1)];
+  if ([_args count] == 0)
+    return [self usage];
+  
+  ud = [NSUserDefaults standardUserDefaults];
+  
+  self->useDataSource = [ud boolForKey:@"datasource"];
+  self->stats         = [ud boolForKey:@"statistics"];
+  self->preloops      = [ud integerForKey:@"preloops"];
+  
+  if ((fm = [self fileManager]) == nil) {
+    NSLog(@"could not open IMAP connection (got no filemanager)");
+    return 2;
+  }
+  
+#if 1
+  NSLog(@"IMAP: %@", fm);
+#endif
+  
+  for (i = 0; i < [_args count]; i++) {
+    [self processPath:[_args objectAtIndex:i] fileManager:fm];
+  }
+  
+  return 0;
+}
+
+@end /* ImapListTool */
diff --git a/sope-mime/samples/ImapQuotaTool.h b/sope-mime/samples/ImapQuotaTool.h
new file mode 100644 (file)
index 0000000..821eae4
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ImapQuotaTool.h 4 2004-08-20 17:04:31Z helge $
+
+
+#include "ImapTool.h"
+
+@class NSString, NSDictionary;
+
+@interface ImapQuotaTool : ImapTool
+{
+}
+
+- (NSDictionary *)getQuotaRoot:(NSString *)_folder;
+
+@end
diff --git a/sope-mime/samples/ImapQuotaTool.m b/sope-mime/samples/ImapQuotaTool.m
new file mode 100644 (file)
index 0000000..02d25ff
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ImapQuotaTool.m 4 2004-08-20 17:04:31Z helge $
+
+#include <NGImap4/NGImap4Client.h>
+#include <NGImap4/NGImap4FileManager.h>
+#include <NGImap4/NGImap4Context.h>
+#include "common.h"
+#include "ImapQuotaTool.h"
+
+@implementation ImapQuotaTool
+
+- (NSDictionary *)getQuotaRoot:(NSString *)_folder {
+  NGImap4FileManager *fm;
+  NGImap4Client      *client;
+
+  fm = [self fileManager];
+  client = [[fm imapContext] client];
+
+  return [[client getQuotaRoot:_folder] objectForKey:@"quotas"];
+  
+}
+
+@end /* ImapQuotaTool */
diff --git a/sope-mime/samples/ImapTool.h b/sope-mime/samples/ImapTool.h
new file mode 100644 (file)
index 0000000..43bfea2
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ImapTool.h 4 2004-08-20 17:04:31Z helge $
+
+#ifndef __ImapTool_H__
+#define __ImapTool_H__
+
+#import <Foundation/NSObject.h>
+
+@class NGImap4FileManager;
+
+@interface ImapTool : NSObject
+{
+  NGImap4FileManager *fileManager;
+}
+- (void)flush;
+- (NGImap4FileManager *)fileManager;
+
+@end
+
+#endif /* __ImapTool_H__ */
diff --git a/sope-mime/samples/ImapTool.m b/sope-mime/samples/ImapTool.m
new file mode 100644 (file)
index 0000000..3103262
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: ImapTool.m 4 2004-08-20 17:04:31Z helge $
+
+#include "ImapTool.h"
+#include <NGImap4/NGImap4FileManager.h>
+#include "common.h"
+
+@implementation ImapTool
+
+- (void)flush {
+  [self->fileManager release]; self->fileManager = nil;
+}
+
+- (NGImap4FileManager *)fileManager {
+  NSUserDefaults *ud;
+  NSString       *pwd, *user, *host;
+  id             url;
+  
+  if (self->fileManager)
+    return self->fileManager;
+  
+  ud = [NSUserDefaults standardUserDefaults];
+  
+  if ((url = [ud stringForKey:@"url"]))
+    url = [NSURL URLWithString:url];
+  
+  if ((user = [ud stringForKey:@"user"]) == nil)
+    user = [url user];
+  if ((pwd = [ud stringForKey:@"password"]) == nil)
+    pwd = [url password];
+  if ((host = [ud stringForKey:@"host"]) == nil)
+    host = [(NSURL *)url host];
+  
+  self->fileManager = [[NGImap4FileManager alloc] initWithUser:user
+                                                 password:pwd
+                                                 host:host];
+  if (self->fileManager == nil) {
+    if (user == nil) NSLog(@"missing login.");
+    if (pwd  == nil) NSLog(@"missing password.");
+    if (host == nil) NSLog(@"missing host.");
+  }
+  
+  return self->fileManager;
+}
+
+@end /* ImapTool */ 
diff --git a/sope-mime/samples/README b/sope-mime/samples/README
new file mode 100644 (file)
index 0000000..692d2a6
--- /dev/null
@@ -0,0 +1,26 @@
+# $Id$
+
+This directory contains sample programs for the skyrix-core libraries.
+
+Tools
+=====
+
+mime2xml    - read a MIME file and output the structure as XML
+
+imapls      - list IMAP4 server directories, sample for NGImap4FileManager
+
+bmlookup    - perform resource lookups using the NGExtensions NGBundleManager
+              class
+
+fmdls       - list directories using the NGFileManager directory-datasource
+              implementation
+
+subclassing - test runtime subclassing in the Objective-C runtime 
+              (NGObjCRuntime in NGExtensions)
+
+testdirenum - test the NGDirectoryEnumerator
+
+ldapls     - an 'ls' for LDAP directories
+ldap2dsml   - return the output of an LDAP server as DSML (directory service
+              markup language)
+ldapchkpwd  - check whether a login/password combo would be authenticated
diff --git a/sope-mime/samples/imap_tool.m b/sope-mime/samples/imap_tool.m
new file mode 100644 (file)
index 0000000..a4c2154
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: imap_tool.m 4 2004-08-20 17:04:31Z helge $
+
+
+#include "common.h"
+#include "NGImap4.h"
+
+
+int main(int argc, char **argv, char **env) {
+  NSAutoreleasePool *pool;
+  
+#if LIB_FOUNDATION_LIBRARY
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+
+  pool = [[NSAutoreleasePool alloc] init];
+
+  {
+    NSString       *login, *pwd, *host;
+    NSUserDefaults *ud;
+    NGImap4Client  *client;
+
+    ud = [NSUserDefaults standardUserDefaults];
+
+    if (!(login = [ud stringForKey:@"login"])) {
+      login = @"j";
+    }
+    if (!(pwd = [ud stringForKey:@"pwd"])) {
+      pwd = @"system";
+    }
+    if (!(host = [ud stringForKey:@"host"])) {
+      host = @"defiant";
+    }
+
+    client = [NGImap4Client clientWithHost:host];
+
+    [client login:login password:pwd];
+    NSLog(@"client %@", client);
+
+    {
+      int cnt = 0;
+      
+      while (1) {
+        NSString *action;
+        NSString *arg;
+        id       result;
+
+        action = [ud stringForKey:
+                     [NSString stringWithFormat:@"action_%d", cnt]]; 
+        arg = [ud stringForKey:
+                  [NSString stringWithFormat:@"arg_%d", cnt]];
+
+        if (![action length])
+          break;
+        
+        if ([action isEqualToString:@"select"]) {
+          result = [client select:arg];
+        }
+        else if ([action isEqualToString:@"thread"]) {
+          result = [client threadBySubject:[arg boolValue] charset:nil];
+        }
+        else if ([action isEqualToString:@"list"]) {
+          result = [client list:arg pattern:@"*"];
+        }
+        else if ([action isEqualToString:@"fetch"]) {
+          NSArray *args;
+
+          args = [arg componentsSeparatedByString:@":"];
+          result = [client fetchFrom:[[args objectAtIndex:0] intValue]
+                           to:[[args objectAtIndex:1] intValue]
+                           parts:[args subarrayWithRange:
+                                       NSMakeRange(2,[args count] - 2)]];
+        }
+        NSLog(@"action %d: %@:%@ : %@", cnt, action, arg,
+              result);
+        cnt++;
+      }
+    }
+  }
+  [pool release];
+  return 0;
+}
+
diff --git a/sope-mime/samples/imapls.m b/sope-mime/samples/imapls.m
new file mode 100644 (file)
index 0000000..87cec06
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: imapls.m 4 2004-08-20 17:04:31Z helge $
+
+/*
+  scan through imap folders/messages using the NGImap4FileManager
+*/
+
+#include "ImapListTool.h"
+#include "common.h"
+
+int main(int argc, char **argv, char **env) {
+  NSAutoreleasePool *pool;
+  ImapListTool *tool;
+  int res;
+  
+  pool = [NSAutoreleasePool new];
+#if LIB_FOUNDATION_LIBRARY  
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+  
+  tool = [[ImapListTool alloc] init];
+  res = [tool runWithArguments:
+               [[NSProcessInfo processInfo] argumentsWithoutDefaults]];
+  [tool release];
+  
+  [pool release];
+  exit(0);
+  /* static linking */
+  [NGExtensions class];
+  return 0;
+}
diff --git a/sope-mime/samples/imapquota.m b/sope-mime/samples/imapquota.m
new file mode 100644 (file)
index 0000000..847bf5a
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+  Copyright (C) 2000-2003 SKYRIX Software AG
+
+  This file is part of OGo
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id: imapquota.m 4 2004-08-20 17:04:31Z helge $
+
+
+#import "ImapQuotaTool.h"
+#include "common.h"
+
+int main(int argc, char **argv, char **env) {
+  NSAutoreleasePool *pool;
+  ImapTool *tool;
+  int res = 0;
+  
+  pool = [NSAutoreleasePool new];
+  
+#if LIB_FOUNDATION_LIBRARY  
+  [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+  
+  tool = [[ImapQuotaTool alloc] init];
+
+  {
+    NSString *str;
+
+    str = [[NSUserDefaults standardUserDefaults] objectForKey:@"path"];
+    NSLog(@"quota for path: %@", str);
+    NSLog(@"result %@", [tool getQuotaRoot:str]);
+  }  
+  [tool release];
+  
+  [pool release];
+  exit(res);
+  /* static linking */
+  [NGExtensions class];
+  return res;
+}
index 7b34819a39d82004c641f2e5867578112a585e3c..7b69b3a8992c3faf75d1320b0efebceab25e469d 100644 (file)
@@ -1,7 +1,7 @@
 # $Id$
 
-
 ADDITIONAL_INCLUDE_DIRS += -I../.. -I..
+ADDITIONAL_INCLUDE_DIRS += $(shell xml2-config --cflags)
 
 ifneq ($(GNUSTEP_BUILD_DIR),)
 ADDITIONAL_LIB_DIRS += \
@@ -10,12 +10,8 @@ else
 ADDITIONAL_LIB_DIRS += -L../SaxObjC/$(GNUSTEP_OBJ_DIR)
 endif
 
-libxml_INCLUDE_DIR := $(shell xml2-config --cflags)
 libxml_LIBS := $(shell xml2-config --libs)
 
-ADDITIONAL_INCLUDE_DIRS += $(libxml_INCLUDE_DIR)
-
-
 libxmlSAXDriver_BUNDLE_LIBS += -lSaxObjC $(libxml_LIBS)
 
 ifeq ($(GNUSTEP_TARGET_OS),cygwin32)
index 013d089ae1a303e680b912bfe96cd02e722baa14..a03b140c2c799ff0b7741d30b552340c173da27a 100644 (file)
@@ -1,5 +1,6 @@
 # $Id: README 1 2004-08-20 11:17:52Z znek $
 
+
 WebObjects
 ==========