[OGo-Developer] GNUstep make tree?

Adam Tauno Williams developer@opengroupware.org
Wed, 25 Apr 2007 11:19:36 -0400


--=-pE50rPQ6uIrvLyb0g7Wc
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

> > I'm building from SVN.  I've built and installed SOPE, but when I try t=
o
> > build OGo (following possibly outdated
> > http://www.opengroupware.org/en/devs/build/ogo.html):
> > antony@myung:~/src/svn/ogo-trunk$ ./configure --enable-debug
> > error: please specify a GNUstep make tree!
> I'm going to answer myself here - is this correct or will it break?
> That path had GNUstep.sh in, which is what led me to make that guess.
> --gsmake=3D../sope-trunk/gnustep-make/

If you are thinking about trying to crank out a patch for Bug#150
(IMAP/SSL) I looked at this issue for someone a little while ago and
have some notes (which may or may not be accurate or even
understandable):
----------------------------
It looks like initWithNSURL calls the same initWithConnectionDictionary
method that OGo uses to setup an IMAP connection,  but initWithNSURL
checks for the "imaps" scheme and adds a corresponding key to the
connection dictionary...

- (id)initWithNSURL:(NSURL *)_url {
...
  if ([[_url scheme] isEqualToString:@"imaps"])
    [md setObject:[NSNumber numberWithBool:YES] forKey:@"SSL"];
...

OGo calls initWithConnectionDictionary only from
"Mailer/OGoWebMail/SkyImapContextHandler.m"

- (NGImap4Context *)imapContextWithSession:(id)_session
  password:(NSString *)_pwd login:(NSString **)login_
  host:(NSString **)host_ errorString:(NSString **)error_
{
....
  condict =3D [NSDictionary dictionaryWithObjectsAndKeys:
                            *login_, @"login",
                            _pwd  , @"passwd",
                            *host_,  @"host", nil];
  imapCtx =3D [[NGImap4Context alloc]
initWithConnectionDictionary:condict];
  [imapCtx enterSyncMode];

The "WebUI/Mailer/OGoWebMail/LSWImapMails.m" sets up the IMAP connection
with -

- (id)doLogin
 {
  self->loginFailed =3D NO;
  [self clearVars];

  [[self imapCtxHandler] prepareForLogin:self->login
                         passwd:self->passwd
                         host:self->host
                         savePwd:self->savePasswd
                         session:[self session]];

  [self initializeImapWithPasswd:self->passwd];
  [self->passwd release]; self->passwd =3D nil;

  if (![self isLogin])
    return nil;

  ASSIGN(self->tabKey, @"mail");
  return nil;
}

SkyImapContextHandler:prepareForLogin digs the settings out of the
defaults:

NSUserDefaults *defs;
defs =3D [_session userDefaults];
....
if (_host !=3D nil)
  [self _writeDefault:@"imap_host" value:_host session:_session];

It is "initializeImapWithPasswd" that looks like it actually sets up the
IMAP connection; this is the method that calls "imapContextWithSession"

So if imapContextWithSession added the SSL key to the connection
dictionary would we have encrypted IMAP?  It would seem like a useSSL:
parameter should be added to SkyImapContextHandler:prepareForLogin so
that when LSWImapMails:initializeImapWithPasswd the
SkyImapContextHandler:imapContextWithSession knows to add the SSL key;
or what value to assign the key (one assumes the key can always be added
but with a false value if SSL is not required)???

So sequence is -
LSWImapMails:doLogin
  SkyImapContextHandler:prepareForLogin
  LSWImapMails:initializeImapWithPasswd
    SkyImapContextHandler:imapContextWithSession
      NGImap4Context:initWithConnectionDictionary:=20
        * Seems to do redundant grousing about in user defaults
      NGImap4Context:enterSyncMode
 (?)
-----------------

--=-pE50rPQ6uIrvLyb0g7Wc
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQBGL3GILRePpNle04MRAtUPAJ93Zh3HnqEjLCL6ftnsVlvCAQ97uwCfbZD9
36sLEiSvYzIa7ooOkbExfXs=
=4ufN
-----END PGP SIGNATURE-----

--=-pE50rPQ6uIrvLyb0g7Wc--