docs/masqmail-cs

annotate masqmail.tex @ 3:40968008fe7c

some improvements
author meillo@marmaro.de
date Mon, 02 Mar 2009 15:15:06 +0100
parents 74cc4428c074
children 1197518aa221
rev   line source
meillo@0 1 % chaos seminar talk about masqmail
meillo@0 2 %
meillo@0 3 % markus schnalke <meillo@marmaro.de>
meillo@0 4 % since 2009-02-24
meillo@0 5
meillo@0 6
meillo@0 7 \documentclass{beamer}
meillo@0 8
meillo@0 9 \title{masqmail}
meillo@0 10 \author{markus schnalke}
meillo@0 11 \date{2009-03-09}
meillo@0 12
meillo@0 13 \usepackage[utf8]{inputenc}
meillo@0 14 \usepackage{url}
meillo@0 15 \usepackage{graphicx}
meillo@0 16 \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
meillo@0 17
meillo@0 18 \newcommand{\secframe}[1]{
meillo@0 19 \section{#1}
meillo@0 20 \frame{ \vfill\vfill \centerline{ \huge #1 } \vfill }
meillo@0 21 }
meillo@0 22
meillo@0 23 \newcommand{\ft}[1]{
meillo@0 24 \frametitle{#1}
meillo@0 25 }
meillo@0 26
meillo@1 27 \newcommand{\oneline}[1]{
meillo@1 28 \frame{
meillo@1 29 \vfill\vfill
meillo@3 30 \centerline{#1}
meillo@1 31 \vfill
meillo@1 32 }
meillo@1 33 }
meillo@1 34
meillo@1 35
meillo@0 36
meillo@0 37 \begin{document}
meillo@0 38
meillo@0 39
meillo@0 40 \frame{
meillo@0 41
meillo@0 42 \vspace{8em}
meillo@0 43 \begin{center}
meillo@0 44
meillo@0 45 {\huge\bf masqmail}
meillo@0 46
meillo@0 47 a mail transfer agent for workstations and small networks
meillo@0 48
meillo@0 49 \vspace{6em}
meillo@0 50
meillo@0 51 { \tiny
meillo@0 52 markus schnalke \textless{}meillo@marmaro.de\textgreater{}
meillo@0 53 }
meillo@0 54
meillo@0 55 \end{center}
meillo@0 56 }
meillo@0 57
meillo@0 58
meillo@0 59
meillo@2 60 \secframe{about me}
meillo@0 61
meillo@0 62
meillo@2 63 \frame{\ft{markus schnalke}
meillo@0 64
meillo@2 65 \textbf{past}
meillo@0 66
meillo@2 67 Business Information Systems\\
meillo@2 68 at University of Applied Sciences, Ulm
meillo@2 69
meillo@2 70 Diploma Thesis about masqmail
meillo@2 71
meillo@2 72
meillo@2 73 \textbf{future}
meillo@2 74
meillo@2 75 Master in Informatics\\
meillo@2 76 here at University, Ulm
meillo@0 77
meillo@0 78 }
meillo@0 79
meillo@0 80
meillo@2 81 \frame{\ft{I am interested in}
meillo@0 82
meillo@2 83 Unix Philosophy
meillo@0 84
meillo@2 85 suckless software
meillo@0 86
meillo@0 87 Free Software
meillo@0 88
meillo@0 89 Debian
meillo@0 90
meillo@2 91 }
meillo@0 92
meillo@2 93
meillo@2 94
meillo@2 95
meillo@2 96 \secframe{this talk}
meillo@2 97
meillo@2 98
meillo@2 99 \frame{ \ft{overview}
meillo@2 100
meillo@2 101 1) prerequisites (xx\%)
meillo@2 102
meillo@2 103 2) about masqmail (xx\%)
meillo@2 104
meillo@2 105 3) the thesis (xx\%)
meillo@2 106
meillo@2 107 4) help me to help masqmail (xx\%)
meillo@0 108
meillo@0 109 }
meillo@0 110
meillo@0 111
meillo@0 112
meillo@0 113
meillo@0 114
meillo@0 115
meillo@2 116
meillo@2 117
meillo@3 118 \secframe{email? MTA? \dots}
meillo@2 119
meillo@2 120
meillo@2 121 \frame{\ft{What are MTAs}
meillo@2 122
meillo@2 123 MTA = Mail Transfer Agent
meillo@2 124
meillo@2 125 the post offices of email
meillo@2 126
meillo@3 127 MTAs transfer mail from senders to recipients
meillo@2 128
meillo@2 129 }
meillo@2 130
meillo@2 131
meillo@2 132 \frame{\ft{mail agents}
meillo@2 133
meillo@2 134 \begin{center}
meillo@2 135 \includegraphics[width=0.8\textwidth]{fig/mail-agents.eps}
meillo@2 136 \end{center}
meillo@2 137
meillo@2 138 }
meillo@2 139
meillo@2 140
meillo@2 141 \oneline{questions?}
meillo@2 142
meillo@2 143
meillo@2 144
meillo@2 145
meillo@2 146
meillo@2 147
meillo@3 148
meillo@3 149
meillo@3 150
meillo@3 151
meillo@3 152
meillo@0 153 \secframe{about masqmail}
meillo@0 154
meillo@0 155
meillo@0 156
meillo@0 157 \frame{ \ft{what is masqmail}
meillo@0 158
meillo@2 159 an MTA
meillo@0 160
meillo@1 161 a small one
meillo@0 162
meillo@2 163 one for special setups
meillo@0 164
meillo@0 165 }
meillo@0 166
meillo@0 167
meillo@0 168 \frame{ \ft{masqmail's niche}
meillo@0 169
meillo@0 170 non-permanent online connections
meillo@0 171
meillo@0 172 over multiple providers
meillo@0 173
meillo@1 174 especially for workstations and small networks
meillo@1 175
meillo@2 176 also notebooks
meillo@0 177
meillo@0 178 }
meillo@0 179
meillo@0 180
meillo@0 181 \frame{ \ft{history}
meillo@0 182
meillo@0 183 written by Oliver Kurth
meillo@0 184
meillo@2 185 1999 -- 2003
meillo@0 186
meillo@2 187 GPL
meillo@0 188
meillo@2 189 about 9\,000 SLOC
meillo@0 190
meillo@0 191 }
meillo@0 192
meillo@0 193
meillo@2 194 \frame{\ft{guessed}
meillo@2 195
meillo@2 196 initially written to use masqdialer-controlled online connections
meillo@2 197
meillo@2 198 thus: source of the name (``masq\dots'') (not ``\dots qmail'')
meillo@2 199
meillo@2 200 }
meillo@2 201
meillo@2 202
meillo@2 203
meillo@0 204 \frame{ \ft{masqmail today}
meillo@0 205
meillo@0 206 development stopped in 2003
meillo@0 207
meillo@0 208 not maintained
meillo@0 209
meillo@0 210 even its website is down
meillo@0 211
meillo@1 212 but included in Debian, Ubuntu, Arch, Mandriva, FreeBSD
meillo@0 213
meillo@0 214 }
meillo@0 215
meillo@0 216
meillo@0 217 \frame{ \ft{value of masqmail}
meillo@0 218
meillo@0 219 covers a niche
meillo@0 220
meillo@0 221 has unique features
meillo@0 222
meillo@0 223 has users!
meillo@0 224
meillo@0 225 }
meillo@0 226
meillo@0 227
meillo@0 228 \frame{ \ft{problems of masqmail}
meillo@0 229
meillo@0 230 no further development
meillo@0 231
meillo@0 232 unfixed bugs
meillo@0 233
meillo@0 234 emailing has changed
meillo@0 235
meillo@0 236 }
meillo@0 237
meillo@0 238
meillo@3 239 \oneline{questions?}
meillo@0 240
meillo@0 241
meillo@1 242
meillo@2 243
meillo@2 244
meillo@2 245
meillo@2 246
meillo@2 247
meillo@2 248
meillo@2 249
meillo@2 250
meillo@2 251
meillo@2 252
meillo@2 253
meillo@2 254
meillo@2 255
meillo@3 256 \secframe{when I met masqmail}
meillo@1 257
meillo@1 258
meillo@1 259 \frame{\ft{using unmaintained software}
meillo@0 260
meillo@0 261 Fall 2007: started to use masqmail
meillo@0 262
meillo@0 263 Spring 2008: realized it is unmaintained in Debian
meillo@0 264
meillo@1 265 A situation to be changed ... but by whom?
meillo@0 266
meillo@1 267 ... me? No!
meillo@0 268
meillo@0 269 }
meillo@0 270
meillo@0 271
meillo@3 272 \frame{\ft{solving two problems}
meillo@0 273
meillo@0 274 Summer 2008:
meillo@0 275
meillo@1 276 problem: find a topic for the diploma thesis
meillo@0 277
meillo@3 278 the great idea: solve both problems in once
meillo@0 279
meillo@3 280 - \textbf{use the diploma thesis to revive masqmail}
meillo@3 281
meillo@3 282 - \textbf{use masqmail to do a great diploma thesis}
meillo@0 283
meillo@0 284 }
meillo@0 285
meillo@0 286
meillo@1 287 \frame{\ft{advising professor}
meillo@1 288
meillo@1 289 Professor Sch\"affter
meillo@1 290
meillo@1 291 thanks!
meillo@1 292
meillo@1 293 }
meillo@1 294
meillo@1 295
meillo@1 296
meillo@2 297
meillo@2 298 \frame{\ft{motivation}
meillo@2 299
meillo@2 300 \textbf{motivation}
meillo@2 301
meillo@2 302 - for myself
meillo@2 303
meillo@2 304 - for the community
meillo@2 305
meillo@2 306 \textbf{thus}
meillo@2 307
meillo@2 308 - in English
meillo@2 309
meillo@2 310 - free available
meillo@2 311
meillo@2 312 }
meillo@2 313
meillo@2 314
meillo@2 315
meillo@0 316 \frame{\ft{guiding principle}
meillo@0 317
meillo@0 318 \begin{center}
meillo@2 319 \it
meillo@2 320 Do what you think is interesting,\\
meillo@2 321 do something that you think is fun and worthwhile,\\
meillo@2 322 because otherwise you won't do it well anyway.
meillo@0 323
meillo@2 324 ---Brian~W.\ Kernighan---
meillo@0 325 \end{center}
meillo@0 326
meillo@0 327 }
meillo@0 328
meillo@0 329
meillo@0 330
meillo@0 331
meillo@1 332
meillo@1 333
meillo@1 334
meillo@2 335 \secframe{the thesis in short}
meillo@0 336
meillo@0 337
meillo@0 338
meillo@1 339 \frame{\ft{planned was}
meillo@0 340
meillo@3 341 1) purpose and structure of an MTA/of masqmail
meillo@1 342
meillo@3 343 2) security analysis
meillo@1 344
meillo@3 345 3) code improvements
meillo@1 346
meillo@3 347 4) documentation, test, distribution
meillo@1 348
meillo@2 349 With the goal to release a new version and get it into Debian
meillo@1 350
meillo@1 351 }
meillo@1 352
meillo@1 353
meillo@1 354 \frame{\ft{however, it resulted in}
meillo@1 355
meillo@3 356 1) introduction
meillo@1 357
meillo@3 358 2) market analysis
meillo@1 359
meillo@3 360 3) mail transfer agents
meillo@1 361
meillo@3 362 4) masqmail's present and future
meillo@1 363
meillo@3 364 5) improvement plans
meillo@1 365
meillo@2 366 Became pretty theoretic (I don't worry)
meillo@1 367
meillo@1 368 }
meillo@1 369
meillo@1 370
meillo@1 371
meillo@1 372
meillo@0 373
meillo@0 374
meillo@0 375
meillo@0 376 \frame{ \ft{ch01: introduction}
meillo@0 377
meillo@0 378 general prerequisites
meillo@0 379
meillo@0 380 the masqmail project
meillo@0 381
meillo@0 382 value and problems of masqmail
meillo@0 383
meillo@1 384 \textbf{$\Rightarrow$ reasons to do this thesis}
meillo@0 385
meillo@0 386 }
meillo@0 387
meillo@0 388
meillo@0 389
meillo@0 390 \frame{ \ft{ch02: market analysis}
meillo@0 391
meillo@0 392 classification, life cycle, and trends of electronic communication
meillo@0 393
meillo@0 394 SWOT and trends for email
meillo@0 395
meillo@1 396 \textbf{$\Rightarrow$ show that email is expected to survive}
meillo@0 397
meillo@0 398 }
meillo@0 399
meillo@0 400
meillo@0 401 \frame{ \ft{ch03: mail transfer agents}
meillo@0 402
meillo@0 403 classification of MTAs
meillo@0 404
meillo@0 405 masqmail's competitors
meillo@0 406
meillo@0 407 short comparison
meillo@0 408
meillo@1 409 \textbf{$\Rightarrow$ provide knowledge for following chapters}
meillo@0 410
meillo@0 411 }
meillo@0 412
meillo@0 413
meillo@0 414
meillo@0 415
meillo@0 416 \frame{ \ft{ch04: masqmail's present and future}
meillo@0 417
meillo@0 418 the goal (revive masqmail)
meillo@0 419
meillo@0 420 requirements
meillo@0 421
meillo@0 422 \quad\quad fulfilled requirements
meillo@0 423
meillo@0 424 \quad\quad work to do
meillo@0 425
meillo@0 426 ways for further development
meillo@0 427
meillo@0 428 result
meillo@0 429
meillo@1 430 \textbf{$\Rightarrow$ the core of the thesis: a plan to revive masqmail}
meillo@0 431
meillo@0 432 }
meillo@0 433
meillo@0 434
meillo@0 435
meillo@1 436 \frame{ \ft{ch05: improvement plans}
meillo@1 437
meillo@1 438 more detailed descriptions of the work tasks
meillo@1 439
meillo@1 440 \textbf{$\Rightarrow$ recommendations how to do the proposed changes}
meillo@1 441
meillo@1 442 }
meillo@1 443
meillo@1 444
meillo@1 445 \oneline{questions?}
meillo@1 446
meillo@1 447
meillo@1 448
meillo@1 449
meillo@1 450
meillo@2 451
meillo@2 452
meillo@2 453
meillo@2 454
meillo@2 455
meillo@2 456
meillo@2 457
meillo@2 458 \secframe{in detail: ch03 MTAs}
meillo@2 459
meillo@2 460
meillo@1 461
meillo@1 462 \frame{\ft{MTAs}
meillo@1 463
meillo@1 464 - relay-only MTAs (forwarders): nullmailer, ssmtp
meillo@1 465
meillo@1 466 - groupware: Lotus Notes, Exchange, opengroupware.org
meillo@1 467
meillo@1 468 - ``real'' MTAs: sendmail, exim, qmail, postfix, masqmail
meillo@1 469
meillo@1 470 }
meillo@1 471
meillo@1 472
meillo@1 473
meillo@1 474 \frame{\ft{market shares}
meillo@1 475
meillo@1 476 FIXME
meillo@1 477
meillo@1 478 }
meillo@1 479
meillo@1 480
meillo@1 481
meillo@1 482 \frame{\ft{why not sendmail}
meillo@1 483
meillo@1 484 - too large
meillo@1 485
meillo@1 486 - too complex
meillo@1 487
meillo@1 488 - structurally insecure
meillo@1 489
meillo@1 490 - simply obsolete
meillo@1 491
meillo@1 492 }
meillo@1 493
meillo@1 494 \frame{\ft{why not exim}
meillo@1 495
meillo@1 496 - too large
meillo@1 497
meillo@1 498 - designed for always online hosts
meillo@1 499
meillo@1 500 }
meillo@1 501
meillo@1 502 \frame{\ft{why not qmail}
meillo@1 503
meillo@1 504 - outdated
meillo@1 505
meillo@1 506 - designed for always online hosts with fast connections
meillo@1 507
meillo@1 508 }
meillo@1 509
meillo@1 510 \frame{\ft{why not postfix}
meillo@1 511
meillo@1 512 - too large
meillo@1 513
meillo@1 514 - not designed for masqmail's scenario
meillo@1 515
meillo@1 516 }
meillo@1 517
meillo@1 518 \frame{\ft{in summary}
meillo@1 519
meillo@1 520 - other MTAs are bad substitutes for masqmail
meillo@1 521
meillo@1 522 - though they seem to be generally able to be substitutes
meillo@1 523
meillo@1 524 }
meillo@1 525
meillo@1 526
meillo@1 527 \oneline{comments and annotations?}
meillo@1 528
meillo@1 529
meillo@1 530
meillo@1 531
meillo@1 532
meillo@1 533
meillo@1 534
meillo@1 535
meillo@1 536
meillo@2 537
meillo@2 538
meillo@2 539
meillo@2 540
meillo@2 541
meillo@2 542
meillo@2 543 \secframe{in detail: ch04 present and future}
meillo@2 544
meillo@2 545
meillo@2 546 \frame{\ft{functional requirements}
meillo@2 547
meillo@2 548 }
meillo@2 549
meillo@2 550 \frame{\ft{non-functional requirements}
meillo@2 551
meillo@2 552 }
meillo@2 553
meillo@2 554 \frame{\ft{architectural requirements}
meillo@2 555
meillo@2 556 }
meillo@2 557
meillo@2 558 \frame{\ft{fulfilled requirements}
meillo@2 559
meillo@2 560 }
meillo@2 561
meillo@2 562 \frame{\ft{work to do}
meillo@2 563
meillo@2 564 }
meillo@2 565
meillo@2 566
meillo@2 567 \frame{\ft{further development}
meillo@2 568
meillo@2 569 }
meillo@2 570
meillo@2 571
meillo@1 572 \frame{\ft{the result}
meillo@0 573
meillo@0 574 ``one fits all'' is not possible
meillo@0 575
meillo@0 576 hence: different strategies for different goals
meillo@0 577
meillo@0 578 short-term goal: keep masqmail usable\\
meillo@0 579 \quad\quad$\rightarrow$ improve existing code
meillo@0 580
meillo@0 581 long-term goal: make masqmail future-proof\\
meillo@0 582 \quad\quad$\rightarrow$ recreate it from scratch
meillo@0 583
meillo@0 584 disadvantage: more work
meillo@0 585
meillo@0 586 }
meillo@0 587
meillo@0 588
meillo@0 589
meillo@0 590
meillo@0 591
meillo@0 592
meillo@0 593
meillo@0 594
meillo@0 595
meillo@2 596 \secframe{in detail: ch05.1 existing code}
meillo@2 597
meillo@2 598
meillo@2 599
meillo@2 600
meillo@2 601 \frame{\ft{masqmail's code base}
meillo@2 602
meillo@2 603 C
meillo@2 604
meillo@2 605 ~ 9,000 SLOC
meillo@2 606
meillo@2 607 }
meillo@2 608
meillo@2 609
meillo@2 610
meillo@2 611
meillo@2 612
meillo@2 613
meillo@2 614
meillo@2 615
meillo@2 616
meillo@2 617 \secframe{in detail: ch05.2 new design}
meillo@2 618
meillo@2 619 \frame{\ft{FIXME}
meillo@2 620
meillo@2 621 }
meillo@2 622
meillo@2 623
meillo@2 624
meillo@2 625
meillo@2 626
meillo@2 627
meillo@2 628 \secframe{HELP!}
meillo@2 629
meillo@2 630
meillo@2 631 \frame{\ft{FIXME}
meillo@2 632
meillo@2 633 }
meillo@0 634
meillo@0 635
meillo@0 636
meillo@0 637
meillo@0 638
meillo@0 639
meillo@0 640
meillo@0 641 \frame{
meillo@0 642 \vfill\vfill
meillo@0 643 \centerline{\textbf{Thanks for your attention}}
meillo@0 644 \vfill
meillo@0 645 }
meillo@0 646
meillo@0 647
meillo@1 648 \frame{\ft{links}
meillo@1 649
meillo@1 650 --all urls--
meillo@1 651
meillo@1 652 }
meillo@1 653
meillo@1 654
meillo@1 655
meillo@0 656
meillo@0 657 \frame{ \ft{software used}
meillo@0 658
meillo@0 659 Debian GNU/Linux
meillo@0 660
meillo@0 661 \LaTeX\ with the beamer classes
meillo@0 662
meillo@0 663 Vim, latexmk, and Mercurial
meillo@0 664
meillo@0 665 \vfill
meillo@0 666
meillo@0 667 {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }
meillo@0 668
meillo@0 669 }
meillo@0 670
meillo@0 671
meillo@0 672
meillo@0 673
meillo@0 674 \end{document}
meillo@0 675
meillo@0 676
meillo@0 677
meillo@0 678
meillo@0 679
meillo@0 680 \url{http://ulm.ccc.de/ChaosSeminar/2009/03_masqmail}