File: CHANGES

package info (click to toggle)
horde3 3.1.3-4etch7
  • links: PTS
  • area: main
  • in suites: etch
  • size: 22,876 kB
  • ctags: 18,071
  • sloc: php: 75,151; xml: 2,979; sql: 1,069; makefile: 79; sh: 64
file content (1600 lines) | stat: -rw-r--r-- 76,795 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
------
v3.1.3
------

[cjh] SECURITY: Validate GET-based URL parameters provided to Horde's
      index.php.
[jan] Support importing of combined date/time fields (Bug #3116).
[jan] Log a warning if using settings that break sessions.
[jan] Fix parse error that broke SyncML synchronization (Bug #4168).
[jan] Support Kolab group ACLs (csacca@thecsl.org, Request #2270).
[jan] Fix unserialize() errors in session viewer (Bug #3586).


------
v3.1.2
------

[cjh] SECURITY: Remove unused image proxy code from dereferrer.
[cjh] SECURITY: Close XSS problems in dereferrer (IE only), help viewer and
      problem reporting screen.
[cjh] Handle errors generated during XML-RPC calls properly
      (Ben Klang <ben@alkaloid.net>, Bug #4097).
[jan] Add additional indexes to preference table (j.benoit@free.fr, Bug #4079).
[jan] Fix preference cache (Bug #4079).
[jan] Add configuration option to disable GET-based sessions.
[jan] Fix preferences access for special Kolab users (wrobel@gentoo.org,
      Bug #4049).
[mms] Fix setting default charset for non-MIME messages (Bug #3804).
[jan] Add several methods to manipulate groups and shares to Horde's API.
[jan] Return serialized PHP values through the REST interface if passing a
      restContentType parameter of 'application/x-httpd-php'.
[cjh] Only allow users to assign Share permissions for groups they are
      members of.
[jan] Allow to disable VFS backends in the applications' configurations.
[mms] Update the MIME Content-Type charset parameter in a MIME message when we
      convert the contents for viewing in the browser (Bug #3729).
[cjh] Fix Horde_Form_Type_assign javascript (Bug #3740).
[jan] Add upgrade scripts for Oracle.
[cjh] Include PATH_INFO whenever QUERY_STRING is requested in Horde::selfUrl()
      (Bug #3703).
[jan] Add generic SQL upgrade script (Daniel A. Ramaley
      <daniel.ramaley@drake.edu>).


------
v3.1.1
------

[cjh] SECURITY: Fix remote code execution vulnerability found by Jan Schneider.
[cjh] Fix export and synchronization of events across daylight saving time
      changes.
[jan] Add proper locking to mysql session handler (Bug #3660).
[cjh] ie.css is not necessary for IE7, so rename appropriately (Bug #3671).
[jan] Fix quota support for some VFS drivers (Bug #3647).
[cjh] Better Opera Mini detection (Bug #2961).
[jan] Fix menu wrapping with Kolab and Purple theme (Bug #3594).


----
v3.1
----

[cjh] Remove bogus Content-Location header in the WML Mobile renderer
      (Bug #3476).
[jan] Add option to block Kolab authentication after failed logins
      (tokoe@kde.org, Request #3474).
[jan] Allow to set height of iframe portal block (tevans@tachometry.com,
      Request #3504).
[cjh] Update ToolTips JavaScript object to allow tooltips on non-<a> elements.
[mms] Sort an IMAP_Tree object by display name, not full mailbox name.
[mas] Make sure database portability options are applied in History module.
      (Bug #3482)


--------
v3.1-RC3
--------

[jan] Make sure that Kolab users always have the same user name (Bug #1317).
[jan] Fix moving objects with Kolab drivers (tokoe@kde.org, Bug #2811).
[jan] Add reset button to image form fields.
[jan] Fix selection of default identity (Bug #3416).
[mas] Add Hebrew translation.
[mas] Add support for RFC 4314-style IMAP ACLs.
[mms] Correctly encode 7-bit MIME messages with NULL characters (Bug #3395).
[jan] Hide applications with status 'notoolbar' from options menu (Bug #3383).


--------
v3.1-RC2
--------

[jan] Add Khmer translation (Leang Chumsoben <soben@khmeros.info>).
[mms] Handle quoted text when parsing MDN requests (Bug #3340).
[ben] Better support for MS-SQL.
[jan] Show correct address in last-login message if connecting through a proxy
      (Bug #3288).
[mms] Allow admin to disable browser string checks (Bug #3282).
[jan] Correctly encode email group names (Bug #3234).
[cjh] Add a display method for hourMinuteSecond form fields (Bug #3165).
[cjh] Horde's preferences now are referred to as Global Options so the user
      doesn't need to know what Horde is, and always appear at the top of
      lists of apps for which preferences are available.
[jan] Add upgrade instructions (Kevin Myer kevin_myer@iu13.org, Bug #3222).
[cjh] Applications which do not have a config/prefs.php file no longer
      appear in lists of applications to set options for to avoid confusion.


--------
v3.1-RC1
--------

[cjh] Make the lock directory for the memcached SessionHandler configurable
      (Bug #3120).
[mms] Update Text_Flowed:: to support RFC 3676.
[cjh] Fix output escaping of Horde_Form_Type_cellphone in UI_VarRenderer_html.
[cjh] Allow choosing [None] as a database for $conf['sql'] (Bug #2754).
[jan] Add Icelandic translation (Bjorn Davidsson <bjossi@snerpa.is>).
[mms] Work around broken imap_8bit() implementation in
      MIME::quotedPrintableEncode (Bug #2975).
[mms] Add garbage collection to Horde_Cache.
[cjh] Fix Group::listAllUsers (Carlos Pedrinaci, Bug #2937).
[jan] Add high contrast theme (tmerritt@email.arizona.edu, Request #1598).
[jan] Keeps sidebar expansion state across sessions (Request #1564).
[jan] Add configuration for mail domain used for problem reports
      (dustin@ywlcs.org, Request #1376).
[cjh] Add dynamic table re-sorting through javascript.
[cjh] Inspect method signatures so that the REST driver isn't dependent on
      the order of GET parameters.
[cjh] Add horde/getPreference and horde/setPreference API methods.
[cjh] Add a list of active users and active sessions to the admin area.
[cjh] Add unobtrusive javascript tooltips based on the title attribute.
[jan] Move sidebar collapse/expand button below the menu bar (Oliver Kuhl
      <okuhl@netcologne.de>).
[jan] Add Ideas theme (Roel Gloudemans <roel@gloudemans.info>).
[cjh] Move Horde_History data to its own SQL table (Bug #2298).
[jan] Add Horde_Form_type_figlet for CAPTCHA fields with figlet fonts.
[jan] Add Horde_Form_Type_dblookup for form fields with database lookups
      (Request #322).
[jan] Add configuration to disable "About" links in help windows ("Matthew
      M. Gamble" <horde-dev@mgamble.ca>).
[cjh] Allow sending problem reports to a ticket system using the
      tickets/addTicket API call (Bug #1917).
[cjh] Define RTL styles via an additional stylesheet.
[cjh] Usability improvements to the identities management page (Bug #1846).
[ben] Add LDAP support to Group package.
[cjh] Add SMB driver to VFS package.
[cjh] Allow creation of expiring accounts in LDAP
      (Roel Gloudemans <roel@gloudemans.info>).
[cjh] Add configuration option to search for the user's DN in the Prefs_ldap
      driver (Bug #1786).
[jan] Allow to specify the objectclass for new users added through LDAP
      (Roel Gloudemans <roel@gloudemans.info>).
[jan] Add password expiration and password encryption to LDAP authentication
      driver (Roel Gloudemans <roel@gloudemans.info>).
[jan] Add permissions to restrict number of portal blocks.
[jan] Add configuration for fixed portal blocks.
[jmf] Add audio notification listener, make portal handle audio notifications
      by blocks (e.g. the IMP folder summary).
[mms] Cache certain registry data to prevent unneeded file loading/parsing
      after the initial login.
[mas] Add support for counting authenticated sessions via SessionHandlers.
[cjh] Re-work Tabs so that background images can be used in creative ways.
[jan] Add "My Account Information" block that mimics the Accounts module.
[jan] Improve rendering for right-to-left languages (Amirkabir MetaNET Ltd.).
[jan] Add support for arbitrary, non-boolean permission values.
[ben] Add alternate_login and redirect_on_logout features.
[jan] Add generic SMTP driver to Net_SMS package (Ian Eure <ieure@php.net>).
[mjr] Net_IMSP will now automatically create user's default addressbook if
      it does not already exist instead of just complaining about it.
[cjh] Add select all, none, and invert optionally to Horde_Form_Type_set
      fields (Duck <duck@obala.net>).
[cjh] Preferences overview is now built with a definition list (<dl>) styled
      with CSS.
[jan] Add sort() method to Horde_Tree class.
[mdj] Change any output of <b> and <i> tags to <strong> and <em> for better
      accessibility support.
[jmf] Allow Horde templates to include application blocks.
[jan] Add extended forecasts to weatherdotcom Block (Rick Emery
      <rick@emery.homelinux.net>).
[cjh] Allow for arbitrary attribute filters when listing or counting Share
      objects (Duck <duck@obala.net>).
[cjh] Add DataTree::getSortedTree() (Duck <duck@obala.net>).
[mjr] Support for imtest authentication added to Prefs_imsp.
[cjh] Add REST RPC driver (srrafa@usc.es, Bug #1500).
[cjh] Add support for fetching the highest and lowest ids in any DataTree
      group (Duck <duck@obala.net>).
[cjh] Add DataTree::sortByAttributes() for sorting DataTreeObjects based on
      their attributes (Duck <duck@obala.net>).
[mjr] Initial support added to Net_IMSP for imtest driver (provides persistent
      IMSP connections using Cyrus imtest utility).
[jan] Add map links to UK and Australian address fields
      (turba.list@suborbit.com, Bug #1461).
[mms] Detection of "phishing" tactics in the HTML MIME_Viewer (Todd Merritt
      <tmerritt@email.arizona.edu>, Bug #1434).
[mms] Text_Flowed package now correctly handles multibyte characters.
[mms] Maintenance confirmation pages now rendered via Horde_Template (Vilius
      Sumskas <vilius@lnk.lt>).
[jan] Allow to specify charset of imported CSV files.
[jan] Add File_CSV package.
[jan] Show application names in permissions administration.
[jmf] Allow the auth backend to request a password change, support expiring
      password in the SQL backend.
[cjh] Show menu children for every application with preferences under Options
      in the sidebar menu (Bug #1058).
[mms] Allow individual MIME_Viewers to override the Content-Disposition MIME
      parameter and force viewing inline.


-------
v3.0.11
-------

[cjh] SECURITY: Remove unused image proxy code from dereferrer.
[cjh] SECURITY: Close XSS problems in dereferrer (IE only), help viewer and
      problem reporting screen.


-------
v3.0.10
-------

[cjh] SECURITY: Fix remote code execution vulnerability found by Jan Schneider.


------
v3.0.9
------

[cjh] Fix showstopper bug in Horde_Form select fields (Bug #3123).


------
v3.0.8
------

[cjh] When deleting an identity, don't show the deleted identity
      in the default identity select dropdown on the next page load.
[cjh] Fix escaping of data in the preferences templates.
[cjh] Fix escaping of data in the data import templates.
[cjh] Fix output escaping of Horde_Form_Type_cellphone in UI_VarRenderer_html.
[cjh] SECURITY: Close several XSS problems in the share edit window.
[jan] Fix weather.com portal block.


------
v3.0.7
------

[jan] SECURITY: Fix XSS vulnerabilities in gzip/tar and css MIME viewers.
[cjh] Add missing COMMIT in MySQL SessionHandler driver
      (dgehl@inverse.ca, Bug #2731).


------
v3.0.6
------

[jan] Pass all URL parameters where linking email addresses (Request #1530).
[jan] Show Word viewer content with correct charset (sgrondin@csbf.qc.ca,
      Bug #2737).


----------
v3.0.6-RC1
----------

[cjh] Fix transactions and binary data in PostgreSQL session handler
      (cbs@cts.ucla.edu, Bug #2749, #2789).
[jan] Fix sidebar menu layout for Opera (Bug #2722).
[cjh] Add <pre> to supported help tags (vijay.mahrra@es.easynet.net,
      Bug #2633).
[cjh] Fix validation on ipaddress Horde_Form fields (Bug #2583).
[cjh] Add Auth::getAuthDomain() (Bug #2573).
[mjr] Add ability to enable/disable IMSP globally via configuration settings.
[jan] Fix calendar popup with Safari browsers (t.zell@gmx.de, Bug #2448).
[cjh] When using CGI PHP, SCRIPT_NAME may contain the path to the PHP binary
      instead of the script being run; use PHP_SELF instead (Bug #2401).
[jan] Fix sharing with groups if using group hooks (Bug #2292).


------
v3.0.5
------

[mms] Fix VFS's autocreatePath() for directory paths containing the root
      directory.
[jan] Fix cyrsql authentication driver with unixhierarchysep enabled
      (sgrondin@csbf.qc.ca, Bug #2367).
[mms] Fix nested IMAP AND searches.
[mms] In sql VFS driver, allow the use of '/' at the beginning of a path to
      indicate the base directory.
[jan] Fix returning to last page after sending problem report (Bug #2350).
[mms] Fix a bug that caused hook code to be run unnecessarily after a user
      is already logged in.


----------
v3.0.5-RC2
----------

[cjh] Fix a far-reaching DataTree bug in loading parent ids (Bug #2203).


----------
v3.0.5-RC1
----------

[jan] Add Bosnian translation (Vedran Ljubovic <vljubovic@smartnet.ba>).
[cjh] Let Horde_Tree handle all indent calculation based on parent/child
      relationships (Bug #2198).
[cjh] Add initial LDAP SessionHandler driver.
[cjh] Use row-level locking or transactions where possible to avoid
      session corruption in SessionHandler (Bug #1580).
[mms] Add the memcached SessionHandler:: driver (Rong-En Fan <rafan@csie.org>).
[mms] Fix verification of MIME strings with escaped quotes (Bug #2168).
[jan] Fix generation of free periods in free/busy code with overlapping events.
[jan] Don't show Options button in problem reporting page.
[jan] Add Util::realPath() method.
[mas] Include version numbers for applications on Admin Setup screen. (Bug
      #1420)
[mas] Change IMAP Auth driver to use imap/notls by default in non-DSN mode to
      match DSN mode.
[mas] Add tls and self-signed certificate configuration options to IMAP Auth
      driver. (Bug #1357)
[cjh] Recognize Opera 8+ as providing advanced features (Bug #2066).
[cjh] Fix reading of binary files on Windows in VC_svn (Bug #2036).
[mas] Fix SQL 'LIKE' case-insensitive comparison. (Bug #2030)
[jan] Allow charset aware IMAP searches.
[jan] Fix Google search block for non-ascii characters (Bug #1329).
[jan] Add quick-install instructions.
[jan] Improve performance of several framework packages.
[mms] Fix MIME_Contents:: caching in PHP 5 (Bug #1410).
[jan] Fix VC SVN backend to support user names with spaces
      (shimmanning@gmail.com, Bug #1919).
[cjh] Escape HTML in identity names (Bug #1910).
[mas] Use updated PostgreSQL function names.
[ben] Update application list in horde's LDAP schema
[cjh] Enforce maxlength restrictions in Horde_Form validation (Bug #1895).
[jan] Disable weather.com Block if not configured.
[cjh] Include sourceroot in VC cache keys (Bug #1783).
[jan] Add SQL script and instructions for MSDE databases (Bugs #1862, #1870,
      jeff@image-src.com).
[jan] Allow portal blocks to be larger than two column/rows (Bugs #1189, 1632).
[jan] Add SMTP authentication to problem reporting (Bug #1128).
[jan] Support help files in admin directory with translations.php (Bug #1344).
[jan] Fixed SQL binding for ODBC and MSSQL drivers (Bug #1816).
[jan] Add configuration option to set location of MIME magic database.
[mms] Make sure headers in a MIME_Part are encoded with the same character
      set used in that MIME_Part (Bug #1591).
[mms] Add List-Headers listed in RFC 2369 to the list of MIME Headers that
      can only appear once in a single header (Bug #1766).
[cjh] Fix typo in parsing of FREEBUSY data (Bug #1590).
[jan] Support SQLite and Oracle in all SQL backend configurations.
[cjh] Use bind variables in the Auth, VFS, and SessionHandler SQL drivers,
      and in scripts/remove_prefs.php (selsky@columbia.edu, Bugs #1665,
      #1666, #1667, #1668, #1677).
[cjh] session_set_cookie_params() expects a relative timeout; setcookie wants
      absolute. Go back to a configinteger for $conf['session']['timeout'] and
      add time() to that value in setcookie() calls (Bugs #1302, #1658).
      THIS MAY BREAK CONFIGURATIONS SET TO USE PHP CODE. MAKE SURE TO UPDATE
      YOUR $conf['session']['timeout'] SETTING AFTER UPGRADING.
[cjh] Use bind variables in the Prefs and Token SQL drivers
      (selsky@columbia.edu, Bugs #1652, #1653).
[mms] Prune expanded folders that no longer exist in IMAP_Tree (Bug #1517).
[cjh] Don't try to compress output if ZPS compression is on (Bug #1626).
[cjh] If an app only has one prefGroup, always show that prefGroup instead
      of showing an overview screen with only one entry.


------
v3.0.4
------

[cjh] Use fully qualified URLs in the AnselImage HTMLArea plugin (Bug #1259).
[cjh] SECURITY: Close XSS when setting the parent frame's page title by
      javascript.
[blc] Add PostgreSQL upgrade script (Brad Witte <brad@distanthaze.com)
[cjh] Avoid division by zero if all preferences are locked (Bug #1627).
[jan] Fix sidebar refreshing with Opera.


----------
v3.0.4-RC2
----------

[jan] Improve "login" authentication driver (Bug #1571).
[jan] Show database specific connection parameters in global SQL configuration
      too.
[jan] Fix left menu overflow in IE and Safari (Bug #1526).
[jan] Fix autocreating of directories and updating of existing files in the
      sql_file VFS driver (eddie@omegaware.com, Bugs #1552 and #1553).
[jan] Make wrapping menus visible with Gecko 1.4 browsers (e.g. Netscape 7.1).
[jan] Use SQL binding for some DataTree operations.
[jan] Fix DataTree SQL support for Oracle.
[jan] Fix SQL configuration for Oracle.
[mms] Make sure VFS garbage collection is done recursively.


----------
v3.0.4-RC1
----------

[jan] Add Horde_Tree_select class (Ben Chavet <ben@horde.org>).
[mjr] Fix Net_IMSP to properly handle multiple lines in addressbook fields.
[jan] Fix MIME decoding of strings that contain "%" in multibyte sequences
      (Bug #1423).
[cjh] Control space under the menu bar with a themeable style (Bug #1421).
[cjh] Fix Horde_Tree with the multiline option so that row styles extend over
      the whole height of the row.
[cjh] If configuration files that have a .dist version are missing,
      Horde_Test::configFilesMissing() will copy the defaults over if Horde
      can write to the filesystem (Bug #1015).
[cjh] Fix AnselImage HTMLArea plugin (Bug #1470).
[cjh] Just retrieve uid when listing users in the LDAP Authentication driver.
[cjh] Add choraPrefs to the hordePerson LDAP schema (Bug #1452).
[cjh] 'rootdn' is not required for LDAP preferences (Bug #1453).
[mms] Fix IMAP thread creation when the base level contains more than one
      message.
[jan] Allow vCards with lowercase field descriptors.
[jan] Improve tar/gzip MIME viewer to better show unzipped content.
[mjr] Better error handling in Net_IMSP.
[mms] Speed improvements and sorting fixes for IMAP_Tree.
[mms] IMAP_Tree now handles non-uppercased 'INBOX' strings returned from the
      mail server (Bug #199).
[mms] Rebuild certain internal MIME_Part data when retrieving from a cache.
[jan] Show database specific connection parameters in configuration screen.
[mms] IMAP_Tree now correctly updated when subscribing/unsubscribing from a
      mailbox (Bug #1111).
[mms] Make IMAP searches of non-"standard" headers work with the NOT directive
      (Bug #1368).
[jan] Fixed double line numbers in Source-highlight MIME viewer (Bug #1383).
[mms] Fix IMAP_Thread when dealing with the first message in the mailbox
      (Bug #1257).
[cjh] Fix menu heights in Safari.
[jan] Catch errors from configuration files to avoid blank pages.
[jan] Support mime_magic extension again if fileinfo is not present.


------
v3.0.3
------

[mjr] Net_IMSP now correctly handles addressbook names containing spaces
      (Bug #1286).
[cjh] Implement clear() in the LDAP prefs driver (Bug #1335).
[cjh] Don't list uninstalled applications as initial_application options
      (Bug #1324).
[jan] Fix postauthenticate hook, not completely denying access after a failed
      login (Bug #1320).
[jan] Checkboxes in portal block setup forms are correctly checked now
      (Bug #1247).
[mms] Allow IMAP searches to work on headers with multiple entries
      (kolb@bitlab.hu) (Bug #1330).
[mms] Correctly sort INBOX subfolders in IMAP_Sort (Bug #1291).
[cjh] Turn off Form Tokens in the configuration interface.
[jan] Sort user and group lists in permissions interface (Bug #1305).
[jan] Allow to enter PHP code in the session timeout configuration (Bug #1302).


----------
v3.0.3-RC1
----------

[mms] Fix bug in Text_Flowed where unquoted lines could not be flowed.
[cjh] Fix logic problems with the MySQL and OCI8 session handlers that
      prevented them from handling restarting a session cleanly (Bug #1097).
[cjh] Fix persistence of $conf['mailer']['params']['auth'] in the Setup UI
      (Bug #1287).
[jan] Improve performance of DataTree operations like reading email message
      histories.
[jan] Log successful logins and logouts with the NOTICE level (Vilius Sumskas
      <vilius@lnk.lt>).
[cjh] Encode HTML entities in Horde_Form_Type_longtext display (Bug #1267).
[mms] Fix session handling to ensure variables are persistent across function
      calls (Gary Windham <windhamg@email.arizona.edu>).
[mms] Improvements to WebCPP MIME_Viewer rendered output.
[mms] More fixes for URLs with '&amp' when passing through the sanitizer.
[jan] Make wrapping menus looking nicer in Gecko and KHTML based browsers.
[jan] Fix MIME viewer for gzip files that don't contain tar files.
[cjh] Fix visibility of <a > tags inside smallheader blocks for the Cornflower
      theme (Bug #1206).
[cjh] Do not cache javascript served via services/javascript.php (Bug #1140).
[cjh] Fix management of categories that contain quotes (Bug #1202).
[cjh] Handle addresses that are already surrounded by quotes in
      MIME::_rfc822Encode() (Bug #1143).
[cjh] Fix VC_svn's handling of directory names with spaces (Bug #1123).
[cjh] Fix caching logic that was causing VC to not properly refresh objects in
      a timely manner.
[jan] Allow to set fixed table cell widths in WYSIWYG editor.


------
v3.0.2
------

[cjh] Make sure not to throw errors when bad emails are supplied in
      services/problem.php (Bug #1070).
[jan] Fix wrong charset of refreshed menu frame if not using UTF-8 (Bugs
      #1052, #1055).
[jan] Fix left menu tree collapsing after each refresh (Bug #1072).
[jan] Fix sidebar being loaded twice if not using cookies (Bug #1076).


------
v3.0.1
------

[jan] Test for session.auto_start.
[mms] Fix parsing of header with undisclosed-recipients (Bug #1057).
[cjh] Add a browser quirk for browsers that don't support overflow:hidden in
      table cells (KHTML).
[jan] Fix application links if not using cookies (Bug #1029).
[mms] Fix disabling of maintenance confirmations (Bug #1027).
[cjh] Fix alignment of Help window header in MSIE (Bug #1023).
[cjh] Fix the Horde_Block graphics to be indexed, not grayscale (Bug #1051).
[cjh] SECURITY: Close several XSS vulnerabilities.
[mms] Make sure external URL's work correctly when the URL contains '&amp' as
      the delimiter.
[cjh] Fix infinite loop with Auth_application driver (Bug #1004).
[cjh] Never set an empty Horde_Tree cookie (Bug #1022).
[mms] Fix displaying of folders in IMAP_Tree:: for IMAP servers that don't use
      'INBOX' as their delimiter (Bug #1014).
[cjh] HORDE_MENU_MASK_NONE now really means only explicitly added menu items
      are displayed.
[cjh] Ignore H3 in version comparisons (Bug #1017).
[cjh] DataTree_null now stubs out the full DataTree API to avoid fatal errors
      when not using a permanent backend.
[jan] Fix deleting of identities (Bug #1018).


----
v3.0
----

[cjh] Try to catch dangerous URLs in the dereferrer (go.php).
[cjh] Improve tree graphics for right-to-left languages (Vahid Ghafarpour
      <vahid@ghafarpour.com>).
[mms] Fix IMAP_Tree display if folder contains the text 'pop3'.
[cjh] Fix the Horde_Form date picker popup in Konqueror/Safari (Bug #963).
[jan] Spaces in tree views with Internet Explorer have been fixed.


--------
v3.0-RC3
--------

[cjh] Always reload frameset after logging in (Bug #814).
[cjh] Fix menu rendering for IE 5.0/Mac.
[cjh] Turn off PNG transparency for IE by default.
[cjh] Allow to pass an array of attributes to Horde::img().
[cjh] Allow to set a password for the auto authentication driver.
[jan] Add option for null driver to mailer configuration.
[jan] Fix configuration of ZPS cache.
[jan] Fix some javascript errors with IE 5.0.
[cjh] The "Horde Purple" theme is now simply another theme that inherits from
      the global CSS settings, instead of being both the parent theme as well
      as a user-chooseable option.  The default graphics are now in a
      top-level themes/graphics directory as well for use by all themes.


--------
v3.0-RC2
--------

[jan] Show tab with the field that didn't validate on submitted forms.
[mms] Add a generic MIME_Viewer that will display the raw text of text/*
      parts that we do not have a specific viewer for.


--------
v3.0-RC1
--------

[cjh] Use HORDE_MENU_MASK_* constants for determining what links are shown
      on menus.
[jan] Create default parameters when adding a new block to the portal.
[mms] Autodetect exact version of IE (5.0+) on login and turn off compression
      only for buggy versions.
[cjh] Use an IE behavior for handling alpha transparency with PNG images
      instead of an onload handler.
[mms] Allow all folders to be pre-fetched when intializing IMAP_Tree::.
[mms] Added extensions to the form renderer for the file selection API.
[cjh] Render all menus as <ul> tags, formatted with CSS.
[mms] Added example of _imp_hook_spam_bounce to config/hooks.php.dist.


---------
v3.0-BETA
---------

[cjh] Allow to insert images from galleries in the WYSIWYG HTML editor (Duck
      <duck@obala.net>, Roel Gloudemans <roel@gloudemans.info>).
[mdj] All Horde icons changed from GIF to PNG.
[mdj] Add /themes directory and group all of each theme's files under a subdir
      of this directory.
[jan] Switch from dynamic to static CSS files.
[mms] Add support for Message Disposition Notifications (RFC 2298).
[jan] Add TableOperations, ContextMenu and ListType plugins to rich text
      editor.
[jan] Add DataTree browser to admin interface.
[cjh] The Horde_Cache:: API has been completely rewritten to take
      advantage of the new ZPS4 api for content caching, which allows
      a more familiar caching API overall. The old zps driver has been
      dropped because of this.
[jan] Add Persian (Western) translation (Vahid Ghafarpour
      <vahid@ghafarpour.com>).
[jan] Drop usage of arg_separator.output.
[jan] Make sidebar width a preference (Rick Emery <rick@emery.homelinux.net>).
[cjh] The Prefs_sql driver now uses DB::prepare/DB::execute for better support
      of large fields on database backends such as Oracle.
[cjh] Support custom field mappings in CSV exports, and add an Outlook export
      type.
[cjh] The Horde sidebar menu is now built with Horde_Tree.
[jan] SECURITY: Close an XSS hole in the HTML viewer, a variation to the one
      reported in http://www.greymagic.com/security/advisories/gm005-mc/.
[jan] Add configuration option to enable SSL for logins only.
[jan] Remove share type (private/public).
[jan] Add framework to clear out user data, e.g. when removing users.
[jan] Add access keys.
[jan] Don't require blocks to be registered in the applications' APIs.
[cjh] Introduce a '_default_' color and better handling of user-specified
      Unfiled colors.
[jan] Allow themes to use their own icon sets.
[cjh] Categories and category color labels are now handled globally by Horde,
      and provided to all applications that use them.
[jan] Identities are now managed with the preferences code and can be accessed
      from every application.
[mms] Handle RFC 2231 encoded parameter values.
[mms] Add IMAP_Sort class to provide sorting for IMAP mailbox lists.
[jan] Add user management to IMAP authentication driver.
[jan] Add IMAP_Admin class to manage IMAP mailboxes.
[mms] Added a generic text/html MIME_Viewer driver for all Horde applications
      that attempts to sanitize malicious code hidden in HTML.
[mms] Added a generic message/rfc822 MIME_Viewer driver.
[cjh] Remove HORDE_LIBS constant and assume libraries are in the include_path.
[jan] Add searching and paging to the user administration interface (Joel
      Vandal <jvandal@infoteck.qc.ca>).


----------
v3.0-ALPHA
----------

[jan] Access keys are no longer generated automatically but defined by the
      developers and translators.
[cjh] The new services/prefs.php file is now the only UI page necessary
      for preferences for all applications - all app/prefs.php files
      are now obsolete.
[cjh] Prefs::getPref() has been deprecated and is no longer present.
[cjh] Horde::, Registry::, and the last of the libs that are moving should be
      moved to framework packages now.
[cjh] Editor::, Menu.php, NLS::, and Signup.php have all been moved to
      framework packages.
[mms] Moved the IMAP Tree generation class from IMP to framework so it can
      be used by other applications.
[mdj] Setup now has a more informative format. The CVS version tag is copied
      from the conf.xml file into the conf.php file so that it be used to warn
      which applications need their conf updated.
[cjh] Use javascript to autodetect whether or not the frameset is present.
[cjh] Horde_History, Horde_Links, and Horde_Search have been moved to
      framework packages.
[cjh] Allow apps including horde/lib/base.php to specify that a different
      registry application should actually be pushed onto the Registry
      application stack. This lets the fiction of problem.php being its
      own application play nicely with the new permissions checking.
[cjh] The new application permissions checking has been modified to
      allow access to all authenticated users by default, and to deny
      guest access by default. All variations on that must be set
      explicitly.
[cjh] Remove the Guest Services link; it's been obsoleted by
      $conf['menu']['always'].
[cjh] Various $no_auth and $self_contained_auth flags have been standardized
      into an AUTH_HANDLER constant, which if defined signals the application
      that it should not check permissions upon calling $registry->pushApp(),
      as the calling script will handle that itself, or is a system-level cron
      job/script/etc.
[cjh] Add an option to $registry->pushApp() to specify whether or not to check
      application permissions.
[cjh] The 'allow_guests' setting, and $registry->allowGuests(), have been
      removed in favor of Horde_Perms application permissions.
[mms] Added the text/richtext MIME_Viewer.
[jan] Instantiate the global Perms object in Registry.php.
[cjh] Category has been moved to a framework package, and also renamed
      to DataTree so that it has a more intuitive name for the API.
[jan] Add Indonesian language (Slamin <slamin@unej.ac.id>).
[jan] Add Auth_login class.
[jan] Add Horde::externalUrl().
[mdj] Perms is now a globally available object, set by the registry's
      loadPerms().
[jan] Add "About" page for the help system.
[jan] Add SOAP server to RPC framework.
[cjh] Move PrefsUI to Prefs/UI.php for package consistency.
[mms] Added NLS_GeoIP:: to do Hostname -> Country lookups.  NLS:: will do
      lookups by default now using country TLD codes.
[mir] Add preprocess hook for Signup system.
[jan] Move Horde_CLI, Horde_Cache, Horde_Cipher, Horde_Compress,
      Horde_Token and Horde_Util packages to the framework module.
[cjh] Reorganize a number of files from the top level and from util/ into a
      new services/ directory and a number of services/* subdirectories.
      This should give us a better base for expanding the services provided
      by the core Horde module in the future.
[max] Add support for <b> and <i> tags to the Help xml parser.
[cjh] Add the Horde_History API, for storing timestamped events for
      arbitrary objects.
[cjh] Horde_Template now allows if: conditions on array values
      (Nuno Loureiro <nuno@co.sapo.pt>).
[jan] The administrator can now force the default language in nls.php
      (Etienne Goyer <etienne.goyer@linuxquebec.com>).
[mdj] Horde_Form now supports setting of a help icon linked to help.xml.
[cjh] mime_mapping.php is no longer a config file; replaced with
      mime.mapping.php inside the MIME package.
[cjh] Add Google search applet (Joe Wilson <joe.wilson@mindcandy.org>).
[jan] UTF-8 support is enabled by default now.
[jan] Themes are now automatically read from the config/themes directory.
[cjh] Add support for other kinds of servers and other kinds of responses to
      rpc.php and the RPC:: API.
[jwm] Add support for approving queued signup applications.
[cjh] Groups can now have an email address associated with them.
[cjh] Make Horde-level Blocks configurable through the registry, allowing
      easier adding of new blocks (Joe Wilson <joe.wilson@mindcandy.org>).
[cjh] CategoryTree is now deprecated in favor of Horde_Tree.
[cjh] Move the admin permissions and groups pages to use Horde_Tree.
[max] Add _comparePasswords() function to Auth_sql to correctly compare
      all crypted passwords similar to the Passwd module.
[max] Add crypt-des (which is the same as crypt), crypt-md5, and crypt-blowfish
      encryption types, to match Passwd module.
[max] Add optional show_encryption param to Auth_sql, to match Passwd module.
[mms] Added IP Address check to Auth::authenticate() to increase security.
[jan] Remove NLS::decimalFromLocale() and NLS::decimalToLocale().
[cjh] Horde_VFS:: is now VFS:: again, and has no external Horde dependancies.
[cjh] Round out the various shell tools with a command shell.
[cjh] Add sidebar.php and appropriate prefs entries for using Horde with the
      menu as a Mozilla sidebar.
[mms] Add IMAP_Cache:: class to handle cached IMAP server data.
[cjh] Make getCategoriesByAttributes() much more sophisticated - it can
      now handle a pretty much arbitrary logic tree - and use it to optimize
      Horde_Share::listShares().
[cjh] Add getCategoriesByAttributes(), and use it in
      Group::getGroupMemberships().
[cjh] Add code that lets a CategoryObject subclass define a mapping from its
      internal data to the new horde_category_attributes table.
[mms] IMAP_Search:: now uses a IMAP_Search_Query:: object to build the
      actual IMAP search.
[mms] Added a secure delete temp file option that will overwrite any temp file
      with random data before unlinking.
[jan] Add Lavender theme (Ziaur Rahman <zia@qalacom.com>).
[cjh] Horde_Template:: is now capable of translating text inside
      <gettext></gettext> tags.
[cjh] Horde_Mobile:: now properly supports multiple submit elements in forms.
[mac] Add generic Cyrus auth driver, Auth_cyrus.
[mac] Add optional encryption param to Auth_sql, to match Passwd module.
[jan] Add new hooks (replacing _horde_hook_username) to convert user names
      from the backend to Horde and back.
[cjh] Add a new API call, Auth::isAuthenticated($realm = null), for
      determining whether or not a user is logged in to the current
      realm (by default null). Auth::getAuth() is still used to get
      the current user, but now you don't need to know the auth realm
      to get the current user - just to check authentication.
[cjh] DHTML date picker now opens right over the image used to anchor it.
[cjh] The last_login preference is now entirely handled by Horde.
[mms] Add Horde_Test:: class/templates to aid in creating test.php scripts.
[mms] Move complex IMAP searching code from IMP_Search:: to IMAP_Search::.
[cjh] Re-work the Horde LDAP schema bits to be more correct and
      consistent (Adam Tauno Williams <adam@morrison-ind.com>).
[mms] Add DOM tooltip capability via Horde::linkTooltip().
[mms] Add garbage collection class (Horde_VFS_GC::) for VFS.
[mms] Add timeout to PGP keyserver lookup.
[cjh] Add navigation for previous/next preferences block in PrefsUI
      (Mathieu CLABAUT <mathieu.clabaut@free.fr>).
[cjh] Add Horde_Links API (j.huinink@wanadoo.nl).
[cjh] Add more introspection, in the form of getContentType() and
      getLink(), to the Horde_Image:: API.
[cjh] Add util/cacheview.php for viewing any data with a Content-type
      put into the cache.
[cjh] Add Horde_Cache::cacheObject() for use in caching the results of
      non-static object methods.
[cjh] Rename Cache:: to Horde_Cache::.
[cjh] Move Cache_session:: to Horde_SessionObjects::.
[mms] Added Horde::extensionExists() to cache extension_loaded() calls.
[cjh] Add NLS::decimalToLocale() and NLS::decimalFromLocale() to handle
      converting between different decimal point separators.
[cjh] Added MIME_Headers::.
[mms] Moved gzip and tar file handling to Horde_Compress_*:: modules.
[mms] Moved ZIP handling to the Horde_Compress_zip:: module.
[mms] Moved TNEF handling to the Horde_Compress_tnef:: module.
[mms] Added Horde_Compress:: API - used to compress/decompress data.
[mdj] Added the DOM calendar date picker to Horde_Form, based on work by
      Mike Cochrane <mike@graftonhall.co.nz> and Brian Keifer
      <brian@valinor.net>.
[mms] Added multipart/report MIME_Viewer::.
[mms] Added MIME::generateMessageID() to generate MIME-compliant message IDs.
[cjh] Add command-line setup.php script. Right now, this only generates/updates
      configurations; you cannot *edit* a configuration with it.
[jan] Add String:: class with locale/charset safe string functions.
[mms] Added Horde::authenticationFailureRedirect().
[mms] Added Browser::escapeJSCode() to escape certain characters in
      javascript code depending on the browser type.
[jan] Add NLS::strtolower() and use it everywhere where locale independance
      is necessary.
[jan] Add Turkish translation (Genco Yilmaz <gencoyilmaz@yahoo.com>).
[mms] Add 'link' parameter to the preferences config to allow for help links
      to be added to the preferences pages.
[mms] Another Maintenance:: rewrite - now store all data in the cached
      Maintenance_Tasklist object.
[mms] Added check to Prefs:: to ensure the data stored does not exceed the
      maximum storage size of the preferences storage system.
[jan] Add UTF-8 support. Any content with any charset can now be displayed with
      any translation.
[mms] Add NLS::checkCharset() to determine whether a given character set is
      valid on the current system.
[cjh] Deprecated Registry::includeFiles() and Registry::shutdown().
[mms] Add support in MIME_Magic:: to use the UNIX file function to determine
      the MIME type of unknown files.
[mms] Added an example cron script to delete old temporary files.
[mms] Correctly get charset information for MIME_Parts in MIME_Structure.
[mms] Rewrote MIME_Message to extend MIME_Part.
[cjh] Add ordering extensions to the Category:: framework
      (Marko <marko@oblo.com>).
[cjh] Add a simple template engine, derived from bTemplate,
      for Horde applications to use.
[cjh] Add Auth_yahoo:: which lets you have no local auth and rely on
      Yahoo! mail usernames.
[mms] Moved Server configuration checking functions to Server::.
[cjh] The user admin page can now set fullname and from_addr preferences
      for any user as long as the Auth backend is capable of at least
      listing users (doesn't have to be able to update them).
[cjh] Share:: is now Horde_Share::, and is reworked to hold permissions
      internally. We can now assign group/default/guest permissions
      more easily.
[jan] Add RPC::parseUrl().
[jan] Add RPC based remote summaries.
[cjh] Add a SQL Shell to the Horde admin section.
[cjh] Don't prefix Horde admin menuitems with "Horde" to save space.
[cjh] Horde_Form:: forms now use the Horde_Token:: API by default to
      make sure that they cannot be reloaded.
[cjh] Rename Token:: to Horde_Token:: for future packaging.
[jan] Add Registry::listAPIs() and Registry::listMethods().
[cjh] The Perms:: system now supports default and guest permissions.
[cjh] Applications can now provide individual registry methods, not just whole
      interfaces. Applications can override a single method out of an interface
      as well - an app providing a mail/filter while IMP provides mail/*, e.g.
[cjh] Renamed FormSprocket:: to Horde_Form:: and GraphSprocket:: to
      Horde_Graph:: for consistency and future PEAR packaging.
[mir] Added example of _imp_hooks_fetchmail_filter to config/hooks.php.dist
[mms] Added the MIME_Contents:: class; functions to help in the output
      of MIME content.
[cjh] Rewrite the Category:: system to allow multiple leaves with the same
      name (as long as they have different parents) and rewrite everything
      (Perms::, Group::, Share::, etc.) to use it.
[cjh] Move _fileCleanup() into Horde:: as Horde::deleteAtShutdown(),
      and add Horde::_deleteAtShutdown() to do the actual deleting.
[cjh] Initial support for configuring the summary screen
      (Eric Rechlin <eric@hpcalc.org>).
[cjh] Add a system for defining generic hooks for any preference.
      See horde/config/hooks.php.dist for lots of examples and docs.
[cjh] Add a colorpicker utility to Horde
      (Michael Cochrane <mike@graftonhall.co.nz>).
[cjh] Add a guest services entry page and links to it from all
      login pages.
[jan] Add translation helper script.
[mms] Stylesheet link generation handled by Horde::stylesheetLink().
[cjh] Add the new Config:: API and setup.php, a system which reads
      configurations from XML files and existing conf.php files,
      taking care of merges and adding new parameters. Currently we
      have a web wizard.
[cjh] css.php now supports loading CSS classes for multiple applications.
[mms] Removed the SessionCache class. Equivalent code is now available in
      the Cache_session:: class.
[mms] Added IE broken-browser downloading code to Browser::.
[mms] Added a session driver to Cache::.
[cjh] Rename config/horde.php to config/conf.php.
[cjh] Move cookie_domain, cookie_path, server_name, and server_port into
      horde/conf.php.
[cjh] Add a parameter for setting the session cache_limiter.
[cjh] Add MIME_Viewer_text to Horde.
[cjh] Rewrite all factory/singleton methods to allow individual applications
      to provide a custom backend, and to allow sites to provide custom
      backends in their include_path settings.
[mms] Handling of Content-Type parameters moved to MIME_Part from MIME_Message.
[mms] Crypt_pgp:: can now upload keys to a public keyserver.
[mms] Renamed the Lang:: class to NLS:: and moved the timezone setting
      method into it.
[mms] The local timezone can now be set via the Horde::setTimezone() call.
[mms] All browser headers for downloading a file have been moved to the
      Browser:: class.
[cjh] Add files to util to support embedding a GUI editor into our pages.
[mms] MIME:: no longer exports $mime_types and $mime_encodings as global
      variables - rather, MIME::type() and MIME::encoding() should be used.
[mms] The tgz MIME_Viewer now lists all files without using an external helper
      program (Michael Cochrane <mike@graftonhall.co.nz>).
[mms] The rar MIME_Viewer now lists all files without using an external helper
      program (Michael Cochrane <mike@graftonhall.co.nz>).
[mms] The zip MIME_Viewer now lists all files without using an external helper
      program (Michael Cochrane <mike@graftonhall.co.nz>).
[mms] Maintenance:: now uses session variables to provide much cleaner and more
      robust performance.
[mms] MS-TNEF attachments are now handled completely via PHP rather than with
      an external program.
[mms] Added application/ms-tnef MIME_Viewer.
[mms] Horde_Crypt_pgp class can query public keyservers.
[mms] MIME_Structure::parseMIMEHeaders() can now parse all headers of a MIME
      message and return an object.
[jan] Add MIME::rfc822WriteAddress() to replace imap_rfc822_write_address().
[mms] Added S/MIME MIME_Viewer.
[jon] Support referrals between LDAP servers in the LDAP preferences driver
      (Kevin Hildebrand <kevin@hq.ensoport.com>).
[cjh] MIME_Structure::parse() now returns a MIME_Message object
      (Michael M Slusarz <slusarz@bigworm.colorado.edu>).
[cjh] Configure administration services in the Registry
      (Marcus I. Ryan <marcus@riboflavin.net>).
[cjh] Add API methods for getting the preferences and identities of users
      other than the logged-in user.
[cjh] Allow setting the Content-Disposition of MIME_Part objects.
[cjh] Add Crypt:: framework (Michael M Slusarz <slusarz@bigworm.colorado.edu>).
[max] Add Brown Horde theme (Marco Obaid <marco@muw.edu>).
[jon] Allow the LDAP version to be specified for the LDAP preferences driver.
[jan] Add theme preference.
[jan] Add callback funtion for preferences.
[jon] Remove the $conf['menu']['floating_bar'] functionality.
[jan] Load only login page on startup and redirect to frameset after login.
[cjh] Don't allow anonymous access to problem.php.
[cjh] Add en_GB locale.
[cjh] Remove extensions on temporary files; this is a temp race hole.
[cjh] Allow for auto-creation of permissions (multiple levels of hierarchy).
[cjh] Add adding/removing of users from groups.
[cjh] Create temp files with the right extension in MIME_Viewer_enscript:: so
      enscript has more clues to guess file type.
[cjh] The admininstration interface for Groups and Permissions is now
      mostly functional.
[cjh] Make application authentication an Auth:: driver, instead of a special
      Registry case.
[cjh] Fix problems with the Notification stack and register_globals being off.
[jon] Alter Horde::img() to explicitly accept an alt="" attribute.
      Horde::img() now generates title="" attributes based on the alt="" text,
      too.
[cjh] Notification::notify() passes the message stack to all listeners, so that
      listeners don't have to know about the message stack, and app writers
      don't have to know about all possible listeners.
[cjh] Replace the HORDE_* message constants with 'horde.error', etc. for
      greater flexibility.
[cjh] Remove Horde::raiseMessage() now that the Notification system
      provides that functionality.
[cjh] Use the new Notification system.
[cjh] Remove other Registry get() methods.
[jon] Remove support for the horde_language cookie.
[jan] Move the maintenace framework from IMP to Horde (Michael M Slusarz
      <slusarz@bigworm.colorado.edu>).


------
v2.2.9
------

[jan] SECURITY: Fix potential XSS vulnerability due to not properly escaped
      error messages.


------
v2.2.8
------

[jan] SECURITY: Close XSS when setting the parent frame's page title by
      javascript (cjh).


------
v2.2.7
------

[cjh] Restore compatibility with PHP 4.1.
[jan] SECURITY: Fix potential XSS vulnerability in the help window.
[jan] Fix charset for Latvian translation (Bug #656).


------
v2.2.6
------

[jan] Use DB::prepare/DB::execute ONLY for Oracle to avoid implicitly requiring
      PHP 4.2 for all other RDBMs.
[cjh] Fix Oracle session handler.
[cjh] Add SQL scripts for Oracle and PostgreSQL session handlers.
[jan] Don't strip trailing spaces from signature dashes in IMP.


----------
v2.2.6-RC1
----------

[cjh] Fix support for custom session handlers.
[cjh] Use DB::prepare/DB::execute in the Prefs_sql driver for better support
      of large fields on databases such as Oracle.
[jan] Show the user's full name on the summary screen directly after logging
      in (D. Adam Karim <adam@akarsoft.com>).
[jan] Fix javascript error in "Problem" page with some translations (Bug #61).
[cjh] Fix handling of PostgreSQL blobs (Bug #44).


------
v2.2.5
------

[jan] Add Indonesian language (Slamin <slamin@unej.ac.id>).
[jan] Add Galician translation (Rafael Varela Pet <srrafa@usc.es>, Guillermo
      Mendez <guille@usc.es>).
[mms] Fix downloading of files with spaces in Mozilla.


------
v2.2.4
------

[mdj] SECURITY: Add dereferer to strip off session information from links to
      the outside of the Horde system to protect against session hijacking.
[mms] SECURITY: Add code to protect against session fixation issues.
[jan] Fix a bug with importing vCard 2.1 data.
[jan] Add Arabic (Syria) translation (Platinum Development Team
      <devteam@platinum-sy.net>).
[jan] Add Macedonian translation (Stojan Pesov <ssp@eureka.com.mk>).
[mir] Fix a bug that incorrectly quotes pref values (Bug #1224)
[cjh] Fix a bug that prevented logging.
[mms] DB session handlers do not use persistent connections by default.


------
v2.2.3
------

[mms] Fix parse error in Horde_Cipher_BlockMode_ofb64::.


------
v2.2.2
------

[mms] Optimization of Secret:: and Horde_Cipher:: drivers.
[jan] Add Catalan translation (Angels Guimer <angels.Guimera@uab.es>).
[mms] Added a RADIUS Auth:: driver.
[mir] Added a Samba Auth:: driver.
[cjh] Added the Horde_Image:: class.


------
v2.2.1
------

[jan] Fix incompatibility with PHP < 4.2.0 in the SQL VFS driver.
[jan] Fix undefined variable in Cipher.php (cjh).
[mms] Complete merging of SQL session handler.


----
v2.2
----

[cjh] Add support for user-defined session handlers
      (Mike Cochrane <mike@graftonhall.co.nz>).
[mac] Change Secret:: from using PEAR Crypt_HCEMD5 to the Horde_Cipher class.
[mac] Add Horde_Cipher:: class to provide a common abstracted interface to
      various Ciphers for encryption of arbitrary length pieces of data.
[mms] Correctly get charset information for MIME_Parts in MIME_Structure.
[jan] Add Latvian translation (Kaspars Kapenieks <kaspars@rcc.lv>).
[jan] Add Romanian translation (Corneliu MUSAT <cmusat@tiamat.keysys.ro>).
[jon] Added support for an <eref> entity to the help system.  This allows an
      external link to be embedded in a help entry. (<g.hort@unsw.edu.au>)
[cjh] Rename VFS:: to Horde_VFS:: for PEAR packaging.
[cjh] VFS:: is now packaged so that it can be exported as a PEAR component.
[cjh] Add a multi-user SQL VFS backend (Mike Cochrane <mike@graftonhall.co.nz>).
[cjh] The VFS api now consistently takes a temp file in the write() method
      across all backends (Michael Varghese <mike.varghese@ascellatech.com>).
[cjh] Add a VFS API for storage of files in an abstracted filesystem.
[cjh] Add a preference to allow maintenance ops with no confirmation screen
[cjh] Replace 'show' attribute in the registry with a more flexible 'state'
      attribute.
[jan] Allow setting the number of columns in the summary screen as a user
      preference (Brian Keifer <brian@valinor.net>).
[cjh] Add Horde::getGet() and Horde::getPost().
[cjh] Add an initial_application preference so users can select an app
      to be taken to instead of the Horde Summary on login.
[cjh] Make text, icon, or both menus a user preference
      (KaalH! <kaalh@smol.org>).
[cjh] Add a parameter for setting the session timeout.
[cjh] Add a parameter for setting the session delimiter.
[mms] Add MIME_Magic::filenameToMIME().
[jan] Use arg_separator.output instead of hardcoding '&' (David Ulevitch
      <davidu@everydns.net>).
[jan] Add Notification::count() (David Ulevitch <davidu@everydns.net>).
[cjh] Add Auth::isAdmin().
[cjh] Allow loading of sub-classes from several additional sources.
[jan] Remove references to not yet released applications (Gollem, Troll).
[cjh] Rewrite Category_sql implementation to be much more efficient.
[jan] Add Lithuanian translation (Darius Matuliauskas <darius@lnk.lt>).
[mms] Add Horde::compressOutput().
[mms] Add a kerberos Auth:: driver.
[jan] Add Bulgarian translation (Miroslav Pendev <pendev@hotmail.com>).
[jan] Remove deprecated DB::isWarning() calls.
[mms] Add Horde::createTempDir().
[cjh] Add Horde::usingSSLConnection().
[cjh] Replace <?= with <?php echo to remove the short_open_tags requirement.
[jan] Add Text::toHTML(), Text::highlightQuotes() and Text::dimSignature().
[cjh] Add Registry::listApps().
[cjh] Add Prefs::getPref() for getting preferences for someone other than the
      logged-in user.
[cjh] Add the ability to load identities for someone other than the logged-in
      user.
[mms] Add Horde::removeParameter().
[mms] All browser headers for downloading a file have been moved to the
      Browser:: class.
[jan] Add detection for UTF capability to Browser class.
[mms] Added images MIME_Viewer.
[bjn] Add PostgreSQL command flag (Richard G Konlon <RGKonlon@1MailPlace.com>).


----
v2.1
----

[jan] Add Hungarian translation (Laszlo L. Tornoci <torlasz@xenia.sote.hu>).
[jan] Add Norwegian Nynorsk translation (Per-Stian Vatne <psv@orsta.org>).
[jon] Major overhaul to the LDAP preferences driver. Note the changes to
      config/horde.php and scripts/ldap/horde.schema when upgrading.
[jan] Add Slovenian translation (Jure Krasovic <jurek@rcc-irc.si>).
[cjh] Add a Horde preferences screen, and a preference to refresh the summary
      screen.
[cjh] Add text/enriched MIME_Viewer
      (Eric Rostetter <eric.rostetter@physics.utexas.edu>).
[jan] Improve language selection.
[jan] Add Japanese translation (B.J. Black <william.black@sun.com>).
[cjh] Close a potential problem with register_globals On and $js_onLoad.
[jan] Add Prefs::isDefault() method to determine if a preference's value is
      set by the user or the default value from prefs.php.
[jon] Overhauled LDAP preferences driver.
[cjh] Make Horde::dispelMagicQuotes() recursive, so that it handles arrays.
[cjh] Have Secret::setKey() check for the session cookie explicitly, to avoid
      problems with old cookies being sent to a site when they are really
      disabled.
[cjh] Add a PrefsUI class for handling the form processing and UI generation
      for user preferences; this code was duplicated all through Horde.
[cjh] Add a mapping function to the enscript driver which maps file
      extensions to enscript language codes, and pass the language
      directly to enscript, to avoid having to use a file extension.
[cjh] Fix MIME_Magic::MIMEToExt() to work with x-extension/ext types.
[cjh] Add MIME_Magic::MIMEToExt() to map MIME types to file extensions.
[cjh] Rewrite Perms:: to use the Categories backend.
[jan] Change the Norwegian Bokmal locale from no_BOK to nb_NO and make it the
      default language for Norwegian users.
[cjh] Make Horde's login screen nicer; include reasons in it.
[cjh] Use HORDE_TEMPLATES for all template paths.
[cjh] Use $registry->get() for all Registry information.
[cjh] Removed administration code which is incomplete and confusing to users.
[jan] Add Estonian translation (Toomas Aas <toomas.aas@raad.tartu.ee>).
[jan] Add Slovak translation (Leo Mrafko <leo@oel.sk>).
[jon] Enable the "portability" option in the PEAR DB (sql) drivers.
[cjh] Use Horde's 'initial_page' configuration value in the Horde frameset.
[jan] Add Portugues translation (Nuno Loureiro <nuno@eth.pt>).
[jan] Rebuild the language selection logic. The language selected on the login
      screen is now respected and the site's standard language is defined in
      lang.php instead of each application's preferences.
[jan] Add javascript to set the frameset's page title (Michael Cochrane
      <mike@graftonhall.co.nz>).
[jan] Add Ukrainian translation (Andriy Kopystyansky <anri@polynet.lviv.ua>).
[jan] Update gettext documentation and Makefiles for Solaris and Debian.
[jon] Maintenance fixes from Michael M Slusarz <slusarz@bigworm.colorado.edu>.
[jan] Add Danish translation (Martin List-Petersen <martin@list-petersen.dk>).


----
v2.0
----

[jan] Add Norwegian Bookmal translation (Oystein Steimler <oystein@rexta.net>).
[avsm] Add .htaccess files to deny access to data directories.
[jan] Add Finnish translation (Leena Heino <liinu@uta.fi>).
[cjh] Fix one last problem with POP3 and multipart/alternative attachments.


--------
v2.0-RC4
--------

[rich] Include rewritten and reorganized documentation.
[cjh] Add an MSPowerpoint MIME_Viewer.
[jan] The language cookie was removed in favor of new methods in the Lang::
      class that select the language and set the gettext domain.
[avsm] Include Chora in this release cycle, but not showing in the toolbar.
[cjh] Add MIME_Viewer_zip.
[cjh] Trim registry.php.dist to only list apps in this release cycle.
[jan] Add deleteObject() method to the SessionCache class.
[bjn] Change 'en' and 'en_EN' locales to 'en_US' (default).


--------
v2.0-RC3
--------

[cjh] Recognize a few Palm.net browsers and set quirks/features accordingly.
[cjh] Support for adding and listing LDAP users given a set schema.
[cjh] Set the session cookie parameters with our cookie_path/cookie_domain
      settings. This means that you can be logged into multiple Horde
      installations on the same server (different paths) and not have the
      sessions interfere.
[cjh] Use 'hostspec' consistently in Auth drivers.


--------
v2.0-RC1
--------

[jan] Add Brazilian Portuguese translation (Carlos Daniel Kibrit <kibrit@terra.com.br>).
[jan] Add Greek translation (Stefanos I. Dimitriou <sdimitri@teiath.gr>).
[jan] Add vCard MIME driver. Changed config/mime_drivers.php.dist.
[jan] Add Swedish translation (Andreas Dahln <andreas@dahlen.ws>).
[jan] Add Korean translation (J.I Kim <aporie@netian.com>).


------
v1.3.5
------

[jon] Added $file and $line parameters to Horde::fatal().
[jon] Removed the PREFS_* and AUTH_* constants in favor of PEAR_Error objects.
[avsm] Don't depend on the registry being available when displaying
      the 'Horde is not configured' message.
[cjh] Clean up the Identity class to be a generalized, clean piece of the
      framework that can be used in other apps and subclassed if necessary.
[cjh] Make failure to connect to the preferences datasource a fatal error.
[cjh] Added the Serialize:: class for various methods of encapsulating data
      (steph <shuther@yahoo.fr>).
[cjh] Added the capability to get authentication credentials other than
      username back from the Auth framework, and completed the
      authentication realm functionality.
[jon] Allow the table cell and link CSS classes to be specified when creating
      menu items.
[jan] Add registry method for linking to a nag task.
[jan] Add identity class.
[max] Add Registry::getName() for querying application names.
[cjh] Horde now provides the Horde::logMessage() method for logging of
      information according to configurable priorities, etc.
[jan] Add functionality to map date and time fields to the Data class.
[cjh] Add the beginnings of a user administration system.
[cjh] Add Chinese (Traditional) translation (David Chang
      <david@thbuo.gov.tw>).
[jan] Add Italian translation (Giovanni Meneghetti <gmeneghetti@infvic.it>).
[jan] Add Data class for importing and exporting data.
[jon] Cleaned up the help system a bit.
[cjh] Add Horde::fatal() for displaying PEAR_Error objects and aborting.
[avsm] Extend Horde::getTempFile() to allow directory to be overridden.
[avsm] Allow temporary files to be unregistered from deletion.
[avsm] Add a Cache framework for persistently storing objects, along
       with a filesystem driver.
[jan] Add Polish translation.
[cjh] Fix a problem with $registry->call() and switching application
      contexts.
[cjh] Get rid of the invoke() methods in the registry.
[cjh] Don't re-include application config files; save configs in a cache so
      that we can just point $GLOBALS['conf'] at the old config on
      $registry->popApp(), etc.
[jan] Add French translation (Frederic Trudeau <ftrudeau@CAM.ORG>).
[cjh] Add Czech translation (pchytil@asp.ogi.edu).
[jan] Add new timezone handling with cleartext timezone names in lang.php.
[cjh] Add Russian translation (Ignat Ikryanov <ignat@ibd.ru>).
[jon] New methods in Browser.php for retrieving versions. <izzy@qumran.org>
[jon] Browser.php now detects Opera. <izzy@qumran.org>
[cjh] Move the language and charset defaults into config/lang.php, and add a
      Registry method to get the current charset.
[cjh] Map browser codes such as 'nl' to the full code ('nl_NL', etc.).
[avsm] Replace $conf['paths'] with the $registry equivalents.
[avsm] Add four registry functions to query webroots and paths.
[avsm] Many MIME_Viewer changes: API tweaks, new drivers, works with IMP.
[cjh] $conf['user']['online_help'] is now a Horde-level setting.
[avsm] Enable applications to have local MIME_Viewer drivers in addition
       to the global Horde ones.
[avsm] Shuffle around the MIME_Viewer API: getDriver() is now private
[avsm] Add an 'initial_page' option to the registry, to let us link into
      any page inside an application.
[cjh] Add a framework-level base.php file and make framework scripts use it.
[cjh] Add re-organized but still mostly out of date HELP/LISTS/SOURCE files
      (Josh Miller <joshlists@nebonet.com>).
[cjh] Add a parameter that determines whether or not apps are linked on the
      Horde menubar.
[cjh] Clear the whole session when the user logs out of Horde.
[jon] Added Prefs::isEmpty() for determining whether a preference is empty.
[jon] Added an $onclick parameter to Horde::link() for specifying an anchor's
      'onclick' JavaScript event.
[cjh] Use the *url() functions more consistently to make sure that
      cookie-less sessions work.
[cjh] Modify css.php to use the Registry to get application file paths.
[cjh] Add cookie_path and cookie_domain settings for people who keep apps
      outside of the Horde webroot or on multiple servers.


------
v1.3.4
------

[cjh] Add a Horde summary framework, which uses the Registry to get
      summaries of available data - tasks, events, etc. - for the Horde
      login screen.
[cjh] The preferences settings should be Horde-wide, and so have been moved to
      horde/config/horde.php.
[cjh] Move prefs.gif and generic prefs templates into Horde.
[cjh] Move setting of the gettext domain into the Registry.
[jon] Simplified the preference system's cleanup functions.
[jon] Merge doctype.inc into common-header.inc.
[jon] Added Text::htmlspaces() and Text::htmlallspaces().
[cjh] Add an option to Horde::getTempFile() to not delete the file at the
      end of the request.
[cjh] Add a &singleton() method to the Registry class.
[jon] Added Nag interface to the registry.
[jon] Expanded the registry to handle importing application-specific
      configuration values.
[max] Add auth/login and auth/logout options for Gollem in the registry.
[max] Add Registry::getMethod function.
[max] Add contacts/sources service to the registry.
[cjh] Rename the Connection classes to Token.
[cjh] Rename the ObjectStore class to SessionCache.
[jon] Adding Dutch language.
[avsm] Add icon support to the MIME_Viewer framework
[avsm] Update the MIME_Viewer API to include getDriver() and getIcon()
[jon] Overhauled the preferences caching system a bit.
[cjh] Update Browser:: to recognize IE6.
[jon] Added Horde-wide and driver-specific cleanup methods to the preferences
      system.
[cjh] Remove the strtolower() from Lang::select() which was preventing
      proper locale names (like pt_BR) from working correctly.
[max] Added authentication handler to the Registry.
[jon] The 'session' preferences driver now honors preference scope.
[max] Made sitename title configurable.
[jon] Reworked the Menu::customItem() to accept PHP data structures instead
      of a string of encoded parameters.
[avsm] Added MIME_Viewer framework to handle rendering files into HTML
       (and other) formats in a user-extensible fashion (experimental)
[avsm] New MIME_Magic and mime_mapping.php config file (experimental)
[avsm] Two new temporary file handling functions, Horde::getTempFile() and
      Horde::getTempDir() to take care of the housekeeping of temp files.
[max] Added contacts/add service to registry.
[cjh] Registry::call() is now Registry::link(). There is a new
      Registry::call() which actually returns the result of a function call
      made to another application.
[cjh] Fix DB query result checking in sql drivers.
[cjh] Fix help so that generic help links (on menu bars) show the topic list
      correctly.
[cjh] Make the login form nicer, and add a logout link.
[cjh] Make sure all of the sql drivers use DB::quoteString() on all strings.
[cjh] Replace a @mysql_query() that was hiding in Connection/sql.php with
      $this->db->query().
[cjh] Return basename($language) from Lang::Select() to avoid possible
      exploits.
[cjh] Add Registry::hasMethod() for checking if a piece of functionality has
      been registered with Horde.
[jon] Another large overhaul to the preferences system.  Note that the
      isChangeable() function has been renamed isLocked().  There is also
      support for preference scope (via isShared() and setShared()).
[jon] Added capaiblity tests to those drivers that require non-standard PHP
      extensions (handled by Horde::functionCheck()).
[jon] Added an Auth_LDAP Horde authentication driver.
[cjh] Add little snippet-templates for dynamically building preference GUIs.
[cjh] Rename the Auth interface's auth() method to authenticate() to avoid
      overlapping the name of the constructor for the Auth parent class.
[cjh] The configuration array is now simply $conf. Any settings that must be
      accessible unchanged (not overridden) should be put into $conf['horde'].
      Everything else is fair game for applications to override.
[cjh] Add a wml/wap login form.
[max] Add an Auth_FTP Horde authentication driver.
[cjh] Add an Auth_MCAL Horde authentication driver.
[cjh] The Horde login form now actually does something. Logging in to it
      gets you a token in your session saying that you've authenticated and
      who you are. Apps can then use this information to allow or deny
      access, and to identify users.
[cjh] The format of the config/registry.php file has changed drastically to
      be more readable and less indirect. There is also a new app parameter,
      'allow_guests', which defines whether or not a user is allowed to
      access the application without logging in to Horde.
[cjh] The Auth:: classes now expect to receive a userid and an array of
      credentials. Right now all backends assume that those credentials
      contain a password, but the way is clear to have other kinds of auth
      (IP, time-based, whatever).
[jon] Added a new parameter to the LDAP preferences driver: 'always_bind'.
[cjh] Added a Menu:: class that all modules can use to generate menu items.
[jon] Cleaned up the LDAP preferences driver a bit.
[jon] Added session-level preferences caching to the preferences system.
[cjh] Have Horde::link() make sure that the status text is safe for
      javascript (htmlentities, addslashes).
[cjh] Fix ObjectStore to work when register_globals = On.
[jon] Added a Session-based preferences driver.


------
v1.3.3
------

[cjh] Further revamp the MIME interface. Be consistent in capitalization
      (acronyms are capitalized), break out MIME_Structure and MIME_Message
      into seperate files, and put all methods into classes.
[cjh] Add Horde::getFormData() to fetch a variable from either
      $HTTP_POST_VARS or $HTTP_GET_VARS (and to clean magic quotes, if
      necessary).
[cjh] Remove the Log:: class. This is part of PEAR now.
[cjh] Add a SessionCache:: class. This is intended for storing objects in
      the session intended for near-term use, and will currently start
      throwing out objects when more than 20 are put in. This will hopefully
      keep any one session from growing too large.
[cjh] Use the new PEAR class Mail_rfc822:: to parse address lists, so that
      we get rfc 822 group support (my-buddies: jon@horde,org,
      max@horde.org;), which imap_rfc822_parse_adrlist() doesn't have.
[max] Make Horde XHTML 1.0 compliant.
[cjh] Add a few fields to the problem report and try to make it more friendly.
[cjh] Flesh out the Mime:: class.
[cjh] Move trimEmailAddress() into the new Mime:: class.
[cjh] Move set_env_in_string() to Text::expandEnvironment().
[cjh] Rename horde_cleanup() to _fileCleanup().
[cjh] The zlib module now supplies a gzencode() function that obsoletes
      HTTP_Cache::gzEncode().
[cjh] Modify Horde::url() so that it defaults $conf['use_ssl'] to 2
      (auto-detect current mode).
[cjh] Modernize some of the Horde frontend (still lots to do here); get rid
      of package.HTMLDocument.php once and for all.
[avsm] Breakdown all special characters in URLs to entities, to avoid
      ambiguity in how various browsers parse them.
[cjh] Add Horde::raiseMessage() for creating Horde messages to be displayed
      to the user.
[cjh] Some general UI tweaks - font size, etc.
[cjh] Remove rfcdate() in favor of the new 'r' parameter to date.
[cjh] Added application 'webroot' and 'fileroot' properties to the registry
      config file. These allow more flexibility in placing apps, and let the
      registry work from more places.
[cjh] Moved package.Registry.php to Registry.php.
[cjh] Commented config/horde.php.dist heavily.
[cjh] Add a Secret:: class to Horde.php that provides a transparent
      interface to either the mcrypt extension (preferred) or the PEAR
      Crypt_HCEMD5:: class.
[jon] Accept a user-defined function for performing username lookups in the
      preferences code.  The preferences constructor looks for the function
      in $params['user_hook'].
[cjh] Check HTTP_ENV_VARS for the user-agent as well as HTTP_SERVER_VARS.
[cjh] Remove mailfrom() in favor of the PEAR Mail:: interface. Adjust the
      conf files and problem.php accordingly.
[cjh] Add a set of invoke() methods to the Registry:: class for directly
      invoking services (ie, actually popping up a window) instead of
      printing links to invoke them.
[cjh] Clean up package.Mime.php a bit; don't set a charset on MIME parts
      that aren't text.
[cjh] Added a file driver for the Connection:: class.
[cjh] Added a WAP index to provide quick links to all Horde wireless pages.
[cjh] Add basic WAP browser detection to Browser::. Currently this is of the
      "it detects the phone I have and the simulator I use" variety; it is
      _very_ far from complete.
[cjh] Added Max Kalika's Connection:: class for connection tracking.
[cjh] HTTP_Cache:: now compresses content without the use of a temp file.
[cjh] Fleshed out the Auth:: class with the ability to cache authorization
      in the session.
[jon] Removed the scripted wordwrap in favor of the native function.  Moved
      the wrap_message() function to Text::wrap().
[jon] Standardize on the rfcdate() function in lib/Horde.php.
[cjh] The prefs drivers now expect $params['hostspec'], for consistency with
      PEAR.
[cjh] The PEAR sql prefs driver now works.
[cjh] Move horde configuration values that should not be overridded by
      modules into $horde['horde'][] to allow modules to do
      overriding/inheritance of other options.
[cjh] Add the HTTP_Cache:: class to Horde.php for ETag generation, gzip
      compression of http content, etc.
[cjh] Replace $horde['localhost'] with $HTTP_SERVER_VARS['SERVER_NAME'].
[cjh] Reject outright envelope From addresses with spaces in them.
[cjh] Quote the from address passed to sendmail to prevent shell exploits.
[cjh] Update Browser.php to use HTTP_SERVER_VARS, consolidate the javascript
      version information, and add ssl_download_hack for browsers that need
      downloads to be cacheable.
[jon] Add Text::filter to lib/Horde.php.
[cjh] Check the return value of pclose() correctly in mailfrom().
[jon] Security fix for $from value in mailfrom(). <cw@coc-ag.net>
[jon] Silence session_start warnings.
[jon] Added new |extra| substitution to config/registry.php for extra,
      non-standard parameter passing.
[jon] Remove buildURL().  It's been replaced by Horde::url().
[jon] Restructured the SQL preferences schema.
[cjh] Added $horde['session_name'] to control the session name globally.
[cjh] Session:: doesn't really buy us anything, so we've moved the utility
      methods that do into Horde::, and are just using php4 session calls
      elsewhere.
[cjh] Added the beginnings of User and Auth interfaces, with a bare-bones
      working Auth_sql implementation.
[jon] Rewrote the Session class for instantiation with hooks for
      user-defined session handlers.
[cjh] The bare-bones implementation of the Perms scheme, with a sql driver,
      works. If you pass it a full path it will traverse up it, returning
      the first permission it finds.
[jon] Moved the language handling functions in Horde.php into their own
      classed named Lang.
[cjh] More consistent/css-based look for the help system.
[cjh] Starting to remove all uses of call-time pass-by-reference.
[cjh] Added css.php for automagical generation of stylesheets for apps.
[jon] Promoted the WebClient class from lib/Horde.php to its own component
      named Browser.php.
[cjh] Use wordwrap in a slightly different way, which seems to produce much
      prettier quoting of messages.
[jon] Added Prefs/mysql.php driver from Max Kalika <max@the-triumvirate.net>.
[jon] New XML-based help subsystem.
[cjh] Renamed package.horde.php to Horde.php.
[cjh] Add img() and pimg() functions to the Horde:: class so that modules
      using only stylesheets don't need the HTMLDocument package.
[cjh] Omit the session name/id from the URL if we can verify that cookies
      are being accepted.
[jon] New wrap_message function that uses the native wordwrap function if it
      exists.
[jon] Updating header comment copyright information.
[jon] Report module versions in test.php output.
[cjh] mime_encapsulate() now uses an array instead of an object.
[jon] Removed the $_html['compose*'] sizing parameters from config/html.php.
[cjh] Leave Bcc: out of the headers that are passed to sendmail.
[jon] Rewrite a good portion of the scripts/set_perms.sh script so
      that it enforces an extremely high level of security.
[cjh] The valid_lang() function now requires $nls['languages'][<language>]
      to be set for a language to be considered valid (instead of just the
      locale directory existing).
[cjh] Added a &singleton() method to make it easier to only create one log
      instance, no matter when you need it.
[cjh] Now mailfrom() works for recipient addresses with single quotes or
      other characters that need to be escaped in them.
[cjh] Log class now has an mcal instance, a composite (for grouping multiple
      log backends), and observers register the level of events they want to
      hear about, and only get notified of events as important or more
      important than that level.
[cjh] Added a Log:: framework and syslog implementation, including a
      Log_observer class intended to sit on top of Lob objects and take
      action in exceptional circumstances.
[cjh] Make sure to always send a charset with emails.
[cjh] Improved the mime_decode() and mime_encode() functions.
[cjh] Updated test.php to recognize php4 stable releases.
[jon] Removed all of the locale/*.lang dependencies.
[jon] Assume the browser is frames-capable by default.
[cjh] Add horde_cleanup($filename), which takes care of deleting files that
      should be unlinked regardless of whether or not the request is
      canceled by the user before we finish executing.
[cjh] Remove phplib dependancy in favor of php4 sessions/PEAR.
[cjh] Replace use with require_once.
[cjh] Fixed up select_lang() to work (identical to 1.2 now)
[cjh] Horde is now under the LGPL.
[cjh] Fix mailfrom() so it doesn't send extra headers when using mail()
[cjh] Adding a 'margins' attribute to HTMLDocument to enable turning off
      document margins.


------
v1.3.2
------

[cjh] Replaced module.XML_RDF.php with a working copy.


------
v1.3.1
------

[cjh] Revamped the MimeMessage class to be much smaller and simpler.
[cjh] Replaced the MimePartData class with a set of functions that more
      cleanly and correctly implement the MIME standard.
[cjh] select_lang() now checks for en when the browser requests en_GB, etc.
[cjh] Replaced all calls to ereg* functions with preg* functions, for speed.
      Because of this we now require php 3.0.12 or later.


------
v1.3.0
------

[   ] German updated
[   ] Fixed the broken 'back' link in setup.php3 for non-English users
[   ] manager.php3, db.lib, and cohorts are now gone. They were all unmaintained, out of date, and not very useful.
      Various build scripts are updated to reflect this.
[jon] Removed config/defaults.php3 in preference of horde.php3
[   ] Fixed a setup.php3 bug where " was used instead of ' for $default values (mike)
[   ] New Finnish translations (Thanks to: leo.jaaskelainen@kolumbus.fi)
[   ] Fixed lynx support issue with login.php3
[   ] Fixed signup.php3 problems
[   ] Fixed problem.php3 problems (lynx support)
[   ] Added database creation scripts for building phplib complian tables
[   ] Moved all documentation (except README and COPYING) into docs/ subdir
[   ] Added a caching class so that caching can be turned on per page if needed


------
v1.1.1
------

[   ] Horde understands French (thanks to Mathieu Clabaut
      <clabault@multimania.com>)
[   ] Major frameset redesign
[   ] Auto registration/congiruation of modules


------
v1.0.3
------

[   ] Horde is now web surfable.
[   ] Horde handles lynx (pseudoly)
[   ] Extendable menus. (menu.txt in horde/config)
[   ] Signup, problem reporting, help functions are now part of horde