docs/masqmail-cs

annotate masqmail.tex @ 4:1197518aa221

content about ch04
author meillo@marmaro.de
date Tue, 03 Mar 2009 13:40:07 +0100
parents 40968008fe7c
children 282b52d9de09
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@4 339 %\frame{\ft{planned was}
meillo@4 340 %
meillo@4 341 %1) purpose and structure of an MTA/of masqmail
meillo@4 342 %
meillo@4 343 %2) security analysis
meillo@4 344 %
meillo@4 345 %3) code improvements
meillo@4 346 %
meillo@4 347 %4) documentation, test, distribution
meillo@4 348 %
meillo@4 349 %With the goal to release a new version and get it into Debian
meillo@4 350 %
meillo@4 351 %}
meillo@4 352 %
meillo@4 353 %
meillo@4 354 %\frame{\ft{however, it resulted in}
meillo@4 355 %
meillo@4 356 %1) introduction
meillo@4 357 %
meillo@4 358 %2) market analysis
meillo@4 359 %
meillo@4 360 %3) mail transfer agents
meillo@4 361 %
meillo@4 362 %4) masqmail's present and future
meillo@4 363 %
meillo@4 364 %5) improvement plans
meillo@4 365 %
meillo@4 366 %Became pretty theoretic (I don't worry)
meillo@4 367 %
meillo@4 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@4 476 \input{tbl/mta-market-share.tbl}
meillo@4 477
meillo@4 478 }
meillo@4 479
meillo@4 480
meillo@4 481
meillo@4 482 \frame{\ft{comparison}
meillo@4 483
meillo@4 484 \input{tbl/mta-comparison.tbl}
meillo@1 485
meillo@1 486 }
meillo@1 487
meillo@1 488
meillo@1 489
meillo@1 490 \frame{\ft{why not sendmail}
meillo@1 491
meillo@1 492 - too large
meillo@1 493
meillo@1 494 - too complex
meillo@1 495
meillo@1 496 - structurally insecure
meillo@1 497
meillo@1 498 - simply obsolete
meillo@1 499
meillo@1 500 }
meillo@1 501
meillo@1 502 \frame{\ft{why not exim}
meillo@1 503
meillo@1 504 - too large
meillo@1 505
meillo@1 506 - designed for always online hosts
meillo@1 507
meillo@1 508 }
meillo@1 509
meillo@1 510 \frame{\ft{why not qmail}
meillo@1 511
meillo@1 512 - outdated
meillo@1 513
meillo@1 514 - designed for always online hosts with fast connections
meillo@1 515
meillo@1 516 }
meillo@1 517
meillo@1 518 \frame{\ft{why not postfix}
meillo@1 519
meillo@1 520 - too large
meillo@1 521
meillo@1 522 - not designed for masqmail's scenario
meillo@1 523
meillo@1 524 }
meillo@1 525
meillo@1 526 \frame{\ft{in summary}
meillo@1 527
meillo@1 528 - other MTAs are bad substitutes for masqmail
meillo@1 529
meillo@1 530 - though they seem to be generally able to be substitutes
meillo@1 531
meillo@1 532 }
meillo@1 533
meillo@1 534
meillo@1 535 \oneline{comments and annotations?}
meillo@1 536
meillo@1 537
meillo@1 538
meillo@1 539
meillo@1 540
meillo@1 541
meillo@1 542
meillo@1 543
meillo@1 544
meillo@2 545
meillo@2 546
meillo@2 547
meillo@2 548
meillo@2 549
meillo@2 550
meillo@2 551 \secframe{in detail: ch04 present and future}
meillo@2 552
meillo@2 553
meillo@2 554 \frame{\ft{functional requirements}
meillo@2 555
meillo@4 556 \input{tbl/func-requirements.tbl}
meillo@4 557
meillo@2 558 }
meillo@2 559
meillo@2 560 \frame{\ft{non-functional requirements}
meillo@2 561
meillo@4 562 \input{tbl/nonf-requirements.tbl}
meillo@2 563
meillo@2 564 }
meillo@2 565
meillo@4 566 \frame{\ft{work tasks}
meillo@4 567
meillo@4 568 TODO\,1: Encryption
meillo@4 569
meillo@4 570 TODO\,2: Authentication
meillo@4 571
meillo@4 572 TODO\,3: Security
meillo@4 573
meillo@4 574 TODO\,4: Reliability
meillo@4 575
meillo@4 576 TODO\,5: Spam handling
meillo@4 577
meillo@4 578 TODO\,6: Extendability
meillo@4 579
meillo@2 580
meillo@2 581 }
meillo@2 582
meillo@4 583
meillo@4 584 \frame{\ft{further development}
meillo@4 585
meillo@4 586 - improve existing code
meillo@4 587
meillo@4 588 - add wrappers and interposition filters
meillo@4 589
meillo@4 590 - redesign and rewrite from scratch
meillo@2 591
meillo@2 592 }
meillo@2 593
meillo@2 594
meillo@4 595 \frame{\ft{architecture}
meillo@4 596
meillo@4 597 \begin{center}
meillo@4 598 \includegraphics[width=0.8\textwidth]{fig/callgraph.eps}
meillo@4 599 \end{center}
meillo@2 600
meillo@2 601 }
meillo@2 602
meillo@2 603
meillo@4 604
meillo@1 605 \frame{\ft{the result}
meillo@0 606
meillo@0 607 ``one fits all'' is not possible
meillo@0 608
meillo@0 609 hence: different strategies for different goals
meillo@0 610
meillo@0 611 short-term goal: keep masqmail usable\\
meillo@0 612 \quad\quad$\rightarrow$ improve existing code
meillo@0 613
meillo@0 614 long-term goal: make masqmail future-proof\\
meillo@0 615 \quad\quad$\rightarrow$ recreate it from scratch
meillo@0 616
meillo@0 617 disadvantage: more work
meillo@0 618
meillo@0 619 }
meillo@0 620
meillo@0 621
meillo@0 622
meillo@0 623
meillo@0 624
meillo@0 625
meillo@0 626
meillo@0 627
meillo@0 628
meillo@2 629 \secframe{in detail: ch05.1 existing code}
meillo@2 630
meillo@2 631
meillo@2 632
meillo@2 633
meillo@2 634 \frame{\ft{masqmail's code base}
meillo@2 635
meillo@2 636 C
meillo@2 637
meillo@2 638 ~ 9,000 SLOC
meillo@2 639
meillo@2 640 }
meillo@2 641
meillo@2 642
meillo@2 643
meillo@2 644
meillo@2 645
meillo@2 646
meillo@2 647
meillo@2 648
meillo@2 649
meillo@2 650 \secframe{in detail: ch05.2 new design}
meillo@2 651
meillo@2 652 \frame{\ft{FIXME}
meillo@2 653
meillo@2 654 }
meillo@2 655
meillo@2 656
meillo@2 657
meillo@2 658
meillo@2 659
meillo@2 660
meillo@2 661 \secframe{HELP!}
meillo@2 662
meillo@2 663
meillo@2 664 \frame{\ft{FIXME}
meillo@2 665
meillo@2 666 }
meillo@0 667
meillo@0 668
meillo@0 669
meillo@0 670
meillo@0 671
meillo@0 672
meillo@0 673
meillo@0 674 \frame{
meillo@0 675 \vfill\vfill
meillo@0 676 \centerline{\textbf{Thanks for your attention}}
meillo@0 677 \vfill
meillo@0 678 }
meillo@0 679
meillo@0 680
meillo@1 681 \frame{\ft{links}
meillo@1 682
meillo@1 683 --all urls--
meillo@1 684
meillo@1 685 }
meillo@1 686
meillo@1 687
meillo@1 688
meillo@0 689
meillo@0 690 \frame{ \ft{software used}
meillo@0 691
meillo@0 692 Debian GNU/Linux
meillo@0 693
meillo@0 694 \LaTeX\ with the beamer classes
meillo@0 695
meillo@0 696 Vim, latexmk, and Mercurial
meillo@0 697
meillo@0 698 \vfill
meillo@0 699
meillo@0 700 {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }
meillo@0 701
meillo@0 702 }
meillo@0 703
meillo@0 704
meillo@0 705
meillo@0 706
meillo@0 707 \end{document}
meillo@0 708
meillo@0 709
meillo@0 710
meillo@0 711
meillo@0 712
meillo@0 713 \url{http://ulm.ccc.de/ChaosSeminar/2009/03_masqmail}