File: issue66.html

package info (click to toggle)
lg-issue66 2-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,008 kB
  • ctags: 146
  • sloc: python: 85; perl: 77; makefile: 36; sh: 25
file content (5565 lines) | stat: -rw-r--r-- 226,710 bytes parent folder | download
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
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #66</TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000" >
<center>
<!-- A HREF="http://www.linuxgazette.com/">
<H1><IMG SRC="../gx/newlogo.jpg" ALT="LINUX GAZETTE" border="0"></H1></A> --> 
<A HREF="http://www.linuxgazette.com/">
<H1><IMG ALT="LINUX GAZETTE" SRC="../gx/lglogo.png" 
	WIDTH="600" HEIGHT="124" border="0"></H1></A> 
<H2>May 2001, Issue 66 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Published by <I>Linux Journal</I></H2> 

<A HREF=../lg_frontpage.html>Front Page</A> &nbsp;|&nbsp;
<A HREF=../lg_frontpage.html>Back Issues</A> &nbsp;|&nbsp;
<A HREF=../lg_faq.html>FAQ</A> &nbsp;|&nbsp;
<A HREF=../mirrors.html>Mirrors</A> &nbsp;|&nbsp;
<A HREF=http://www.linuxgazette.com/wgindex.html>Search</A>
</center>

<!--=================================================================-->

<table>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<table>
<tr>
<td VALIGN="top"><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>



<!-- *** BEGIN sponsors *** -->
<TR><TD>
	<A HREF="http://www.linuxnetworx.com"><IMG ALT="Linux NetworX" SRC="../gx/sponsors/linuxnetworx.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>

<TR><TD>
	<A HREF="http://www.tuxtops.com"><IMG ALT="Tuxtops" SRC="../gx/sponsors/tuxtops.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>

<TR><TD>
	<A HREF="http://www.elinux.com/xwb00120"><IMG ALT="eLinux.com" SRC="../gx/sponsors/elinux.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>


<!-- *** END sponsors *** -->




</table>
</td>
<!--==================================================================-->
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=1 HEIGHT=1 WIDTH=1%></TD>
<td VALIGN=top>
<H1><font color="#BB0000">Table of Contents:</font></H1>




<!-- *** BEGIN toc *** -->
<UL>
	<LI>  <a HREF="lg_mail66.html">The MailBag</A> 
	<LI>  <a HREF="lg_bytes66.html">News Bytes</A> 
	<UL>
		<LI>  <a HREF="lg_bytes66.html#distro">Distro News</A> 
		<LI>  <a HREF="lg_bytes66.html#general">News in General</A> 
		<LI>  <a HREF="lg_bytes66.html#software">Software Announcements</A> 
	</UL>
	<LI>  <a HREF="lg_answer66.html">The Answer Gang</A> 
	<LI>  <a HREF="lg_tips66.html">More 2-Cent Tips</A> 
	<LI>  <a HREF="adam.html">The Weekend Mechanic</A> , <EM>by Thomas Adam</EM>
	<LI>  <a HREF="collinge.html">HelpDex</A> , <EM>by Shane Collinge</EM>
	<LI>  <a HREF="correa.html">Interview with Ben Collins, the new Debian Project Leader</A> , <EM>by Fernando Ribeiro Corr&ecirc;a &amp; Marcos Martins Manh&atilde;es</EM>
	<LI>  <a HREF="nielsen.html">Converting Linux HOWTOs into Book Format</A> , <EM>by Mark Nielsen</EM>
	<LI>  <a HREF="nielsen2.html">Configuring GDM 2.2</A> , <EM>by Mark Nielsen</EM>
	<LI>  <a HREF="sharma.html">CVS: Client-Server Version Control</A> , <EM>by Kapil Sharma</EM>
	<LI>  <a HREF="suresh.html">Stopping Spam on Your Linux Box</A> , <EM>by Suresh Ramasubramanian</EM>
	<LI>  <a HREF="lg_backpage66.html">The Back Page</A> 
	<UL>
		<LI>  <a HREF="lg_backpage66.html#authors">About This Month's Authors</A> 
		<LI>  <a HREF="lg_backpage66.html#notlinux">Not Linux</A> 
	</UL>
</UL>

<!-- *** END toc *** -->




</td>
</tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
	SRC="../gx/hammel/cleardot.gif" 
	ALT="-------------------------------------------------------------" 
	HSPACE=30 VSPACE=2 HEIGHT=1 WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table> <!-- ******************************************* -->

<H3 ALIGN="center"><EM>Linux Gazette</EM> Staff and The Answer Gang</H3>
<BLOCKQUOTE>
<STRONG>Editor:</STRONG> Michael Orr<BR>
<STRONG>Technical Editor:</STRONG> Heather Stern<BR>
<STRONG>Senior Contributing Editor:</STRONG> Jim Dennis<BR>
<STRONG>Contributing Editors:</STRONG>
Ben Okopnik, Dan Wilder, Don Marti
</BLOCKQUOTE>

<TABLE WIDTH="100%"><TR>
<TD WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
</TR></TABLE>

<P> <!-- ************************************************** -->
<table>
<tr><td>
<A HREF="issue66.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="issue66.html">TWDT 2 (HTML file)</A><BR>
are files containing the entire issue: one in text format, one in HTML. 
They are provided 
strictly as a way to save the contents as one file for later printing in
the format of your choice; 
there is no guarantee of working links in the HTML version.
 </td></tr>
<!--==================================================================-->
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<center>
<I>Linux Gazette</I><img alt="[tm]" src="../gx/tm.gif">, 
<A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com/</A><BR> 
This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P> 
<H5>Copyright &copy; 1996-2001 Specialized Systems Consultants, Inc.</H5>
</center>
</td></tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<center>
<H1><A NAME="wanted"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/mailbox.gif">
The Mailbag</A></H1> <BR>
<!-- BEGIN wanted -->
</center>

<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="maroon">HELP WANTED -- Article Ideas</font></H3></center>
<P>
<P> Send tech-support questions, answers and article ideas to The Answer Gang
&lt;<A HREF="mailto:tag@ssc.com">tag@ssc.com</A>&gt;.  Other mail (including
questions or comments about the <EM>Gazette</EM> itself) should go to
&lt;<A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A>&gt;.  All material
sent to either of these addresses will be considered for publication in the
next issue.  <EM>Please send answers to the original querent too, so that s/he
can get the answer without waiting for the next issue.</EM>

<P> Unanswered questions might appear here.  Questions with
answers--or answers only--appear in The Answer Gang, 2-Cent Tips, or here,
depending on their content.  There is no guarantee that questions will
<em>ever</em> be answered, especially if not related to Linux.

<P> <STRONG>Before asking a question, please check the
<A HREF=../lg_faq.html><I>Linux Gazette</I> FAQ</A> to see if it has been
answered there.</STRONG>

<P> <HR> <P>
<!--====================================================================-->

<!-- BEGIN HELP WANTED : Article Ideas -->

<UL>
<!-- index_text begins -->
<li><A HREF="#wanted/1"
	><strong>Device Drivers for Linux Gazette</strong></a>
<!-- index_text ends -->
</UL>
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="wanted/1"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">Device Drivers for Linux Gazette</FONT></H3>
Wed, 18 Apr 2001 22:39:40 -0700
<BR>Ryan Thibodeau (<a href="mailto:tag@ssc.com?cc=rthibode@onlineathens.com"
	>rthibode from onlineathens.com</a>)

<!-- ::
Device Drivers for Linux Gazette
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi. Just dicovered Linuxgazette today. This is a really great site.
</STRONG></P>
<P><STRONG>
If you are looking for article ideas, I'd like to see an article, or
even series, on writing device drivers for Linux. This is a topic I
have found very little information about on the net.
</STRONG></P>
<P><STRONG>
Just my two cents.
</STRONG></P>
<P>
Writing the Linux kernel's device driver interfaces are enough
of a subject to fill a whole book.  Maybe the O'Reilly
<EM>Writing Linux Device Drivers</EM> (by Allessandro Rubini) and
their <EM>Understanding the Linux Kernel</em> by Daniel Pierre Bovet
(among others) would be a good choice for you.
</P>
<P>
As for documention online:  You could always read the sources,
copy and paste parts of the Makefiles, copy an existing (similar)
device driver and edit.  I realize that this is a horrible
oversimplification; but that's how must of the Linux kernel hackers
started.
<br>-- JimD</P>

<!-- end 0 -->
<!--     .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .     -->
<P><HR WIDTH="40%" ALIGN="center"><P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy"></FONT></H3>
Mon, 16 Apr 2001 22:04:56 -0700
<BR>Vivek Kumar (<a href="mailto:tag@ssc.com?cc=ascon_system@netkracker.com"
	>ascon_system from netkracker.com</a>)

<P><STRONG>
how to write a parallel port device driver,ie, interrupt driven.
Not, for printer, but,for general device connected to EPP port..?
</STRONG></P>
<P>
If you need something to be interrupt driven than you need a
kernel module.  You might be able to have a very simple kernel
module that simply relays the interrupt as a character through
a device node.  Then you could have a user space process listening...
</P>
<P>
[ Some guesses about the nature of <TT>poll()</TT> and <TT>select()</TT>, 
trimmed. ] Please post a message to a good linux programming
newsgroup for better details.  Actually I've posted an abstracted
version of this question to the 
<a href="news:comp.os.linux.development.system"
	>comp.os.linux.development.system</a>
newsgroup on your behalf.  So, perhaps there's already an answer
waiting...
<br>-- JimD</P>

<p><em>Well, the Answer Guy is just barely getting into this subject,
	so for this topic, he's a newbie like the rest of us.  It 
        looks like some of our weekend mechanics really want to get 
        down into the spark plugs, there.
	So, if anyone feels inclined to write a down and dirty device
	driver article that explains a bit of deep wizardry in plain
        english, especially if it covers something that's new in the 
        2.4 series kernels, we'd love to publish it. -- Heather</em></p>

<p><em>Or if anybody would like to dissect and explain a small driver
	they've written, that would also make a good article. -- Mike</em></p>

<!-- end 1 -->
<a name="mailbag"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="maroon">GENERAL MAIL</font></H3></center>
<P> <HR> <P>
<!--====================================================================-->

<!-- BEGIN GENERAL MAIL -->

<UL>
<!-- index_text begins -->
<li><A HREF="#mailbag/1"
	><strong>Great</strong></a>
<li><A HREF="#mailbag/2"
	><strong>Subscribing to LG</strong></a>
<li><A HREF="#mailbag/3"
	><strong>Your writing of: "Integrating" Linux/sendmail with MS Exchange</strong></a>
<li><A HREF="#mailbag/4"
	><strong>Thank you</strong></a>
<li><A HREF="#mailbag/5"
	><strong>incensative, and down right rude,</strong></a>
<!-- index_text ends -->
</UL>
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="mailbag/1"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">Great</FONT></H3>
Sat, 31 Mar 2001 23:07:10 -0600
<BR>James E. Touma (<a href="mailto:gazette@ssc.com">toumaj from home.com</a>)

<P><STRONG>
Great April edition. Thanks a lot. Keep up the good work (and the
interesting topics).
</STRONG></P>
<P>
Thanks for reading us, Jim!  -- Heather
</P>

<!-- end 1 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="mailbag/2"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">Subscribing to LG</FONT></H3>
Sun, 1 Apr 2001 20:36:36 -0700
<BR>Mike Orr (<a href="mailto:gazette@ssc.com">iron from mso.oz.net</a>)

<P>
Finally, a way to subscribe to Linux Gazette!
</P>
<P>
<A HREF="http://www.debian.org/">Debian</A> has long had the lg-issue## packages.  Now it has a couple
new packages:
</P>
<ul>
<li> lg-subscription : install new issues as they arrive.
<li> lg-ltest-two : install the latest two issues and remove older ones.
<li> lg-all : install all of the currently-available issue.
</ul>
<P>
Of course, it adds/removes packages only when you do a general package
update.
Note that these programs are supported by Debian, not by <EM>LG</EM>.</p>
<P>
-- Mike (your friendly <EM>Linux Gazette</EM> Editor)
</P>
<P>
Looks like you have to get it from testing (aka woody) or unstable (aka
sid) but at least it shouldn't require a libc update, if you temporarily 
add one of these to your sources list to get them.  If one of these 
<EM>does</EM> ask for a libc change, it's a packaging bug and you should 
report it immediately.
</P>
<P>
But be especially careful to change things back, or you may find yourself
in for a big surprise when you run "<tt>apt-get upgrade</tt>" to catch
the latest security patches.  -- Heather
</P>

<!-- end 2 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="mailbag/3"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">Your writing of: "Integrating" Linux/sendmail with MS Exchange</FONT></H3>
Tue, 10 Apr 2001 10:39:15 -0400
<BR>Dave Tabor (<a href="mailto:gazette@ssc.com">dtabor from mageeop.com</a>)

<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
Just a note of constructive criticism.
</STRONG></P>
<P><STRONG>
I just read a copy of your writing of "Integrating" Linux/sendmail with MS
Exchange, on this site.
</STRONG></P>
<P><STRONG>
<A HREF="../issue38/tag/5.html"
	>http://lhd.datapower.com/LDP/LDP/LG/issue38/tag/5.html</A>
</STRONG></P>
<P><STRONG>
It's something you wrote in 1999, so you may be writing differently now.  If
so, please disregard this letter.
</STRONG></P>

<p>What you are about to say is still valuable as a reminder to new members
   of the Answer Gang, potential article authors, and in fact just about 
   anybody who hopes to be a very vocal Linux advocate.  So I hope you
   don't mind that we've published it anyway.  -- Heather</p>

<P><STRONG>
Although I found this information helpful, you appear to have trouble
staying on track with the useful information, and like to get off subject
with the Microsoft bashing.
</STRONG></P>
<P><STRONG>
I do use Microsoft products, as well as Linux and AIX products, and
understand your point of view (even agree with most, if not all, of it).
</STRONG></P>
<P><STRONG>
My constructive criticism is that you should refrain from the Microsoft
bashing or at least keep it to one line, and keep more to the point of
trying to relay useful information.  (I'm assuming that is what you are
really trying to do.)
</STRONG></P>
<P><STRONG>
If someone is having trouble with something like integrating sendmail and
exchange, they may not have a choice about what systems or software to use,
and just need some well written, detailed information, not an anti-Microsoft
commercial.
</STRONG></P>
<P><STRONG>
- Dave
</STRONG></P>
<P>
Thanks, Dave.  Issue 38 was a long time ago now.
</P>
<P>
The Answer Gang now includes a number of more cheerful sorts in addition to
the curmudgeonly Answer Guy himself.  One or two even still use Windows for
some of their work.  (Note: we avoid answering Windows questions at all,
unless they're really about working with Linux environments.)  Having more
of us frees the ones who really don't want to touch anything about MS, from
even having to answer.  Also, a heavier editorial hand is being applied now.
</P>
<P>
As for myself, I look forward to the day when systems will be sufficiently
easy to use that it will not be clear... nor terribly necessary to know...
which OS is chugging along "under the hood".  I don't think that day is at
all <EM>close</EM> but I look forward to it anyway. 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle">
</P>
<P>
-- Heather
</P>

<!-- end 3 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="mailbag/4"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">Thank you</FONT></H3>
Wed, 28 Mar 2001 22:10:12 EST
<BR>Spartaco Cicerchia (<a href="mailto:gazette@ssc.com">MI1SA from aol.com</a>)

<P>
Dear Mike
</P>
<P>
I want to take the opportunity to thank you very much for the feed back
and for taking the time to give me the information.
</P>

<!-- end 4 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="mailbag/5"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">incensative, and down right rude,</FONT></H3>
Wed, 4 Apr 2001 00:04:53 -0400
<BR>Joe Agate (<a href="mailto:gazette@ssc.com">joetagate from home.com</a>)

<P>
sorry pal, but after reading your reponse to a post for help, i couldnt
help but send you this note about what an 
[&nbsp;rude&nbsp;word&nbsp;deleted&nbsp;] you must be...and would be 
very much surprised if anyone would want you on the payroll....
</P>
<P>
respectfully,
<br>joe agate
</P>
<P>
<A HREF="../issue50/tag/33.html"
	>http://rpmfind.net/linux/mdw/LDP/LG/issue50/tag/33.html</A>
</P>
<P>
[ HTML version of same text, also deleted ]
</P>
<P>
Curiously, he chose to "rag" on the Answer Guy for one of his clearer
answers to an unclear question.  He calls him a bad name, then signs
off "respectfully".  Right.
</P>
<P>
Is it really "insensitive" to mention that LG has a search engine
(<A HREF="http://www.linuxgazette.com/wgindex.html"
	>http://www.linuxgazette.com/wgindex.html</A>)?  
Nope, I think not.
</P>
<P>
Is it "insensitive" to ask that querents mention what they've tried
already?   Maybe - but it's a fact of life in tech support, most people
say "it's broken" not "I tried this, and that, and the other thing, and...
yada yada ... anyways so you can see I tried everything, and it hates
me".  In plain verbal conversation it's rude to maunder on like that,
so people tend not to do it.  In tech support, the more info you can
send us (that is related to the question) the better we can help.  If
this were a phone call, we could have this merry back and forth, and
it still probably wouldn't take an hour.  At typical Answer Gang speeds
though... more info will help you as much as it helps us.
</P>
<P>
Is it "insensitive" to suggest that the poor bloke may have to buy a
new card or new server?  Probably.  Oh well.  Life's tough that way
sometimes.   Turns out that he's probably okay, according to another
reader who assured us that the Jotan is indeed a Trident relative.
</P>
<P>
Is it insensitive to send us the same text as both plaintext and HTML?
No, usually it just means someone didn't know how to turn off this "feature"
(cough cough.  cough.  no, I'm okay.  cough cough.  water.  Ahem) in
MS Outlook.  Try this great answer from Chris G. in last month's Answer Gang:
</P>
<P><BLOCKQuote>
<A HREF="../issue65/tag/8.html"
	>http://www.linuxgazette.com/issue65/tag/8.html</A>
</BLOCKQuote></P>
<P>
Lastly, I'm pretty sure it's insensitive to publish this, but Joe, you
mailed us, and this is what we normally do with letters to the editors.
Let us know when you have a linux question, and we'll try to answer it --
if you give us enough information!
</P>

<!-- end 5 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/jobs"></A>
<!-- begin jobs -->
<P> <A NAME="mailbag/5"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/envelope.gif">
<FONT COLOR="navy">Linux jobs</FONT></H3>
Wed, Apr 11, 2001 12:17:14PM -0500
<br>Stuart (<A HREF="mailto:gazette@ssc.com?cc=stuart-5757@hushmail.com"
	>stuart-5757 from hushmail.com</A>)

<!-- ::
Linux jobs
~~~~~~~~~~
:: -->
<P><STRONG>
Would it be possible for someone at your publication to provide me with
a resource as to where I could locate an experienced Linux programmer for
the Tampa Florida area. Is there a website for Linux job postings or a
publication that I might be able to contact. I would appreciate any help
that you could give me.
</STRONG></P>
<BLOCKQUOTE>
The Answer Gang published a list of sites for job searchers in the
last issue.  I'm sure you can post openings at these sites as well.
</BLOCKQUOTE>
<BLOCKQUOTE>
<A HREF="http://www.linuxgazette.com/issue65/lg_answer65.html#tag/greeting"
	>http://www.linuxgazette.com/issue65/lg_answer65.html#tag/greeting</A>
</BLOCKQUOTE>
<BLOCKQUOTE>
LG does not publish job listings because they are so temporary in
nature: the job may be filled by the time the issue is published!
<br>-- Mike
</BLOCKQUOTE>
<p>
To repeat from last time:
</p>
<BLOCKQuote>
You can check out <I>Linux
Journal</I>'s Career Center (<A HREF="http://www.linuxjournal.com/employ/"
	>http://www.linuxjournal.com/employ</A>),
Geekfinder (<A HREF="http://www.geekfinder.com/"
	>http://www.geekfinder.com</A>), the Sysadmin's Guild (SAGE)
Job Center (<A HREF="http://www.usenix.org/sage/jobs/sage-jobs.html"
	>http://www.usenix.org/sage/jobs/sage-jobs.html</A>), or pay
attention to your local area papers for when major high tech Job
Fairs are in your area, so you can go to them. There are also some
really generic job sites like Dice.Com (<A HREF="http://www.dice.com/"
	>http://www.dice.com</A>) or
MonsterBoard (<A HREF="http://www.monsterboard.com/"
	>http://www.monsterboard.com</A>). If you hate the
corporate mold, check out some of the project offers at
Cosource (<A HREF="http://www.cosource.com/"
	>http://www.cosource.com</A>) or Collab.Net
(<A HREF="http://www.collab.net/"
	>http://www.collab.net</A>). Or put up your consulting shingle by
listing yourself at Linuxports (<A HREF="http://www.linuxports.com/"
	>http://www.linuxports.com</A>) and
getting listed into a few search engines.
</BLOCKQUOTE>
<p>
... and expand a little:
</p>
<BLOCKQuote>
When I went to Google! and typed in the keywords:
<br>
<A HREF="http://www.google.com/search?q=linux+jobs&amp;btnG=Google+Search"
	>linux jobs</a>
</BLOCKQUOTE>
<BLOCKQuote>
-- it claimed it has about 400 entries.
</BLOCKQUOTE>
<p>
As Mike noted, many
of these allow employers to post job offers, as well as
having jobseekers post resum&eacute;s.
<br>-- Heather
</p>

<!-- end jobs -->
<!--endcut ============================================================-->
<H4 ALIGN="center">"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<HR>

<center>
<table cellpadding=7><tr><td>
<IMG SRC="../gx/bytes.gif" border=1  ALT="News Bytes">
</td><td>
<H3>Contents:</H3>
<ul>
<li><a HREF="#distro">Distro News</A>
<li><a HREF="#general">News in General</a>
<li><a HREF="#software">Software Announcements</a>
</ul>
</td></tr></table>

<STRONG>Selected and formatted by  <A HREF="mailto:michael.conry@softhome.net">Michael Conry</A> and Mike Orr</STRONG>
</center>


<P> Submitters, send your News Bytes items in 
<FONT SIZE="+2"><STRONG>PLAIN TEXT</STRONG></FONT>
format.  Other formats may be rejected without reading.  You have been
warned!  A one- or two-paragraph summary plus URL gets you a better
announcement than an entire press release.

<a name="distro"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">Distro News</font></H3></center>

<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Debian
</FONT>
</H3>
<a href="http://www.debian.org/">Debian</a> Potato users out there itching
to get their hands on the new 2.4 kernels may be interested in these links.
<a href="http://www.lwn.net/">Linux Weekly News</a>
have posted the Debian-News 
<a href="http://lwn.net/2001/0419/a/deb22-2.4.php3">message</a>
of Apr 16, which has advice on getting kernel 2.4 working on you 2.2 potato
install. The
<a href="http://www.fs.tum.de/~bunk/kernel-24.html">instructions</a> should
be read carefully before upgrading.

<hr noshade width="20%">

In other Debian news, The third revision of Debian GNU/Linux 2.2 (nickname
`potato') has been released.  This point release, version 2.2r3, mostly
includes security updates, along with a few corrections to important bugs in
the stable distribution. The details are
<a href="http://lists.debian.org/debian-announce-01/msg00002.html">
online</a>.


<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Mandrake
</FONT>
</H3> 

<P> 
<a href="http://www.linux-mandrake.com">
Linux-Mandrake</a> 8.0 has been released.
New features can be studied in detail on their 
<a href="http://www.linux-mandrake.com/en/8.0.php">website</a>. Highlights
include KDE 2.1.1, GNOME 1.4, Kernel 2.4.3, Xfree86 4.0.3, and
Anti-aliasing.
If you would like to donate to the project, go to
<a href="http://www.linux-mandrake.com/donations">
http://www.linux-mandrake.com/donations/</a>

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Progeny
</FONT>
</H3> 

<P> <a href="http://www.progeny.com/">Progeny</a> Debian is 
<a href="http://www.progeny.com/news/newsreleases/?newsrelease=04_09_2001">
out</a> now. The download edition is already
<a href="http://www.progeny.com/download/">available</a>, and the box set
will be on sale from April 23. Ian Murdock, Progeny CEO and President, has
said that Progeny Debian is not trying to be another distribution of Linux.
"In fact, we don't see Progeny Debian as a separate distribution. It is an
enhanced version of Debian for the commercial market. All of our development
efforts are being contributed back to the Debian community, and we hope that
our work can help make Debian better for all users", he comments.


<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Red Hat
</FONT>
</H3> 

<P> 
<a href="http://www.redhat.com/">Red Hat</a>  have announced Red Hat Linux 7.1 
<a href="http://www.redhat.com/about/presscenter/2001/press_sevenone.html">
with 2.4 kernel</a>.
The Red Hat website has a complete list of the 
<a href="http://www.redhat.com/products/software/linux/rhl_new_features.html">
new features</a>.



<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Slackware
</FONT>
</H3> 
<a href="http://www.lwn.net/">Linux Weekly News</a>
have a
<a href="http://lwn.net/2001/0419/dists.php3">story</a> 
on 
<a href="http://www.slackware.com/">Slackware</a>'s difficulties. 
Apparently, Wind River have laid off the 
Slackware development staff. Patrick Volkerding, who is also laid off, says
that he has sufficient funds to publish the next edition of Slackware, but
not enough to pay developers for their input.
This was a big 
<a href="http://www.slackware.com/forum/read.php?f=5&i=7887&t=7887">
topic</a>
of conversation on the Slackware forum (might break Netscape).
<p> If you want to see Slackware continue, you can donate to the project via
their <a href="http://www.paypal.com/">PayPal</a> account. Donate to
paypal@slackware.com


<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">SuSE
</FONT>
</H3> 

<a href="http://www.suse.de/en/">SuSE Linux</a> 
have announced the release of SuSE Linux 7.1 for the Sparc 
architecture of Sun Microsystems.

SuSE Linux 7.1 for Sparc comes with the proven Linux Kernel 2.2.18 
as well as the latest Kernel 2.4.2 as a special bonus for 
technophile users. SuSE Linux 7.1 is based on the program library 
glibc 2.2. The popular SBUS graphics cards are supported by 
XFree86 4.0.2.

Application support for LFS (Large File Support) and
IPv6 (Internet Protocol 
Version 6) has grown.

<P> SuSE Linux 7.1 for Sparc (Item No. 99985-21SPC) is supplied on 
five CD-ROMs with online documentation. It can be obtained 
exclusively directly from SuSE at the price of EUR 159 plus VAT. 
SuSE Linux 7.1 for Sparc is also available for download from 
<a href="ftp://ftp.suse.com/pub/suse/sparc/suse-sparc/">
ftp://ftp.suse.com/pub/suse/sparc/suse-sparc/</a>


<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">News in General</font></H3></center>

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Upcoming conferences and events 
</FONT>
</H3> 

<P> Listings courtesy <EM>Linux Journal</EM>.  See <EM>LJ</EM>'s
<A HREF="http://noframes.linuxjournal.com/events/">Events</A> page for the
latest goings-on.

<!-- *** BEGIN events table [this line needed by Linux Gazette events.py *** -->

<table cellpadding=5 border=0 width=100%>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Linux for Industrial Applications</b><br>3rd Braunschweiger
	Linux-Tage<BR>
        <td valign=top>May 4-6, 2001<BR>Braunschweig, Germany<BR>
        <A HREF="http://braunschweiger.linuxtage.de/industrie/" target=_blank>
        http://braunschweiger.linuxtage.de/industrie/</A><BR>
        </td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Linux@Work Europe 2001</b><BR>
        <td valign=top>May 8 - June 15, 2001<BR>Various Locations<BR>
        <A HREF="http://www.ltt.de/linux_at_work.2001/" target=_blank>
        http://www.ltt.de/linux_at_work.2001</A><BR>
        </td></tr>  

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Linux Expo, S&atilde;o Paulo</b><BR>
        <td valign=top>May 9-10, 2001<BR>S&atilde;o Paulo, Brazil<BR>
        <A HREF="http://www.linux-expo.com" target=_blank>
        http://www.linux-expo.com</A><BR>
        </td></tr>   

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>SANS 2001</b><BR><td valign=top>May 13-20, 2001<BR>
	Baltimore, MD<BR>
        <A HREF="http://www.sans.org/SANS2001.htm" target=_blank>
       	http://www.sans.org/SANS2001.htm</A><BR>
        </td></tr>   

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>7th Annual Applied Computing Conference</b><BR>
        <td valign=top>May 14-17, 2001<BR>Santa Clara, CA<BR>
        <A HREF="http://www.annatechnology.com/annatech/HomeConf2.asp" 
	target=_blank>
        http://www.annatechnology.com/annatech/HomeConf2.asp</A><BR>
        </td></tr>  

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Linux Expo, China</b><BR>
        <td valign=top>May 15-18, 2001<BR>Shanghai, China<BR>
        <A HREF="http://www.linux-expo.com/" target=_blank>
        http://www.linux-expo.com</A><BR>
        </td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr> 

<tr><td valign=top>
        <b>SITI International Information Technologies Week</b><br>
	OpenWorld Expo 2001<BR>
        <td valign=top>May 22-25, 2001<BR>Montr&eacute;al, Canada<BR>
        <A HREF="http://www.mediapublik.com/en/" target=_blank>
        http://www.mediapublik.com/en/</A><BR>
        </td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr> 

<tr><td valign=top>
	<b>Strictly e-Business Solutions Expo</b><BR>
	<td valign=top>May 23-24, 2001<BR>Minneapolis, MN<BR>
	<A HREF="http://www.strictlyebusinessexpo.com/" target=_blank>
	http://www.strictlyebusinessexpo.com</A><BR>
	</td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Linux Expo, Milan</b><BR>
        <td valign=top>June 6-7, 2001<BR>Milan, Italy<BR>
        <A HREF="http://www.linux-expo.com" target=_blank>
        http://www.linux-expo.com</A><BR>
        </td></tr>   

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr> 

<tr><td valign=top>
        <b>Linux Expo Montr&eacute;al</b><BR>
        <td valign=top>June 13-14, 2001<BR>Montr&eacute;al, Canada<BR>
        <A HREF="http://www.linuxexpomontreal.com/EN/home/" target="_blank">
        http://www.linuxexpomontreal.com/EN/home/</A><BR>
        </td></tr>         

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Open Source Handhelds Summit</b><BR>
        <td valign=top>June 18-19, 2001<BR>Austin, TX<BR>
        <A HREF="http://osdn.com/conferences/handhelds/" target=_blank>
        http://osdn.com/conferences/handhelds/</A><BR>
        </td></tr>  
<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
	<b>USENIX Annual Technical Conference</b><BR>
	<td valign=top>June 25-30, 2001<BR>Boston, MA<BR>
	<A HREF="http://www.usenix.org/events/usenix01/" target=_blank>
	http://www.usenix.org/events/usenix01</A><BR>
	</td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
	<b>PC Expo</b><BR>
	<td valign=top>June 26-29, 2001<BR>New York, NY<BR>
	<A HREF="http://www.pcexpo.com/" target=_blank>www.pcexpo.com</A><BR>
	</td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>     
	<b>Internet World Summer</b><BR><td valign=top>July 10-12, 2001<BR>
	Chicago, IL<BR>
	<A HREF="http://www.internetworld.com/" target=_blank>
	http://www.internetworld.com</A><BR>
	</td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
	<b>O'Reilly Open Source Convention</b><BR>
	<td valign=top>July 23-27, 2001<BR>San Diego, CA<BR>
	<A HREF="http://conferences.oreilly.com/" target=_blank>
	http://conferences.oreilly.com</A><BR>
	</td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>10th USENIX Security Symposium</b><BR>
        <td valign=top>August 13-17, 2001<BR>Washington, D.C.<BR>
        <A HREF="http://www.usenix.org/events/sec01/" target=_blank>
        http://www.usenix.org/events/sec01/</A><BR>
        </td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>HunTEC Technology Expo & Conference</b><br>Hosted by Hunstville IEEE<BR>
        <td valign=top>August 17-18, 2001<BR>Huntsville, AL<BR>
	URL unkown at present<br>
        </td></tr>    

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Computerfest</b><BR>
        <td valign=top>August 25-26, 2001<BR>Dayton, OH<BR>
        <A HREF="http://www.computerfest.com/" target=_blank>
        http://www.computerfest.com</A><BR>
        </td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top> 
	<b>LinuxWorld Conference & Expo</b><BR>
	<td valign=top>August 27-30, 2001<BR>San Francisco, CA<BR>
	<A HREF="http://www.linuxworldexpo.com" target="_blank">
	http://www.linuxworldexpo.com</A><BR>
	</td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>The O'Reilly Peer-to-Peer Conference</b><BR>
        <td valign=top>September 17-20, 2001<BR>Washington, DC<BR>
        <A HREF="http://conferences.oreilly.com/p2p/call_fall.html" 
	target=_blank>
        http://conferences.oreilly.com/p2p/call_fall.html</A><BR>
        </td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
	<b>Linux Lunacy<br>Co-Produced by <i>Linux
	Journal</i> and Geek Cruises</b><BR>
        <A HREF="http://www.linuxjournal.com/lunacy/cruise.html" target=_blank>
        Send a Friend <i>LJ</i> and Enter to Win a Cruise!</A><BR> 
	<td valign=top>October 21-28, 2001<BR>Eastern Caribbean<BR>
	<A HREF="http://www.geekcruises.com/" target=_blank>
	http://www.geekcruises.com</A><BR>
	</td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>LinuxWorld Conference & Expo</b><BR>
        <td valign=top>October 30 - November 1, 2001<BR>Frankfurt, Germany<BR>
        <A HREF="http://www.linuxworldexpo.de/linuxworldexpo/index.html" 
	target=_blank>
        http://www.linuxworldexpo.de/linuxworldexpo/index.html</A><BR>
        </td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>5th Annual Linux Showcase & Conference</b><BR>
        <td valign=top>November 6-10, 2001<BR>Oakland, CA<BR>
        <A HREF="http://www.linuxshowcase.org/" target=_blank>
        http://www.linuxshowcase.org/</A><BR>
        </td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>Strictly e-Business Solutions Expo</b><BR>
        <td valign=top>November 7-8, 2001<BR>Houston, TX<BR>
        <A HREF="http://www.strictlyebusinessexpo.com/" target=_blank>
        http://www.strictlyebusinessexpo.com</A><BR>
        </td></tr> 

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>  

<tr><td valign=top>
        <b>LINUX Business Expo</b><BR>Co-located with COMDEX<br>
        <td valign=top>November 12-16, 2001<BR>Las Vegas, NV<BR>
        <A HREF="http://www.linuxbusinessexpo.com" target=_blank>
        http://www.linuxbusinessexpo.com</A><BR>
        </td></tr>

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr>

<tr><td valign=top>
        <b>15th Systems Administration Conference/LISA 2001</b><BR>
        <td valign=top>December 2-7, 2001<BR>San Diego, CA<BR>
        <A HREF="http://www.usenix.org/events/lisa2001/" target=_blank>
        http://www.usenix.org/events/lisa2001</A><BR>
        </td></tr>  

<tr><td colspan=2><HR size=5 width=100% noshade align=center></td></tr> 


</table>
<!-- *** END events table [this line needed by Linux Gazette events.py *** -->





<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Newlix ServerWare
</FONT>
</H3> 


<P> <a href="http://www.newlix.com">
Newlix Corporation</a> has developed an intelligent and customisable
administration solution for Linux based server appliances. Newlix
ServerWare contains an intelligent administration engine so intuitive that
it creators say
"it can be seen as having an entire IT team sucked right into the server
appliance!" 
This technology is intended to improve the functionality and ease of use of
server appliances.
Full details are 
<a href="http://www.newlix.com/products/datasheet.html">available</a> on the
Newlix website.






<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">eCluster Internet Server Clustering
</FONT>
</H3> 


<P>eCluster from 
<a href="http://www.xgforce.com/">XGforce</a>
is a scalable, Intelligent load-balance 
cluster system, which can be scaled up to 1024 Internet cluster
groups and each contains 1024 cluster nodes(1024X1024). 
With round trip time load balance algorithm, one can cluster 
any OSes on any CPUs, such as NT, Novell, 
UNIXes (SUN SPARC, OS2000 BSD, Linux), etc. The 
support of load balance or fail safe mode, ensured non-stoppable
and fast business transactions for SQL Database Servers, such as 
Oracle, MS SQL, Informix, MySQL, Postgress, etc. 
<p>
A load balance algorithm is used which includes CPU load, weighted load, 
vm usage, round trip time, CPU usage, etc. 
Other features include Network Traffic Distribution, Network Failsafe,
CFS(tm), and Large Network Management for both Internet and Intranet.
 
Ports for LINUX, SUN, FreeBSD, and NT are available and free support 
is provided. For more information, consult the XGforce
<a href="http://www.xgforce.com/">website</a>.

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">ActiveState Launches ASPN Initiative
</FONT>
</H3> 


<P> 
<a href="http://www.ACtiveState.com/">
ActiveState</a> has launched a new initiative to enable programming with
open source technologies.  The ActiveState Programmer Network (ASPN)
includes quality assured binary distributions of Perl, Python and Tcl;
multi-language and platform IDEs; technical references, sample code, recipes
and more.  For additional details or go to the 
<a href="http://www.ACtiveState.com/ASPN">
ASPN website</a>.

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">OTG Software
</FONT>
</H3> 

<p><a href="http://www.otg.com/">
OTG Software</a> has announced its acquisition of 
<a href="http://www.smartstorage.com">
Smart Storage</a>, a privately held provider
of standards based DVD and CD storage management software.
OTG expects Smart Storage's CD/DVD technology to speed its
entry into the rich media market, to boost its international
momentum, and to enable it to offer more solutions for storing
and accessing data on the UNIX and Linux platforms. 

<hr noshade width="20%">

OTG, has also announced its participation and strategic partnership in 
<a href="http://www.bmc.com/">
BMC Software</a>'s  Application-Centric Storage Management Consortium 
(<a href="http://www.bmc.com/products/storage/index.html?p041001er">
ACSM</a>), 
a partner program that provides a competitive edge and
additional avenues to members for market development, customer services and
market expansion.

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Fortran
</FONT>
</H3> 
Many of us involved in scientific computing make considerable use of
Fortran, either for writing our own code, or for the many libraries which
have been written in the language. Dr. Bronson Messer of the University of
Tennessee has recommended
<a href="http://studbolt.physast.uga.edu/templon/fortran.html">
http://studbolt.physast.uga.edu/templon/fortran.html</a> as a good source of
information relating to Linux and Fortran.
It has comparisons of various compilers, news, tips, etc.


<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green"><IMG ALT="Linux Focus" SRC="../gx/linuxfocus.jpg" WIDTH="143" HEIGHT="45">
</FONT>
</H3> 



Here are the May-June articles for the ezine
<A HREF="http://www.linuxfocus.org/">Linux Focus</A>.

<br>
<UL>
<LI><a href="http://linuxfocus.org/English/May2001/article205.shtml">Building a Linux-controlled walking robot</a><br></LI>
<LI><a href="http://linuxfocus.org/English/May2001/article202.shtml">Through the tunnel</a><br></LI>
<LI><a href="http://linuxfocus.org/English/May2001/article190.shtml">Avoiding security holes when developing an application - Part 3 : buffer overflows</a><br></LI>
<LI><a href="http://linuxfocus.org/English/May2001/article181.shtml">Do your job with make!</a><br></LI>
<LI><a href="http://linuxfocus.org/English/May2001/article200.shtml">Introduction to BORG</a><br></LI>
<LI><a href="http://linuxfocus.org/English/May2001/article204.shtml">Real-time mp3 recording, part 2</a><br></LI>
<LI><a href="http://linuxfocus.org/English/May2001/article194.shtml">Game Review - GLTron</a><br></LI>
</UL>



<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Links
</FONT>
</H3> 

<P> 
There is a 
<a href="http://www.tempest.com.br/advisories/01-2001.html">
vulnerability</a> in kernel 2.4.x IPTables which you should patch if you use
Linux 2.4 for firewalling. 
Quoting from the SANS Institute's alert:
"A vulnerability in the ip_conntrack_ftp module, which is responsible
for tracking incoming FTP connections, has been found. This
vulnerability could be used to bypass IPTables firewall rules if
IPTables is configured to allow RELATED connections to pass unhindered,
which is a standard configuration used with FTP servers. An attacker
can trick the ip_conntrack_ftp module into creating RELATED connections,
thus allowing various outbound connections to the network of the
firewall itself."
A <a href="http://netfilter.samba.org/security-fix/">
patch</a> is available.

<p>
<a href="http://www.thedukeofurl.org/">The Duke of URL</a> has the following
links to tempt you:
<ul>
    <li><a href="http://www.thedukeofurl.org/reviews/misc/suse71">
    review</a> of SuSE Linux 7.1
    http://www.thedukeofurl.org
    <li><a href="http://www.thedukeofurl.org/reviews/systems/pogovelocity">
    Review</a> of the Pogo Linux Velocity, a desktop Linux machine which sports
    IDE RAID 1 or RAID 0.
    <li><a href="http://www.thedukeofurl.org/reviews/network/wirelesslan2">
    Wireless LAN Overview</a> Part 2: the Devices. This is a good article for
    anyone interested in how the new 802.11b devices run on both Linux and
    Windows systems.  Both cards are tested on each OS.
    <li>An <a href="http://www.thedukeofurl.org/reviews/network/v92">
    editorial</a> on V.92, its benefits, if you're eligible for the update
    and if V.92 is really that much better than the older V.90 standard for
    modems.
</ul>

<P> 
Since the point of FAQ's is to get newbies up to speed, let's take this
opportunity to direct attention to <a href="http://www.tux.org/lkml">
The linux-kernel mailing list FAQ</a>. Then when you have digested that, you
can see what's happening 
<a href="http://vger.kernel.org/">on-list</a>.
<p>

<a href="http://www.slashdot.org/">SlashDot</a> has offered the following
links in the past month:
<ul>
    <li> An <a href="http://www.daemonnews.org/200104/bsd_family.html">
    article</a> discussing the differences between FreeBSD, NetBSD, OpenBSD and
    Apple's OS X/Darwin
    <li> Slashdot have an 
    <a href="http://slashdot.org/interviews/01/04/04/1345213.shtml">
    interview</a> with Microsoft's Doug Miller
    <li>
    <a href="http://www.oreilly.com/news/parrotstory_0401.html">
    Parrot:</a> how the April Fool's joke of the Perl and Python merger was
    perputrated.
</ul>

Suresh Ramasubramanian mailed a link to 
<a href="http://www.hserus.net/dlhowto.html">
an article</a> he has prepared, providing a HOWTO
on configuring a linux box dialup connection, complete with
configuring email services (using sendmail, exim and postfix as the MTA
and mutt as the MUA) on the box. You might find this useful.


<P> Bryan Pfaffenberger writes about 
<a href="http://www.linuxjournal.com/articles/currents/0030.html">
Why Open Content Matters</a> in his
Linux Journal web column
"<a href="http://www.linuxjournal.com/articles/currents/">
Currents</a>".

<P> And please, some paper-clip sized sympathy for The Microsoft Office
help clip who became the latest (and most welcome ;-)
<a href="http://news.cnet.com/news/0-1003-200-5575112.html?tag=st.cn.1.lthd">
redundancy</a> in the tech-sector recently.
<p>

Finally, not strictly Linux, but 
<a href="http://www.unixspace.com/">UnixSpace.com</a> have announced a free
on-line internet access 
<a href="http://www.unixspace.com/context">service</a>
to their ConteXt database server. Includes 30Mb space, Unix shell command line, and some GUI treats focused on DataBase building.



<a name="software"></a>
<P> <hr> <P> 
<!-- =================================================================== -->
<center><H3><font color="green">Software Announcements</font></H3></center>



<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">SSH
</FONT>
</H3> 

<P> 
<a href="http://openssh.com/">
Open SSH</a> have announced the release of version 2.5.2 of their software.
The Open SSH suite includes the ssh program which replaces rlogin and
telnet, scp which replaces rcp, and 
<A HREF="../issue64/dellomodarme.html">sftp</A>
which replaces ftp.  Also included
is sshd which is the server side of the package, and the other basic
utilities like ssh-add, ssh-agent, ssh-keygen and sftp-server. OpenSSH
supports SSH protocol versions 1.3, 1.5, and 2.0. You cannot afford to
ignore security!


<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">PostgreSQL 7.1 version announced
</FONT>
</H3> 
The 
<a href="http://www.ca.postgresql.org/index.html">
PostgreSQL</a> open source database core development community have
announced the official release of the  PostgreSQL 7.1 version. Check their
<a href="http://www.ca.postgresql.org/news.html">news</a> page for more information.
PostgreSQL 7.1 will feature several upgrades and improvement from the
previous version, including: 

<ul> 
<li>	full support for outer joins 
<li>	removal of the notorious 8k row length limit 
<li>	write-ahead logging performance enhancement 
<li>	even greater support for complex queries 
<li>	support for a larger number of complex queries 
<li>	a boost in overall performance (speed) 
<li>	improvements to the JDBC and ODBC interfaces and backup/restore
features 
<li>	Fuller support for ANSI SQL92 standards.
</ul>
PostgreSQL version 7.1 includes contributions from more than 120 members of
the PostgreSQL open source development community. 

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Python
</FONT>
</H3> 

<a href="http://www.python.org/2.1/">
Python 2.1</a> has been released. Find out 
<a href="http://www.amk.ca/python/2.1/">
what's new</a>, and read the full
<a href="http://sourceforge.net/project/shownotes.php?release_id=31464">
release notes</a>.

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Cylant IDS for Linux: prevents unknown attacks too
</FONT>
</H3> 

<P><a href="http://www.cylant.com">
Cylant Technology</a> have released CylantSecure
for Linux, an intrusion detection system that protects against both known
and previously unknown forms of attack.
It uses a modified kernel in conjunction with custom kernel modules to
provide system protection -- and becomes part of the running kernel.
Unlike other IDS products,
CylantSecure does not use rules or patterns for identifying attacks,
eliminating the need to rely on a database of known attack signatures.
Instead, it focuses on actual software behaviour and builds a statistical
model of nominal system behaviour. It enables a computer to distinguish
between normal and abnormal behaviour, and then uses that information
to stop malicious attacks before any damage can occur.
Details on the software are in an online
<a href="http://www.cylant.com/products/secure.htm">
press release</a>.


<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">ICS Integrates Themes Into Open Motif
</FONT>
</H3> 

<a href="http://www.ics.com/">
Integrated Computer Solutions</a> has announced the Developer's
Release of its initiative to add themes to Open Motif. Themes is a
capability supplied with Linux desktop environments that provides users with
the ability to personalise the overall look of the user interface of their
desktop.
The Developer Release of Themes for Open Motif works with GTK themes created
for Gnome. Currently, themes are
converted by hand into a format that Open Motif can process. As the Open
Motif Themes capability evolves, no conversion will be necessary and Open
Motif based applications will automatically adopt the theme set by the end
user. The objective of the initiative is to support both the Gnome and KDE
desktop environments. ICS is actively looking to recruit other Open Source
developers to help with this project.
Further details can be found at the ICS forum 
<a href="http://www.ics.com/forum/forum.php?forum_idG">
website</a>.

<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Internet Exchange Messaging Server 5
</FONT>
</H3> 

Messaging software developer 
<a href="http://www.ima.com/">International Messaging Associates</a>
have launched the beta version of its latest product,
Internet Exchange Messaging Server 5 (IEMS 5). IEMS 5 supports distributed
computing environments and is said to run well on mixed Linux and Windows
platforms. 
"Currently, we are working on providing support for several Linux
distributions," said Tim Kehres, IMA Managing Director.   These Linux
distributions include RedHat, SuSE, VALinux, Turbo Linux, Caldera, Mandrake,
among others. 
This product enables users to access
their mailboxes via POP3 or IMAP4-capable clients such as Microsoft Outlook,
Netscape Navigator, Eudora Mail, as well as the Internet Exchange Web Mail
Client.

<P> You can get a copy of IEMS 5 at 
<a href="http://www.ima.com/download/v5eval.html">
http://www.ima.com/download/v5eval.html</a>.
The product overview can, also be 
<a href="http://www.ima.com/pdf/iemsoverview.pdf">
downloaded</a>. Beta participants of the Linux-Windows-based
Internet Exchange Messaging Server (IEMS) 5 shall get a US$300 price
reduction (about 30% off) if
they purchase the messaging solution now than wait for its forthcoming
official release.





<P> <hr> <P> 
<!-- =================================================================== -->
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<FONT COLOR="green">Other software
</FONT>
</H3> 

<a href="http://www.ba.be/">Better Access Networking</a> in Leuven is 
<a href="http://www.teamware.com/">Teamware's</a> new reselling partner for
Teamware Office 5.3 for Linux in Belgium. Teamware Office for Linux completes
Better Access' product offering by bringing e-mail, calendar and document
management functionalities to Linux. Teamware have also made a partner
agreement with
<a href="http://www.coresys.se">
Coresys AB</a> in Sweden.
For latest news, check out the Teamware 
<a href="http://www.teamware.com/mail/">newsletter</a>.

<hr noshade width="20%">


<P> The new version of 
<a href="http://www.gnu.org/software/mailman/">
Mailman</a>, 2.0.4, compatible with 
<a href="http://www.python.org/2.1/">Python 2.1</a>, is out.
<a href="http://lwn.net/">
LWN</a> have the 
<a href="http://lwn.net/2001/0419/a/mailman.php3">
story</a>.


<hr noshade width="20%">
<a href="http://www.insignia.com/">Insignia</a> sponsored a technical
interest forum at the recent Embedded Systems Conference. The subsequent
detailed press release is wide-ranging and available 
<a href="http://www.insignia.com/news/e_041001.asp">online</a>.
<!-- *** BEGIN copyright *** -->
<P> <hr> <P> 
<H5 ALIGN=center>
Copyright &copy; 2001, Michael Conry and 
the Editors of <A HREF="mailto:gazette@ssc.com"><I>Linux Gazette</I></A>.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR>
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->

<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="answer">
	<img src="../gx/dennis/qbubble.gif" alt="(?)" 
		border="0" align="middle">
	<font color="#B03060">The Answer Gang</font>
	<img src="../gx/dennis/bbubble.gif" alt="(!)" 
		border="0" align="middle">
</A></H1> 
<BR>
<H4>By Jim Dennis, Ben Okopnik, Dan Wilder, Breen, Chris, and the Gang,
	the Editors of Linux Gazette... 
	and You!
<br>Send questions (or interesting answers) to
	<a href="mailto:tag@ssc.com">tag@ssc.com</a>
</H4>
<p><em><font color="#990000">There is no guarantee that your questions
	here will <b>ever</b> be answered.  You can be published anonymously 
	- just let us know!
</font></em></p>
</center>

<p><hr><p>
<!--  endcut ======================================================= -->
<H3>Contents:</H3>
<dl>
<dt><a href="#tag/greeting"
	><strong>&para;: Greetings From Heather Stern</strong></A></dl>

<DL>
<!-- index_text begins -->
<dt><A HREF="#tag/1"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>help installing telnetd</strong></a>
<dt><A HREF="#tag/2"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>touch files recursively linux mandrake 7.2</strong></a>
<dt><A HREF="#tag/3"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>Winprinters</strong></a>
<dt><A HREF="#tag/4"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>your mail --or--
<dd><A HREF="#tag/4"
	><strong>Search and Replace Without Breaking Permissions</strong></a>

<dt><A HREF="#tag/5"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>your mail --or--
<dd><A HREF="#tag/5"
	><strong>Kernel Panic after putting disk back</strong></a>

<dt><A HREF="#tag/6"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>Procmail and regular expressions....(Snowwhite...)</strong></a>
<dt><A HREF="#tag/7"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Need to milk you again --or--
<dd><A HREF="#tag/7"
	><strong>Timely Samba Release?</strong></a>

<dt><A HREF="#tag/8"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>3d linux</strong></a>
<dt><A HREF="#tag/9"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>linux vectoring synergy</strong></a>
<dt><A HREF="#tag/10"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>Why linux for routing</strong></a>
<dt><A HREF="#tag/11"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>disappearing act</strong></a>
<dt><A HREF="#tag/12"
	><img src="../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>getting 2 dynamic ip addresses</strong></a>
<!-- index_text ends -->
</DL>
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/greeting"><HR WIDTH="75%" ALIGN="center"></A>
<H3 align="left"><img src="../gx/dennis/hbubble.gif" 
	height="50" width="60" alt="(&para;) " border="0"
	>Greetings from Heather Stern</H3>
<!-- begin hgreeting -->
<p>Once again, welcome to the wonderful world of The Answer Gang.  The peeve
of the month this time is a tie:</p>

<ul>
<li><strong>AOL users asking for help regarding things which clearly would 
   not be answered by AOL's tollfree tech support by anything but closing the
   offending account.</strong>
<br>&nbsp;
<br>Folks, AOL doesn't <em>have</em> a Linux version, not even for SVGAlib.
        The closest we can get are a zillion instant messanger clients,
        including Netscape, for which the universal trick is "tell it who you
        are on AOL, then start IM'ing your friends."  If you can't figure
        out who you are on AOL, we certainly don't know!  So, we can't answer 
        any AOL questions at all.  Even ethical ones.
<br>&nbsp;

<li><strong>Business people who want us to do <em>their</em> homework -
   asking very complicated questions clearly worth a certain amount of
   consulting time, frosted with an automatically tacked on "This message
   is confidential and may not be given to anyone but the intended recipient,
   legal mumbo jumbo, etc. etc." message which they may not even be aware of,
   and possible cherry on top "Please hurry."</strong>
<br>&nbsp;
<br>Understand we're not really peeved at the person who's asking, so much
    as the presumption.  <em>Linux Gazette</em> is for everyone ... to 
    make Linux just a little more fun ... and if we don't get to (potentially)
    give your answer to the masses, too, then <em>LG</em> isn't getting
    "paid" to pass your question along to us.
<br>&nbsp;
<br>If you're a corporate type with an outbound mail gateway that adds such
    notes, and you're fairly sure your answer will be useful (maybe even fun)
    for the rest of the <em>Linux Gazette</em> readership, then
<blockquote><em><font color="#FF0000">give us permission to
    publish the thread, up front, when you ask the question.
</font></em></blockquote>
<br>&nbsp;
<br>Your company will still be anonymous.  You can be anonymous too, if 
    you say so.
<br>&nbsp;
<br>As for "hurry" -- if you want a timely answer, or even to be sure of
    getting one, pay a consultant.  
	(Cheap plug: some of the Gang happen to be consultants.  But not
	 all of us.)
</ul>

<p>We could probably use a few more articles that appeal to corporate
users, though!  Enough of that, though.  Onward to something fun.  The
fun I took on this month is to upgrade my system.</p> 

<p>Oh boy.</p>

<p>Surely I mentioned that I've been on a continuous upgrade path of 
   <a href="http://www.suse.com/">SuSE</a> since early 5.1?  No?  Well,
   okay, I admit, I did a "real" reinstall sometime around 6.1 or so,
   and then have chugged along on security updates and adding RPMs from
   the latest 6.x branch for a while.  With an occasional graft from
   Debian packages and source tarballs.</p>

<p>Like any normal user I also have lots of different things I do, so 
   my home directory's a bit messy, I have a few projects here and there,
   and I haven't been real prissy about which account I use to download
   general things like cartoons (Hi 
   <a href="http://www.shanecollinge.com/Linux">Shane</a>!) 
	or new kernel sources into.  Usually I remember to move them to 
	someplace under /usr/src eventually.</p>

<p>As Piglet was fond of saying, "Whatta... whatta mess."</p>

<p>Surely it would have been easier for me if I hadn't decided to buy an
   extra hard disk at the same time, discovered that my floppy bay stopped
   working (p.s. can't boot from my CD.  Something to do with it being a SCSI
   device in an IDE system), and (eek!) was reminded that we'd like to get
   the column fragments in early this month.</p>

<p>Of course, I was able to abuse about a CD's worth of free disk space to
   cover for this. I made the extra hard disk a feature rather than more
   trouble by installing the new setup solely to it.</p>

<p>The install went fine, but it wasn't completely smooth.  Here's a few
hints if you're plotting an upgrade, and I promise, they don't depend on
you using SuSE:</p>

<ul>
<li><strong>Decide how much stuff you're going to put on there <em>before</em>
	you lay out your partitions, so you have enough.</strong>
<br>I ended up experimenting with <tt>parted</tt> after I foolishly
   made <tt>/usr</tt> a bit small (Hint: 2 Gb is <em>not</em> big enough.  
   What was I <em>thinking</em>?  Oh yeah.  My old drive didn't use Gnome and K
   desktop.  Now they're par for the course.  Heh.)  <tt>parted</tt> works
   great so far, provided you've had prior training with the "Towers of
   Hanoi" game first.  It can resize partitions, and it can move them, but
   it can't slide them forward.  I had this great wooden Hanoi game when
   I was a kid, and while I was juggling partitions I could almost hear the
   wooden clicks and swaps in my head.
<br>&nbsp;

<li><strong>Check that you're going to be able to use the same account 
	numbers.</strong>
<br>This is more of a biggie if you're completely changing distros, but
    it still applies.  If you've created "system level" accounts for a
    database or something, and it wasn't a package designed for your
    distro, you may discover that something else expects to use that number 
    now.  Whether you move your own, or decide to do something about the
    interloper, things aren't going to work right until it's fixed.
<br>&nbsp;
<br>If you can't, and you're restoring accounts from a tarball, then
	just make sure you have the user and group accounts you need
	already assigned to their new numbers before you restore.  Then
	<tt>tar</tt> will deal with the number change for you.
<br>&nbsp;

<li><strong>While we're talking about version numbers, check that config files
    haven't completely changed style during the upgrade.</strong>
<br>If they have, you probably cannot just drop the old ones back in
    safely at all.  In this category, I got off light... maybe because
    I'd already gone and upgraded a few things on my own.
<br>&nbsp;

<li><strong>If it's in the retail channel, it's out of date -- get your security
    patches.</strong>
<br>The new version of YaST makes this easier, but I also had a few things
    of my own to add to the security plan.
</ul>

<p>Beyond these normal things, I really needed to get some of these projects
   into directories of their own, so it's clear where I should put stuff for
   those things from now on.  Rather like ordering the teenager to clean up
   their room...</p>

<p>Next thing I know the end of the month is approaching, and my dreams of 
   handling TAG at a dreamy summertime pace are dashed again
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
                height="24" width="20" align="middle">
</p>

<p>I still think backups are your friend, but at least I didn't need 'em
   this time.  All I need is more RAM and I'm set!  The weather is 
   improving and I'm having a great time.  So here's those answers --
   share and enjoy.</p>

<!-- end hgreeting -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/1"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 1 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>help installing telnetd</H3>


<p><strong>From dtrott 
</strong></p> 
<p align="right"><strong>Answered By Ben Okopnik 
<br></strong></p>

<!-- sig -->

<P><STRONG>
Hi
<br>I have recently installed debian 2.2, i was just wonderin if someone had a link
or could suggest where i might find some basic instructions on setting up
telnetd.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
&lt;Warning! Opinion time!&gt; I can give you a one-word instruction manual:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQuote>
Don't.
</BLOCKQuote></BLOCKQUOTE>
<BLOCKQUOTE>
Telnet is insecure, and its capabilities are seriously limited by
comparison with SSH. Install ssh/sshd, and create an executable file in
your <TT>/etc/init.d/</TT> directory called "sshd" with the following content:
</BLOCKQUOTE>
<p align="center">See attached <a href="misc/tag/sshd.sh.txt"
	>sshd init script</a></p>
<BLOCKQUOTE>
Now, create a symlink in your <TT>/etc/rc2.d/:</TT>
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
ln -s /etc/init.d/sshd /etc/rc2.d/S20sshd
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
The "S20" part says to 'S'tart the service (rather than 'K'illing it); the
'20' places it (on my system, at least - take a look at your own "rc2.d"
and number it appropriately) just after the link to "inetd". The position
of the link is not all that critical; next to "inetd" (which starts other
network services) seems appropriate, though. If you want to run the server
immediately after doing this, but don't want to reboot, simply type
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
sshd
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
at the command prompt.
</BLOCKQUOTE>
<BLOCKQUOTE>
That's it. Just type 'ssh' where you would usually type 'telnet'. Oh, and
make sure to at least skim the 'ssh' and 'sshd' man pages; this will make
you aware of the many options that are available with this protocol.
</BLOCKQUOTE>
<BLOCKQUOTE>
I have not researched SSH in great depth, by the way; "kill telnet" is
sorta common wisdom at this point, and I've read just enough to agree with
it. After using telnet for a number of years, I find that I'm very pleased
by the configurability of SSH; that alone, security aspects aside, made it
worth switching for me. It would be nice if the other TAG members chimed
in with their take on the proper usage and better reasons, but I'm highly
satisfied with my installation.
</BLOCKQUOTE>


<!-- end 1 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/2"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 2 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>touch files recursively linux mandrake 7.2</H3>


<p><strong>From  Martin Colello  
</strong></p> 
<p align="right"><strong>Answered By Ben Okopnik 
<br></strong></p>
<P><STRONG>
This is probably so easy as to be considered a joke, but I can't figure out how
to do it.
</STRONG></P>
<P><STRONG>
I need to touch a bunch of directories recursively.  All the directories and
their contents, but I can't find any option in the touch command that allows
this.
</STRONG></P>
<P><STRONG>
Any help appreciated, thanks!
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
I've never seen a 'recurse' option in any "touch" I've used. Doesn't mean
that one doesn't exist, though. Since yours doesn't, try this:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
find DIR -exec touch {} \;
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
where DIR is either the path to the top directory that contains all the
subdirectories you want to touch, OR is a list of the paths to those
subdirectories themselves. One of those two options should do what you
want. If you want to touch only the files (not the directories), add the
'-type f' option before '-exec'.
</BLOCKQUOTE>
<BLOCKQUOTE>
It can also be a healthy idea to try it with "echo" instead of "touch" the
first time; I test a lot of my "dangerous" scripts that way before letting
them loose on live data.
</BLOCKQUOTE>

<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
Or:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
find DIR | xargs touch
</CODE></BLOCKQUOTE></BLOCKQUOTE>

<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hi, just wanted to let you know the command worked great, I never thought of
using any other argument with find except -name.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
"find" is a <em>very</em> cool utility. The man page is pretty big, but it's well
worth reading up on. Lots and lots of good options.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Linux Gazette rocks, thanks a lot for your help.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
Yeah, we know. 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle">
</BLOCKQUOTE>
<BLOCKQUOTE>
You're welcome!
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Just out of curiosity, the reason I needed to touch everything was because my
anonymous ftp server wouldn't show certain files even though the permissions
were the same as others that worked.  But I found if I touched one then it
showed up.  Now they all show up thanks to you, by why should this have happened
in the first place?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
I haven't experienced any problems with setting up FTP servers, so I can't
really comment.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
> [Heather]
Readers, if you think you know what it might have been, let us know.
You can reach The Answer Gang as <A HREF="mailto:tag@ssc.com"
	>tag@ssc.com</A>.
</BLOCKQUOTE>

<!-- end 2 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/3"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 3 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Winprinters</H3>

<p><strong>From jzaragoza alberich 
</strong></p> 
<p align="right"><strong>Answered By Mike Orr, Heather Stern
<br></strong></p>
<p><strong>
I know what a winmodem is. I know too that they must be thrown off. All
of them.
But what is a winprinter? How can they be recognized? Must they be
thrown off too? Or do they work under Linux?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
Beware of any hardware that lists only Windows operating systems on the
box.  If it says "Windows and Macintosh", there's a good chance it will work
with Linux too.  But if it lists only Windows 95/98/2000, NT and Me, be
suspicious.  It could be like a Winmodem, where vital parts of the modem
functionality are missing in the modem and must be emulated by the driver.
or it could mean there's Windows-specific code <EM>in the printer</EM>.  For
instance, instead of using a standard page-description language like PCL
or Postscript, the printer may be tied to the Windows printing system
directly (e.g., it may communicate with the computer via Windows API calls).
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
A winprinter (like a winmodem) does not have complete printer brains.
It uses WIndows GDI calls to preprocess a buffer with the printable image
and then just accepts it straight.  If I read the original description
right.  Anyways like a winmodem it rally hits CPU when trying to get work
done.
</BLOCKQUOTE>
<BLOCKQUOTE>
Under Windows that means the driver is really tiny, since GDI is part of
the default DLLs that make the rest of the GUI work.
</BLOCKQUOTE>
<BLOCKQUOTE>
Under Linux that means if it's a Lexmark you can convince it to work,
and if it's something else, you <EM>could</EM> try the Lexmark winprinter 
drivers ... and if they don't work, oh well, give that to someone who only 
uses windows and needs a cheap printer.
</BLOCKQUOTE>
<BLOCKQUOTE>
Under a debian system you can use the package lexmark7000linux. For
others you should try  Henryk Paluch's website:
<A HREF="http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver"
	>http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver</A>
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
Combined printer/fax/copier/scanners should especially be avoided unless
you know that model works with Linux.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
It turns out there's a really great site that keeps track of all sorts
of things about printing under linux.  Wouldn't you guess, it's:
<A HREF="http://www.linuxprinting.org"
	>http://www.linuxprinting.org</A>
</BLOCKQUOTE>

<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Thank you very much. You are very kind. Of course it will be an honor
to get into your magazine.
Perhaps would you find it interesting to talk about other
"winsoftware": scanners, digital photography devices, joysticks, etc.
</strong></p>

<!-- end 3 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/4"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 4 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Search and Replace Without Breaking Permissions</H3>


<p><strong>From  Peagler Kelley  
</strong></p> 
<p align="right"><strong>Answered By Ben Okopnik 
<br></strong></p>
<!-- ::
Search and Replace Without Breaking Permissions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I am doing a global search and replace on some files via a unix script. I
use the sed command (saving a copy of the original in $file.old) like so:
</STRONG></P>
<P><STRONG><CODE>
sed "s/$INPUT_TXT/$OUTPUT_TXT/g" $file &gt; $NEW_FILE
</CODE></STRONG></P>
<P><STRONG>
Then I perform a diff on the original file ($file) and the new file
($NEW_FILE) and redirect the output to <TT>/dev/null</TT>. If there is a difference
between the two files, then I move the new file to the old file.
Unfortunately I end up changing the permissions on all the files in the
directory, depending on whatever default umask is set. Is there a way that
I can either 1) find out what the permissions of the original file are and
change them accordingly to the new file, or 2) move the new file to the
original file while keeping the permissions of the old file?? Please let me
know. Thanks!!
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
"sed" is not the best tool for "in-place editing" of the kind you want to
do - all you really want is to change the data in the file, right? Perl
offers a solution that reduces it from a three-step process
(change/diff/move) to one:
</BLOCKQUOTE>

<blockquote><code><font color="#000033"><br>perl -i -wpe 's/$INPUT_TXT/$OUTPUT_TXT/g' $file
</font></code></blockquote>
<BLOCKQUOTE>
That's it. The editing is done in the file itself; the permissions are
unchanged. No muss, no fuss, no greasy aftertaste.
</BLOCKQUOTE>

<!-- sig -->

<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I agree with you. I wanted to use perl, but the person who I'm creating this
for does not know perl and will be responsible for supporting it. I like your
quick, dirty solution and I may force them to use it just because it's
easier 
<IMG SRC="../gx/dennis/smily.gif" ALT=";-)" 
		height="24" width="20" align="middle">. Thanks!
</strong></p>

<!-- end 4 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/5"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 5 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Kernel Panic after putting disk back</H3>


<p><strong>From hma 
</strong></p> 
<p align="right"><strong>Answered By Heather Stern
<br></strong></p>

<!-- sig -->

<!-- ::
Kernel Panic after putting disk back
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I like to thank u guys for great job. Am still going thru your past issues.
I have sent 2 questions here and I have not heard anything from u guys..
is my pattern wrong?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
1. We can't reply to every message.  There are hundreds and hundreds of them
every month.  That you received no reply before is not a personal slight.
We will never get to all of them.  Just continue to look for whether
someone else's answers apply to your questions too.
</BLOCKQUOTE>
<BLOCKQUOTE>
2. You had no subject this time - that usually doesn't help.
For good behavior patterns that help your message get seen, see the TAG
entry "Creed of the Querent" a few issues ago:
<A HREF="http://www.linuxgazette.com/issue62/tag/5.html"
	>http://www.linuxgazette.com/issue62/tag/5.html</A>
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I still have the following problem and I hope U can help now...The problem
am having is that when I boot to my linux I recieve the following message:
" Vfs: Kernel panic" and that it. It doesn't go.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
This message means the kernel loaded, then could not find what it's looking
for next.  VFS means virtual file system - that's what really manages all
of Linux' filesystem drivers - it probably can't find the root fs.  Although
usually if that's the problem it says so.  Odd.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
When I try doing fsck,
I get command not found.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
You're doing fsck from where?  fsck is a linux utility, so you need to come
up from a linux rescue disk of some sort.  Toms Root Boot perhaps - handy
because you can download and create one using DOS if you have to:
<A HREF="http://www.toms.net/rb"
	>http://www.toms.net/rb</A>
</BLOCKQUOTE>
<BLOCKQUOTE>
There are Windows utilities for accessing ext2 volumes, but they won't
directly help you get back into Linux, and I don't know of a Windows based
ext2 analogue to Scandisk.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The problem started when I remove one of my harddisk and after puting it
back, I got this problem. But I get into win when I select it.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
When you select Win from what?  Have you replaced LILO with something else?
(LILO doesn't normally have a selector, it makes you type things.  Of course
you could have Storm Linux, which replaced the boot: prompt with a cool
selector screen.)  Did you move any partitions before you put the drive back?
Is the drive now your second drive?
</BLOCKQUOTE>
<BLOCKQUOTE>
To fix LILO:
</BLOCKQUOTE>
<BLOCKQUOTE><ol>
<li> Boot from that rescue disk
<li> mount up the <TT>/</TT> volume on some empty directory ... <tt>/mnt</tt>
	would do nicely ... <em> don't forget to tell it to use ext2, example:
	<br><tt>mount -t ext2 /dev/hda5 /mnt</tt></em>
<li> cd into the mountpoint and run chroot
<li> edit your <TT>/etc/lilo.conf</TT> so it mentions your new volumes... and 
	points
at the right volume as your root partition now! For example, if it's
now the second drive, than all your references to <TT>/dev/hda</TT> have to 
refer to <TT>/dev/hdb</TT>, except for "boot" (which says where to put the
 LILO first stage)
<li> (If it has become the second drive) you'll also want to edit 
<TT>/etc/fstab</TT>,
since all its drive references are off, too.  Otherwise you'll get a
failure in the next stage when Linux really spins up.
<li> Run <TT>/sbin/lilo</TT> to put your bootloader back together.
Or else fix your new bootloader so it passes good options to your linux
kernel - I think NT needs a copy of a (correct) LILO bootsector for its
mechanism, in a tiny little file.
<br>
In short, LILO hates it when you move stuff around.  Sorry.
</ol></BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I hope u reply now.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
My inbox load today was light and I'm in a crossplatform mood, so you got
lucky.  Usually I leave LILO matters for the rest of the Gang.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Thanks.
<br>Hassan
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
Have a happier day
</BLOCKQUOTE>

<p>... I merged answers about his chroot troubles into the steps above ...</p>

<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Once again, thanx and keep up the good work...some day when I become a guru, I hope to help too...
<IMG SRC="../gx/dennis/smily.gif" ALT=":-)" 
		height="24" width="20" align="middle">
</STRONG></P>
<P><STRONG>
Hassan
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
When you feel ready, I'm pretty sure the Gang will still be here to welcome
you aboard!
</BLOCKQUOTE>

<!-- end 5 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/6"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 6 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Procmail and regular expressions....(Snowwhite...)</H3>


<p><strong>From Andrew Higgs   
</strong></p> 
<p align="right"><strong>Answered By Ben Okopnik, Mike Orr, Faber Fedor 
<br></strong></p>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hi all,
</STRONG></P>
<P><STRONG>
While on the subject....any suggestions on a good place to find out
about regular expressions and procmail.
</STRONG></P>
<P><STRONG>
I collect mail from one ISP mailbox and send it on to the correct user
based on email address. I also have a problem with people who use
mailing list groups in Outlook etc. How do  I split these properly?
</STRONG></P>
<P><STRONG>
Any pointers gratiously accepted.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
"procmail" uses extended regexes, much the same as "egrep". So, for some
good examples and broad-scope explanations of those, try
</BLOCKQUOTE>
<PRE>
man procmailex
man procmailrc
man grep         # The "REGULAR EXPRESSIONS" section is a great reference
man regex        # Somewhat different "flavor", but useful
</PRE>
<BLOCKQUOTE>
For single address to multiple local user resolution, read the "Email
Addressing FAQ (How to use user+box@host addresses)" at
<A HREF="http://www.faqs.org/faqs/mail/addressing/">www.faqs.org/faqs/mail/addressing/</A> - as it happens, I just ran into this
thing yesterday, and was much impressed with the logical style and layout
of it. Even if this is not <em>exactly</em> what you're doing, there are a number
of relevant useful techniques described in this document - and it's mostly
based on doing it with "procmail".
</BLOCKQUOTE>

<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
Ben!  You even wrote the article about procmail antispam filtering and
you didn't mention it. 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle">  Just in case Andrew hasn't seen it:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQuote>
<A HREF="../issue62/okopnik.html"
	>http://www.linuxgazette.com/issue62/okopnik.html</A>
</BLOCKQuote></BLOCKQUOTE>

<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Faber]
Let me through out this little tidbit:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQuote>
If you use the \&lt; and \&gt; word boundary markers in procmail, keep in mind
that they consume (eat) the word boundary.  Every other program I've
used the word boundary markers on did <EM>not</EM> eat them.
</BLOCKQuote></BLOCKQUOTE>
<BLOCKQUOTE>
Makes a BIG difference when your grepping your text (and took me an hour
to figure out!).
</BLOCKQUOTE>
<BLOCKQUOTE>
Regards,
<br>Faber Fedor
</BLOCKQUOTE>

<!-- end 6 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/7"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 7 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Timely Samba Release?</H3>


<p><strong>From Andrew
</strong></p> 
<p align="right"><strong>Answered By Andrew Higgs, Jim Dennis  
<br></strong></p>
<!-- ::
Timely Samba Release?
~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello,
</STRONG></P>
<P><STRONG>
I swear that the hardest thing to setup under Linux (at least for
me ) has been samba. Running Linux RedHat 6.1 &amp; have a windows 98
se machine. I see the Linux machine when i go into Network
Neighbourhood &amp; when i click on it i get the password box but it
ALWAYS fails. The message i am getting at the moment is this
</STRONG></P>

<pre><strong> [2001/04/08 04:02:05, 0] smbd/server.c:sig_hup(340)
   Got SIGHUP
 [2001/04/09 00:18:04, 0] smbd/password.c:domain_client_validate(1213)
   domain_client_validate: no challenge done - password failed
 [2001/04/09 00:18:05, 0] smbd/password.c:domain_client_validate(1213)
   domain_client_validate: no challenge done - password failed
 [2001/04/09 00:18:09, 0] smbd/password.c:domain_client_validate(1213)
   domain_client_validate: no challenge done - password failed
 [2001/04/09 00:18:10, 0] smbd/password.c:domain_client_validate(1213)
   domain_client_validate: no challenge done - password failed
</strong></pre>
<P><STRONG>
What i would truley like is to setup Linux as a domain controller
so when booting the windows machine validation is done via the
Linux machine by verifying against the password file or smbpasswd
file &amp; so then u have access to shares at that point. Does it have
to be WinNT to get this to work. I know their is the issue with
encrypted passwords. Currently my Linux machine is set to yes
Regards...
</STRONG></P>
<P><STRONG>
Andrew
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Andrew Higgs]
Hi Andrew,
</blockquote>
<blockquote>
It is very possible to have Win 95 and 98 logon to a Samba domain. I
assume you have read the relevant docs which come with Samba.
</blockquote>
<blockquote>
Have you added a Samba user to correspond with the one (your windows
username) you are trying to use. It seems to me that it is failing
because the username (and consequently the password) is not
there. Try 'smbpasswd -a username' also 'man smbpasswd' for further
details. Also bear in mind that Win 95 (and I assume 98) don't let
you specify a username when trying to login to the Samba server,
they just use your windows username.
</blockquote>
<blockquote>
I hope this is sorts out your problem.
</blockquote>
<blockquote>
Kind regards
<br>Andrew Higgs
</blockquote>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [JimD]
I was just reading about the Samba 2.2.0 release at
<A HREF="http://www.samba.org/samba/samba.html"
	>http://www.samba.org/samba/samba.html</A>.  The Samba team is continuing
to strive towards full domain controller and "MS Active Directory"
functionality.  You should look at the new release and read every
shred of documentation.  Linux/Samba as a domain controller is
still cutting edge (sometimes brushing against the cutting edge leaves
us dripping a bit of blood).
</BLOCKQUOTE>
<BLOCKQUOTE>
You'll especially want to read the PDC HOWTO documentation at
your nearest mirror of the Samba web site: <A HREF="http://www.samba.org"
	>http://www.samba.org</A>
Just follow the "Documentation" link and look for the FAQs and
HOWTOs under the "New PDC Documentation" heading.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are Samba mailing lists and discussion of Samba predominates
the discussion on the news:comp.protocols.smb newsgroup.  If you
have a connection to a good NNTP server you can post your questions
to a forum where hundreds of Samba users and specialists can see it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Also, no tech support suggestions for Samba would be complete if
we didn't point you to the Samba DIAGNOSIS guide.  You can see that
at: <A HREF="http://WWW.samba.org/samba/docs/DIAGNOSIS.html"
	>http://WWW.samba.org/samba/docs/DIAGNOSIS.html</A> (where WWW can
be www or the names of one of the many samba mirrors).
</BLOCKQUOTE>

<!-- end 7 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/8"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 8 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>3d linux</H3>


<p><strong>From Philippe CABAL 
</strong></p> 
<p align="right"><strong>Answered By Michael J. Hammel 
<br></strong></p>
<P><STRONG>
hi
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [The Graphics Muse]
Howdy.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
i am looking for a free multiplateform (win32 + unix)
3d modeling <TT>/</TT> rendering <TT>/</TT> animating software
all i found is povray and blender
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [The Graphics Muse]
That's about it.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
but id like a software as open as pov (data souces)
as intuitive as a blender
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [The Graphics Muse]
No such beast.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
actually i am a proggramer so i need to have a look at the scene-source
isnt there a vrml stuff that do broadcast output ?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [The Graphics Muse]
Nope.  You have a few choices, but nothing that fits all your desires here.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you want VRML, you can try SCED or SCEDA.  Both have pretty primitive
interfaces, but are fairly sophisticated underneath.  They include a
constraint-based mechanism.  The source is available.  They are the only
ones I know of that produce VRML output.
</BLOCKQUOTE>
<BLOCKQUOTE>
Outside of these two, all the other tools do not provide source:  Blender,
Houdini, Maya, etc.  Blender is by far the least expensive but the most
sophisticated for the money.  Houdini and Maya are high end, high dollar
products.  POVRay is just a rendering engine, not an interactive modelling
tool.  A better option for rendering is probably BMRT, the Blue Moon
Rendering Tools, which is a Renderman compliant renderer.  It was actually
used for several movies.  However, like POVRay, it is just a rendering
engine, not an interactive modeller.
</BLOCKQUOTE>
<BLOCKQUOTE>
Nothing is available on Linux for free and with source provided that can do
broadcast output.  You have to string together a few different tools in
order to do that - for example Blender for modelling, something else to
convert Blender files to RIB files (it doesn't do RIB yet), and then BMRT
for rendering.
</BLOCKQUOTE>
<BLOCKQUOTE>
Blender is really the best thing going in this department, since you can
add scripting to it fairly well using Python.  It's interface is production
quality.  It just doesn't export to formats that can be used by other
rendering engines, like RIB for PRMan (Pixar's rendering engine) or BMRT.
</BLOCKQUOTE>
<BLOCKQUOTE>
As for cross platform, give it up.  Blender I think is cross platform.
POVRay doesn't much care where it's ported to and I believe BMRT has been
ported to Windows (much to the consternation of the original author, no
doubt).  But cross platform graphics tools are pretty difficult to do since
such tools are often very happy close to the hardware, and getting close to
the hardware on different OS's is not quite so easy a proposition.
</BLOCKQUOTE>
<BLOCKQUOTE>
Hope that helps.
</BLOCKQUOTE>

<!-- end 8 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/9"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 9 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>linux vectoring synergy</H3>


<p><strong>From  darrell rolstone 
</strong></p> 
<p align="right"><strong>Answered By Ben Okopnik 
<br></strong></p>

<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Dear Staff of the Answer Gang!
</STRONG></P>
<P><STRONG>
I hope you folks appreciate the occasional question from a
non-techie....whose really into seeing and helping the information
revolution FLOURISH!
</STRONG></P>
<P><STRONG>
I'm a 52 year old "synergy design consultant" from Marin County
California....living in Thailand for the last 6 plus years. I was a pioneer
in the Wholistic Health movement of the 70's and a student of R.Buckminister
Fuller. I'm a world class Nordic Physical Therapist.....and I have trouble
with even the simplest technological things like copying something onto a
disk! REALLY!
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
&lt;laugh&gt; The two are not necessarily related... but say on.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
But inspite of nearly total techno ignorance.....I'm quite skilled in the
social aspects of the techno evolution/revolution! And I sincerely want to
help that process along it's path.
</STRONG></P>
<P><STRONG>
So, my question('s) to you guru's of "geekness"....just what is being
done in the area of co-ordinating all the linux "programing development"
that is manifesting? Is there a "co-operative" formed? Can a (traditionally
"left-brained" dominant) programer offer up his/her work to a linux "group
of (traditionally right-brained dominant)marketers" that will then  take
over and bring his/her work to fruition?!
(thereby "sharing the knowledge" at a higher level of efficiency).
</STRONG></P>
<P><STRONG>
If there is such a "group"......can you direct me to them?
Praises upon you all for sharing your knowledge! Really!
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
Well, Darrell... <em>that's</em> a heck of a question to ask of a bunch of
traditionally left-brained computer types. &lt;smile&gt; Actually, if you're a
student of revolutionary processes, you may find Linux <em>very</em> interesting
for just that reason.
</BLOCKQUOTE>
<BLOCKQUOTE>
The Linux kernel itself - as wonderful of a thing as it is - is not (from
my perspective) the thing that is responsible for the popularity and the
tremendous growth of Linux. What is responsible for it is the Linux/Open
Source <em>model</em> - that of people working on their own, or with a team, and
getting full recognition for their work. The traditional hurdle of
marketing a product is largely eliminated, since the greatest majority of
the programs for Linux are free; the "distribution channel" - the Internet
- is also mostly free (the costs are not assignable to Linux, so it is
free in this regard.) In those terms, the marketing model for Linux and its
software is not the traditional "push" - we have no need to stuff it down
the gullets of barely willing customers - it is "pull": when people need a
piece of software, they research it, download it, and install it. As well,
the "feedback loop" that is usually set up between the programmer and the
interested users of the program is a tremendously powerful tool: if fifty
thousand people have pounded on your program for a few months, and the
flow of bug reports has finally ground to a halt, either that program is as
perfect as code can be, or it has simply been cowed into submission. 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle">
</BLOCKQUOTE>
<BLOCKQUOTE>
The effect of this is exactly what Robert Pirsig talked about in his "Zen
and the Art of Motorcycle Maintenance" (I would guess that you're familiar
with the work) - a shift toward Quality being the focus. That, to me, is
the most exciting thing about Linux: quality really <EM>is</EM> "Job #1".
</BLOCKQUOTE>
<BLOCKQUOTE>
As to co-operatives... well, have you ever tried herding cats? 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle"> There
are several things that have worked well in the Open Source community,
usually by providing maximum assistance and convenience but minimum
direction: any of the large-scale programming projects, such as <A HREF="http://www.winehq.com/">WINE</A>,
Mozilla, the whole series of GNU projects, <A HREF="http://www.kde.org/">KDE</A>, etc. There is also
SourceForge, which provides an archive/code repository/distribution
point for development efforts.
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm not sure if this is any kind of an answer that you were looking for;
mostly, these are just the ramblings of a right-brained guy who loves
using his creativity in a left-brained way. &lt;chuckle&gt; I think that
dichotomy was a no-starter, for me; never could see it...
</BLOCKQUOTE>

<!-- end 9 -->
<!--              . . . . . . . . . . . . . . . . . . .              -->
<A NAME="tag/10"><HR WIDTH="75%" ALIGN="center"></A>
<HR WIDTH="40%" ALIGN="center">
<!-- begin 0 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Why Linux for routing</H3>


<p><strong>From Ian Carr-de Avelon 
</strong></p> 
<p align="right"><strong>Answered By Mike Orr
<br></strong></p>
<P><STRONG>
In LG#65 I read:
<br>"Another thing this article does is raise the question, just because we
can use Linux in a wide variety of routing situations, should we? Are
you choosing a Linux router because it's the most appropriate solution
for the task, or simply because "we're a Linux-only shop"?    "
</STRONG></P>
<P><STRONG>
Well... What are the choices? Basicly:
</STRONG></P>
<P><STRONG><ol>
<li>CISCO - expensive and involving commands which are unrelated to any
other other task you do.

<li> Also ran dedicated routers - less expensive but an ever changing sea of
this month's best offer leaving you with a different web based configuration
on virtually every router you will buy and if an interface card blows,
they don't make them any more. If the system ever gets hacked - they
don't provide updates, it is obsolete.

<li>DOS based old PC - cheap but involving commands which are unrelated to any
other other task you do. If an interface card blows, it is the same as
every PC in your office and local PC store.

<li>Linux based old PC - cheap and allowing you to use the same shell, editor
etc which you use for every other computing task (assuming you are Linux based).
If an interface card blows, it is the same as every PC in your office and
local PC store.
</ol></STRONG></P>
<P><STRONG>
The Linux option has a lot going for it especially if you are an organisation
which does not have a team only dedicated to routers, like large telcos do.
Routing sits causing no problems for months, while you forget how to
work on the router, and then when problems arrive it is panic stations,
because nobody can work, clients are not being served and business is
being lost.
I run a Polish ISP with Linux and one CISCO router, which we bought because
I was over ruled, because although the WAN card for Linux was cheaper,
the CISCO dealer offered unbeatable financing. I don't see that changing soon.
</STRONG></P>
<P><STRONG>
Yours
<br>Ian
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
You bring up some good points, but that does not invalidate the question.
I'm not saying Linux *shouldn't* be used for routing, just that each
organization needs to weigh the price-vs-performance-vs-maintainability
factors for iteself.  The situation I was thinking about (and perhaps
it wasn't clear in the paragraph) was not a small, low-traffic
network, for which Linux's price and maintainability certainly runs circles
over proprietary systems, but rather an an enterprise-level,
high-traffic situation.  Is there an amount of thoroughput above which
Linux routers are not (currently) scalable, a point at which Ciscos
would be more economical?  I don't know, but a netadmin in that situation
would want to explore both options before making a decision.
</BLOCKQUOTE>
<BLOCKQUOTE>
My point is not so much about Linux vs Cisco, but about jumping on the
Linux bandwagon too quickly.  We all know hundreds of companies that
refused to consider any alternatives to buying NT servers, WINS servers,
Novell servers, etc.  The same can happen in the Linux world, if one
refuses to consider an alternative to a Linux router more because it's
politically incorrect than because of an actual comparision of price,
performance and maintainability and how they would all affect your
organization in its situation.
</BLOCKQUOTE>

<!-- end 0 -->
<!--              . . . . . . . . . . . . . . . . . . .              -->
<A NAME="tag/11"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 0 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>disappearing act</H3>


<p><strong>From eric lin  
</strong></p> 
<p align="right"><strong>Answered By Ben Okopnik 
<br></strong></p>
<P><STRONG>
Hello Answer Gang,
</STRONG></P>
<P><STRONG>
Let me start off by thanking all of you for providing such excellent
service.
</STRONG></P>
<P><STRONG>
I'm running RedHat 6.2 with apache 1.3.9 and Sendmail 8.9.3 as an Internal
web/mail server.
I use it on a daily basis, but haven't changed any of the configurations
since the initial install. Yet mysteriously the httpd.conf and the
sendmail.conf files becomes null (file size of 0)!!!  This occurs randomly
and usually after a reboot of the system.
</STRONG></P>
<P><STRONG>
Since it is internal and no one uses it except for myself, I have no way of
explaining why this is.
</STRONG></P>
<P><STRONG>
Do you guys have any ideas???
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
Wow. That's odd. <EM>Very</EM> odd. It sounds like maybe some sort of a config
file backup procedure (?) gone wrong. One of the first things I'd do is
switch to "<TT>/etc/init.d</TT>" and grep the scripts there for any mention of the
above files. I'd investigate anything I found with a <em>very</em> sceptical eye,
possibly looking for evidence of intrusion (I can see some script kiddie
being very interested in those two files...) or just a badly-written
script.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you can't find anything, try setting the immutable attribute on those
files via "<tt>chattr</tt>" (see the manpage); this should at least stop them from
"disappearing". I, for one, would be <em>very</em> interested to know what you
find out in your troubleshooting process.
</BLOCKQUOTE>

<!-- sig -->


<!-- end 0 -->
<!--              . . . . . . . . . . . . . . . . . . .              -->
<A NAME="tag/12"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 0 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>getting 2 dynamic ip addresses</H3>


<p><strong>From Christi Gell
</strong></p> 
<p align="right"><strong>Answered By Mike Orr
<br></strong></p>
<P><STRONG>
I have a DSL and I want to get 2 dynamic IP addresses w/it.  I've got a
hub, but every time my husband needs to get online, I need to release my
IP address.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
Your hub is connected directly to the DSL modem?  In that case, you will
have to contact your ISP to get a second dynamic address from them... if
you can.
</BLOCKQUOTE>
<BLOCKQUOTE>
A more common scenario is to have one computer (the server) connected to the
modem and also to the hub.  The second computer is connected only to the hub.
The first computer has IP firewalling and IP masquerading compiled into the
kernel.  (I assume you're running Linux, since you sent this to a Linux answer
forum.  If you're using Windows, you'll have to go somewhere else for help.)
Then you enable IP masquerading on the server.  Now the second computer
can reach the Internet without needing a second dynamic IP from the ISP.
</BLOCKQUOTE>
<BLOCKQUOTE>
To set this up, search for "masquerading" or "masquerade" in the Linux
Gazette search engine (<a href="http://www.linuxgazette.com/wgindex.html"
>www.linuxgazette.com/wgindex.html</a>).  Or pick up a Linux
configuration book from the bookstore or look in the manual that came
with your distribution.
</BLOCKQUOTE>

<!-- end 0 -->
<center>
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.jpg">
More 2&cent; Tips!</A></H1> <BR>
<!-- BEGIN tips -->

Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A></center>
<UL>
<!-- index_text begins -->
<li><A HREF="#tips/1"
	><strong>Easy LG browsing 2 cent tip</strong></a>
<li><A HREF="#tips/2"
	><strong>vim hot color swapping</strong></a>
<li><A HREF="#tips/3"
	><strong>linux version of dos commands</strong></a>
<li><A HREF="#tips/4"
	><strong>Booting w/ CD-ROM</strong></a>
<li><A HREF="#tips/6"
	><strong>dvi and Deskjet</strong></a>
<li><A HREF="#tips/7"
	><strong>how to find an i/o adress for an specific pci slot</strong></a>
<li><A HREF="#tips/8"
	><strong>Pam.d questions</strong></a>
<li><A HREF="#tips/9"
	><strong>Finding my computer at home from the outside LG #65</strong></a>
<!-- index_text ends -->
</UL>
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/1"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Easy LG browsing 2 cent tip</FONT></H3>
Fri, 20 Apr 2001 20:31:35 +1000 (EST)
<BR>bandido (<a href="mailto:tag@ssc.com">bandido from drinkordie.com</a>)

<P>
This handy dandy function is courtasy of Cobratek on <tt>#Mandrake</tt> 
on Efnet, it is super kewl, since you can unpack all your LG issues (you 
do have all 65 don't you?) and instanty view any one.
</P>
<P>
Simply add this function to either <tt>~/.bashrc</tt> or better yet 
<TT>/etc/bashrc</TT> so everyone on your system can read LG.
</P>
<P><code>
function lg () { lynx /home/bandido/docs/Linux.Gazette/$1/index.html ; }
</code></P>
<P>
Remember to change path to whatever you unpack your LG issues to, and do
not use <tt>~/</tt> dirname of course if you put the function in 
<TT>/etc/bashrc</TT> 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle">
</P>
<P>
Personally I unpack all issues like this,
</P>
<P><code>
<br>/home/bandido/doc/Linux.Gazette/1
<br>/home/bandido/doc/Linux.Gazette/2</code>
<br>3 4 5
<br>etc
</P>
<P>
Thus, I type lg 20 or lg 35 etc, to open 20 or 35 instanlty in lynx, and I
am in prior dir when I exit. Nice and handy, never far away from LG 
<IMG SRC="../gx/dennis/smily.gif" ALT=":)" 
		height="24" width="20" align="middle">
Feel feel to drop by <tt>#Mandrake</tt> on Efnet too, unlike most linux 
channeols, newbies are very much welcome.
</P>

<!-- end 1 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/2"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">vim hot color swapping</FONT></H3>
Thu, 19 Apr 2001 07:37:04 -0700
<BR>Adam Monsen (<a href="mailto:tag@ssc.com">meonkeys from hotmail.com</a>)


<P>
Vim's syntax highlighting can be helpful at times at painful at other times.
Add this to your <tt>.vimrc</tt> and you can turn colors on and off with 
the tap of a button.
</P>
<Pre>
  " map F8 to switch on and off syntax highlighting
  function Swapcolor()
    if exists("g:syntax_on")
      syntax off
      set nohlsearch
    else
      syntax on
      set hlsearch
    endif
  endfunction
  map &lt;F8&gt; :call Swapcolor()&lt;CR&gt;
</Pre>

<!-- end 2 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/3"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">linux version of dos commands</FONT></H3>
Sun, 01 Apr 2001 15:06:34 -0700
<BR>Steve Winston (<a href="mailto:tag@ssc.com">xee from mediaone.net</a>)

<P>
They start with letter "m." They look at a floppy disk as "a:" or "a:\"
as Windoze
does.
<br>To copy one file to another, use "mcopy"
<br>If you want to copy a file "myfile" from <tt>a:</tt> 
to your home directory, use this command:
</p>
<blockquote><code>
mcopy a:\myfile /home
</code></blockquote>
<p>If you want to copy myfile from <TT>/home</TT> to <tt>a:</tt> use this 
command:
<blockquote><code>
mcopy /home/myfile a
</code></blockquote>
<p>
To check the contents of a file or directory, use mdir.
<br>To check the contents of a:
</P>
<blockquote><code>
mdir a:
</code></blockquote>
<P>
Hope that helps a little bit,
<br>stevew
</P>

<!-- end 3 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/4"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Booting w/ CD-ROM</FONT></H3>
Tue, 17 Apr 2001 23:38:57 -0400
<BR>joseph.lalingo (<a href="mailto:tag@ssc.com">joseph.lalingo from ablelink.org</a>)
<BR>Tip from Daniel S. Washko

<P><STRONG>
Hello,
</STRONG></P>
<P><STRONG>
How can I use CFDISK from my REDHAT CD-ROM as though it was from a
hard drive linux installation?
</STRONG></P>
<P>
If this is during the install process, I am pretty sure you could hit
&lt;ctrl&gt;&lt;alt&gt;&lt;f1-?&gt; to switch to another terminal.  Keep cycling through the
keys until you find a free terminal.  You should then be able to use
cfdisk.
</P>
<P>
-- Daniel
</P>

<!-- sig -->


<!-- end 4 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/6"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">dvi and Deskjet</FONT></H3>
Sat, 14 Apr 2001 09:55:53 -0400
<BR>C. Martinet (<a href="mailto:tag@ssc.com">email from cmarti.net</a>)
<br>Tip from Ben Okopnik

<P><STRONG>
Dear answer guy,
</STRONG></P>
<P><STRONG>
I would like to print a dvi file on an HP600 deskjet printer. Is it possible ?
I've tried with the commands dvilj, dvilj2p, dvilj4 and dvil4l, but there
are all for LaserJet printers. So I have some strange results.
</STRONG></P>
<P>
Have you tried "dvihp"? It's supposed to convert DVIs to HP PCL (Printer
Control Language.) Or, you could always just run "dvips" - it'll produce a
PostScript file that you should be able to print without any problems.
<br>-- Ben</P>



<!-- end 6 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/7"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">how to find an i/o adress for an specific pci slot</FONT></H3>
Thu, 29 Mar 2001 09:35:37 -0800
<BR>Christer Olsen (<a href="mailto:tag@ssc.com">christer.olsen from cegal.com</a>)
<br>Tip from Mike Orr

<P><STRONG>
i need to find out the slot adress for my pci network card , how can i
easily track down this
</STRONG></P>
<P><STRONG>
my network card is in slot 1 and i need to find out the adress
(0x0081 or ???)
</STRONG></P>
<P>
Does it say in the boot messages?  Run "dmesg | less" to see your boot
messages again.  If you don't find the right information, please
send us back a copy of your boot messages (in particular, the portions
beginning with "PCI: " and anything that looks like it may be related
to the network card).
</P>
<P>
Each PCI slot corresponds to a fixed address.  Perhaps looking in
<tt>include/linux/pci.h</tt> or <tt>drivers/pci/pci.c</tt> 
in the kernel source would help.

<br>-- Mike</P>

<!-- end 7 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/8"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Pam.d questions</FONT></H3>
Tue, 3 Apr 2001 15:11:42 +1000
<BR>andrew (<a href="mailto:tag@ssc.com">andrewkennedy from optusnet.com.au</a>)
<BR>Tips from Faber Fedor, Ben Okopnik, and Heather Stern

<P><STRONG>
Back for more of your knowledge
</STRONG></P>
<P>
And we're still here dishing it out!
</P>
<P><STRONG>
I have an authlog file &amp; i keep seeing this info within it
</STRONG></P>

<pre><strong>Apr  3 11:31:58 echelon pam_limits[27640]: invalid line 'hard^Icore^I0'
Apr  3 11:31:58 echelon pam_limits[27640]: invalid line 'soft^Inproc^I100'
Apr  3 11:31:58 echelon pam_limits[27640]: invalid line 'hard^Inproc^I150'
Apr  3 11:31:58 echelon pam_limits[27640]: invalid line 'hard^Ifsize^I40000'
</strong></pre>
<P><STRONG>
Pam was installed via an RPM &amp; seems to be working fine within everything else.
</STRONG></P>
<P><STRONG>
I would just like to fix this area of it if possible
</STRONG></P>
<P>
Check your <TT>/etc/security/limits.conf</TT> file.  It seems PAM doesn't like it.
Why?  I don't know, but I checked my limits.conf file and my columns were
separated by spaces, not tabs.
</P>
<P>
If you do a <tt>cat -v -t -e /etc/security/limits.conf</TT>, you'll see tabs
as <tt>^I</tt> and eon-oflines as <tt>$</tt>. -- Faber
</P>
<P>
Just to be nitpicky, <tt>cat -A</tt> is a combination of those options. -- Ben
</P>
<P>
<tt>cat -T</tt> is enough to see the dratted tabs as <tt>^I</tt> but stray
spaces at the end of the line still won't be obvious.  -- Heather
</P>

<!-- end 8 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<P> <A NAME="tips/9"><HR WIDTH="75%" ALIGN="center"></A> <P>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Finding my computer at home from the outside LG #65</FONT></H3>
Wed, 11 Apr 2001 11:17:02 -0400
<BR>Ben Walton (<a href="mailto:tag@ssc.com">bdwalton from mail.lakeheadu.ca</a>)

<P>
Hi there Linux Gazette Team!
</P>
<P>
I was browsing through LG today, and came across the article 'Finding my
computer at home from the outside'.  This is a topic that interests me,
as I like to be able to access my home machine from school.  Although
technically accurate, I found that writing these scripts is an extremely
cumbersome way to do the job.  (Not to mention that passwordless logins
(secure tunnel or no) are just plain bad form...).  I'm not writing this
email to complain (you guys do too much good work), but rather to
inform!
</P>
<P>
If you're in a situation like me, and you either can't get (or can't
afford) a static IP on broadband, there is a much simpler solution.  
<A HREF="http://www.dyndns.org"
	>http://www.dyndns.org</A>.  A free service (they DO accept
donations), DynDNS allows you to register a hostname (within one of
their domains...for now), and run a client to update with them each time
your IP changes.  After registering with DynDNS, you can download a
little client utility (I prefer ipcheck.py), and have it run from your
<TT>/etc/ppp/ip-up</TT> script (I'm on DSL, so my connection is still
PPP)...which is run every time that your IP changes.
</P>
<P>
I've found the service to be most valuable.
</P>
<P>
Thanks
<br>-Ben Walton
</P>

<!-- sig -->


<!-- end 9 -->

<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">The Weekend Mechanic</font></H1>
<H4>By <a href="mailto:n6tadam@users.purbeck.dorset.sch.uk">Thomas Adam</a></H4>
</center>
<P> <HR> <P>  

<!-- END header -->




<H1><CENTER>Welcome to the new Linux Weekend Mechanic!</CENTER></H1>

<H2>Table of Contents</H2>
<UL>
  <LI><A HREF="#wmdesc">What exactly is the Weekend Mechanic?</A>
  <LI><A HREF="#customshell">Customising the shell environment</A>
  <LI><A HREF="#crontab">Setting up and using crontab</A>
  <LI><A HREF="#closing">Closing Time</A>
  </LI>
</UL>
<HR>
<!-- Section one - what is the LWM-->
<A NAME="wmdesc"><H2>What exactly is the Weekend Mechanic?</H2></A>

<P>Welcome to this months new feature....<B>The Weekend Mechanic</B>. Actually,
for those of you who have been avid readers since LG's initial release, you'll
realise that this column used to be written by John M Fisk in 1996-1998 and so
it is not that new. However, I thought it would be nice to re-introduce this as
a regular feature.</P>

<P>The Weekend Mechanic will draw together my experiences of Linux and the problems that I have had to solve either at home or at school each month. So, The Weekend Mechanic will concentrate on the following:</P>
<P>
<UL>
<LI>General Linux News
<LI>Shell Programming
<LI>Shell Customisations
<LI>Sed, Awk, hints
<LI>Program Reviews
<LI>And anything else.....
</LI>
</UL>
</P>
<P>So, with that in mind, lets begin this months fixing and tinkering session......</P>
<!-- ** END SECTION ONE ** -->
<HR>
<!-- ** BEGIN "CustomShell" -->
<A NAME="customshell"><H2>Customising the Shell Environment</H2></A>
<P>I have noticed that more and more people when using Linux tend solely to rely on the GUI, hoping in vein that they do not have to type in any commands in fear of deleting their work, making a fatal mistake, etc. Although the only real threat of this happening is if you are logged in as "root", I find that people are still wary!! However, there will come a time regardless when typing in commands will be a necessity and it is important that your shell environment is customised so that you can complete your tasks with ease. This article will show you how to customise the login shell so that features such as <I>Aliases, editors, shells</I>, etc can work in the way that you want them to.</P>

<P>Firstly, we should make sure that you have an appropriate editor installed. There are many console editors to choose from, such as: emacs, joe, jed, pico, vi. Once you have found an editor that you like (I happen to use both Pico and Jed) then you can tell the shell to use. Some programs such as Cron (as we shall see later on..) rely on the shell having an editor set up so that you can edit the crontab.</P>

<P>There are two files that we shall be concentrating on.  They are located in
your home directory as: <B>.bashrc</B> and <B>.bash_profile</B>. In my .bashrc
file, I find that it begins with the following:</P>
<PRE>
# User specific aliases and functions

alias ls='ls -o --color=auto'
alias cad='cat /var/squidGuard/db/blacklist/adverts'
alias cc='cd /mnt/cdrom/Mandrake/RPMS'
alias mail='mail -v'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias d='ls'
alias s='cd ..'
alias p='cd -'
</PRE>
<P>Aliases are useful, especially if you find yourself typing out a command that has a deep directory listing. For example, if you found yourself having to keep typing in the command <PRE>cd /var/spool/users/home/mail/root/sun</PRE>to save all that typing you can specify a "shortcut" word that automatically does just that. Cool eh?</P>
<P>So to tell the shell that you want to use the word "checkmail" to do the command <PRE>cd /var/spool/users/home/mail/root/sun</PRE>you would add to the list:</P>
<P><PRE>alias checkmail='cd /var/spool/users/home/mail/root/sun'</PRE> Then you could type the alias <B>checkmail</B> and hey presto....it works!!</P>
<P>Of course many people like to issue aliases to accommodate their typographical errors; i.e.,
<PRE>
alias eamcs='emacs'
alias emcas='emacs'
</PRE>
Personally I think this is a bad idea, and you should learn to type more accurately!</P>
<BR>
<P>The next section we shall look at is how to tell the shell which programs to run when it is suitable to run them. In my <B>.bash_profile</B> file I have among the following:</P>
<PRE>
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
ENV=$HOME/.bashrc
USERNAME="root"
export USERNAME ENV PATH
</PRE>
<P>This is the section that we shall be concentrating upon setting these variables. Common variables that have not been set are ones like "EDITOR" and "MAIL". These variables are common to the user that is currently logged in, meaning that different values can be specifies for each user.
The variable <NOBR><PRE>EDITOR</PRE></NOBR> specifies the editor to use when editing files. This variable is usually called from programs such as <I>Pine</I> and <I>Cron</I>, but it can be very useful when writing shell scripts.</P>
<P>To set the variable, one has to add it to the "export" list, like this:<BR><BR><PRE>export USERNAME ENV PATH EDITOR</PRE></P>
<P>Exporting a variable releases it into the environment, rather than keeping it within a single program. Exporting is done, so that many different programs can use the same variable name with the same value, get it :-).</P>
<P>Once added to the export list, save the file, and exit your editor. So, now that we have defined a new variable, the next thing to do is to tell Bash, that it is there. To do this, you must "source" the file. This is a bash builtin that re-reads the file. You can either type this in, in one of two ways. Either you can specify <BR><PRE>source filename</PRE>or you can specify a "." thus:</P>
<PRE>. filename</PRE>
<P>And that will then active your new added variable. Well, thats it for this section....</P>
<!-- ** END "customshell" ** -->
<HR>
<!-- ** BEGIN "crontab" ** -->
<A NAME="crontab"><H2>Setting up and Using Crontab</H2></A>
<P>Do you ever find yourself repeating common tasks throughout the day, and wished that there was some sort of program that would automate it all for you? Well, look no further, Mr. Cron is here :-)</P>
<P>Cron is a scheduling program, and even more specifically it is known as a <I>daemon</I>. By daemon, I do not mean that it is a nasty creature with two horns!! A daemon is simply a program that runs in the background waiting for instructions. When it receives them, it executes them and when it has finished, it goes dormant again.</P>
<P>Cron is usually started when you switch to one of your run-levels. However, just to make sure it has started, issue the following command:</P>
<PRE>
ps ax | grep crond
</PRE>
<P>If you get a response similar to:</P>
<PRE>
root       311  0.0  0.7  1284  112 ?        S    Dec24   0:00 crond
root       8606  4.0  2.6  1148  388 tty2     S    12:47   0:00 grep crond
</PRE>
<P>Then cron has started, and you are ready to use it. If you don't get "crond" returned, then you must start the daemon, by typing <PRE>crond</PRE></P>
<P>Cron is particularly useful when you find yourself needing to run backup and general maintenance programs. To tell cron when to run a program, you have to fill out several fields. Each separate program that is scheduled via cron is put into a file known as a <I>crontab</I> file. The fields are defined as the following:</P>
<PRE>
Min	Hour	DOM	Month	DOW	User	Cmd
</PRE>
<P>And a description of their input values are summarized in the table below:</P>
<TABLE CELLPADDING="5" BORDER="1" WIDTH=100%>
<TH>FIELD</TH>
<TH>DESCRIPTION</TH>
<TR>
<TD ALIGN="center"><B>Min</B></TD>
<TD ALIGN="left">Specifies the minute on or past the hour. Values range from 0 to 59.</TD>
</TR>
<TR>
<TD ALIGN="center"><B>Hour</B></TD>
<TD ALIGN="left">Specifies the hour (Military style) that the script should run at. The range is from 0 to 23 where "0" is Midnight</TD>
</TR>
<TR>
<TD ALIGN="center"><B>DOM</B></TD>
<TD ALIGN="left">This is the Day of Month, that you want the command run on, e.g. to run a command on the 23th of each month, the DOM would be 23</TD>
</TR>
<TR>
<TD ALIGN="center"><B>Month</B></TD>
<TD ALIGN="left">Specifies the month to run the script in. Values range from 1 to 12, where "1" is January and "12" is December. Or it can be specified using the first three letters of the month, e.g. May</TD>
</TR>
<TR>
<TD ALIGN="center"><B>DOW</B></TD>
<TD ALIGN="left">Specifies the day of the week, either as a numeric value of 0 to 7 (0 and 7 are both Sunday) or as the name of the week (using first three letters only), e.g. Mon</TD>
</TR>
<TD ALIGN="center"><B>User</B></TD>
<TD ALIGN="left">Indicates who is running the command</TD>
</TR>
<TR>
<TD ALIGN="center"><B>Cmd</B></TD>
<TD ALIGN="left">The path and name of the script/program to be run</TD>
</TR>
</TABLE>
<P>You can use a "*" (without the quotes) in any of the time fields to mean
"every minute", "every hour", etc.
<P>So, with the above descriptions in mind, the following examples are all valid:</P>
<PRE>
01 * * * * root /usr/bin/script 	<B>"This command is run at one min past every hour"</B>
17 8 * * * root /bin/mail 		<B>"This command is run daily at 8:17 am"</B>
17 20 * * * root /usr/bin/fetch 	<B>"This command is run daily at 8:17 pm"</B>
00 4 * * 0 root /bin/qweb	 	<B>"This command is run at 4 am every Sunday"</B>
* 4 * * Sun root /usr/bin/file2rpm 	<B>"This command is run at 4 am every Sunday"</B>
42 4 1 * * root /usr/bin/squidlog 	<B>"This command is run 4:42 am every 1st of the month"</B>
01 * 19 07 * root /usr/bin/xman 	<B>"This command is run hourly on the 19th of July"</B>
</PRE>
<P>See how easy it is? :-).  Cron also accepts more sophisticated time 
specifications: run "man 5 crontab" for an explanation of these.

<P> 
Of course this is all very well, but I have not told you where to put any of your cron entries. So.........hang on there, reader.</P>
<P>The most common version of cron installed on linux systems is "vixie-cron", and so in the "/etc" folder should be a file called "crontab". If you have specified the environment variable EDITOR (see the above section) then you can simply type in:</P>
<PRE>
crontab -e
</PRE>
<P>And that will load the file into your text editor
<P>If you did not open it using the above command, then open it using a text editor of your choice and you should find something that looks like the following</P>
<PRE>
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root@grangedairy.linux
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
</PRE>
<P>The SHELL variable indicates the current shell that we are using</P>
<P>The PATH indicates the path to the most common programs</P>
<P>The MAILTO option indicates to whom the output of the cron result (i.e. whether it has worked or not) and any output from the program is to be mailed. If you find that it is annoying, then you can delete this variable.</P>
<P>The section below "#runparts" is supposed to work so that in the folder "/etc/cron.daily" for example, whatever script is in there gets executed daily. However, for some strange reason, it has never worked well for me, and I have since found it easier to specify my own cron list.</P>
<P> So, to add the above examples to our crontab, it is just a matter of <I>copying</I> and <I>pasting</I> them in:</P>
<PRE>
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root@grangedairy.linux
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

#Custom Crontabs -- Put in by Thomas Adam
01 * * * * root /usr/bin/script 	
17 8 * * * root /bin/mail
17 20 * * * root /usr/bin/fetch 	
00 4 * * 0 root /bin/qweb	 	
* 4 * * Sun root /usr/bin/file2rpm 	
42 4 1 * * root /usr/bin/squidlog 	
01 * 19 07 * root /usr/bin/xman 	
</PRE>
<P>Then save the file. Now the last thing we have to do is to tell cron that we have edited the file. That is done, with the following command:</P>
<PRE>
crontab -u root /etc/crontab
</PRE>
<P>And thats it...just sit back and wait..... You should find that by now your workload has diminished by about 25% or so!!!</P>
<P>Cron also has the ability of allowing and denying certain users who are allowed to use cron. To implement this, two files called <I>cron.allow</I> and <I>cron.deny</I> have to be created in the folder "/etc".</P>
<P>These files work in the following way. If for example you wanted nobody to have access to cron, then you would add the line "ALL" to the <I>cron.deny</I> file. If you wanted only certain people to use cron then you would add their username to the <I>cron.allow</I> file.</P>
<P>Rather than having to edit the file each time, I find it much easier to use the following command:</P>
<PRE>
cat username &gt;&gt;/etc/cron.allow
</PRE>
<P>Thats all there is to it....have a go and see what you think......!?!</P>
<!-- ** END "crontab" ** -->
<HR>
<!-- ** BEGIN "closing" ** -->
<A NAME="closing"><H2>Closing Time</H2></A>
<P>Well folks, thats it for this month. I had hoped to do more, but unfortunately school work had intervened yet again!! I would really appreciate some feedback, general comments, hints as to articles, etc. Armed with this information I can then go about "making linux just that little more fun" :-)</P>
<P>I am now off to go and teach piano, do some Geography revision (yay) and then maybe continue working on some of my ongoing "bash script projects". After which, I might even be able to get some sleep. who knows?????</P>
<P>In the meantime however, I wish everyone....<B>"happy Linuxing"</B></P>
<!-- ** END "closing" ** -->
<HR>
<H1 ALIGN="center"><FONT COLOR="red">Send me comments....</FONT></H1>
<H2 ALIGN="center">Any comments, suggestions, ideas, etc can be mailed to me by clicking the e-mail address link below:</H2>
<H2 ALIGN="center"><A HREF="mailto:n6tadam@users.purbeck.dorset.sch.uk">Thomas Adam</A></H2>




<!-- *** BEGIN bio *** -->

<!-- *** END bio *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P --> 
<H5 ALIGN=center>

Copyright &copy; 2001, Thomas Adam.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR> 
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->


<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">HelpDex</font></H1>
<H4>By <a href="mailto:shane_collinge@yahoo.com">Shane Collinge</a></H4>
</center>
<P> <HR> <P>  

<!-- END header -->




<IMG ALT="clippy.jpg" SRC="misc/collinge/clippy.jpg" 
	WIDTH="750" HEIGHT="303">
<BR CLEAR="all">

<IMG ALT="deepregret.jpg" SRC="misc/collinge/deepregret.jpg" 
	WIDTH="750" HEIGHT="303">
<BR CLEAR="all">

<IMG ALT="comicsml.jpg" SRC="misc/collinge/comicsml.jpg" 
	WIDTH="750" HEIGHT="303">
<BR CLEAR="all">

<P> For those not into gaming, "All your base are belong to us", is a
video-game slogan translated from the Japanese.  Read the
<A HREF="http://www.latimes.com/business/cutting/features/lat_allbase010315.htm">LA Times article</A>,
see the <A HREF="http://hubert.retrogames.com/history.htm">history</A>, or watch
Clippy sing it on the <A HREF="http://www.officeclippy.com/">Microsoft site</A>
(turn on Javascript and run the mouse back and forth over the links in the left
column and watch what the Clippy image does, then click on the "Click" button
several times).

<BLOCKQUOTE><EM>
	[Too bad I can't listen to the song, "It Looks Like You're Writing a
	Letter", since it's in Windows Media format.  I would just like to see
	its parody version,
	<A HREF="../issue63/lg_backpage63.html#notlinux">"It Looks Like You're
Writing a Suicide Note"</A>.  -Mike.]
	</EM></BLOCKQUOTE>

<HR NOSHADE WIDTH="80%"> <!-- ****************************************** -->

<P> I read the 
<A HREF="http://www.xml.com/pub/a/2001/04/18/comicsml.html">overview</A> by
Jason McIntosh about ComicsML over the weekend. There's a lot of sense in what
he says: about the ability to define comics and to be able to search archives
and automate processes. As an example, just last week I was searching for a
specific Far Side and luckily the text had been reproduced within a HTML page
so I was able to find it. Otherwise I could have been searching fruitlessly for
weeks.

<P> That said, as an artist myself the act of documenting
artwork and standardizing it seems to demystify the
process. Part of the magic of reading today "Pearls Before
Swine" or "Randolph Itch 2am" is having to track it down
and read it. Automating the process turns it into a kind of
Shakespeare-via-Brodies-Notes. There is no shortcut to art.
Add that to the technical fact that the time taken to draw
a strip will now double - once for the art which we already
draw and ink, then the marking up of the ComicsML after the
fact, thinking of an appropriate teaser, typing the spoken
text etc. Sheesh! Most cartoonists barely have enough
attention span to brush their teeth, 
<BLOCKQUOTE><EM>
	[And run around chasing villains all day.  -Mike.]
</EM></BLOCKQUOTE>


let alone do all this
house-keeping for each and every strip.

<P> Art as revenue-raiser also requires that human intervention
be present. When HelpDex was running on LinuxToday.com the
filenames were randomized so automated scripts or robots
COULDN'T simply pull down the pics every day. LT was paying
for a service that would entice readers to their site, not
robots. There's no incentive to sponsor a strip without
being able to quantify the hits or business generated.

<P> I sound harsh, but I'm not. ComicsML does look like a good
idea being introduced at a good time. The new breed of
cartoonist literate in new technologies such as the ones
working in Flash and so on would pick this up quickly and
once standardized, could help spread information much more
rapidly than currently occurs. I feel from conventional
artists such as myself there is bound to be a slow uptake
as this simply adds more effort to setup than the benefit
it would realise.

<P> What am I trying to say? I think it's a tidy idea but I'm
too darn lazy to implement it unless I can see a direct
benefit from the extra effort required.


<!-- *** BEGIN bio *** -->
<SPACER TYPE="vertical" SIZE="30">
<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Shane Collinge</H4>
Part computer programmer, part cartoonist, part Mars Bar. At night, he runs
around in a pair of colorful tights fighting criminals. During the day... well,
he just runs around.  He eats when he's hungry and sleeps when he's sleepy.                                           

<!-- *** END bio *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P --> 
<H5 ALIGN=center>

Copyright &copy; 2001, Shane Collinge.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR> 
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->


<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Interview with Ben Collins, the new Debian Project Leader</font></H1>
<H4>By <a href="mailto:frc@linux.com.br">Fernando Ribeiro Corr&ecirc;a &amp; Marcos Martins Manh&atilde;es</a><BR>
Originally published at <A HREF="http://www.olinux.com.br/Interviews">OLinux</A></H4>
</center>
<P> <HR> <P>  

<!-- END header -->




      <p>
        <b>OLinux: First of all, tell us about your background.</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I am generally speaking a programmer and systems
      administrator. In the past I have also worked as a Desktop
      Publisher and a web designer. I've worked for NASA LaRC,
      several ISPs and currently am working at 
      <A HREF="http://www.winstar.com">Winstar</A>
      .</p>

      <p>
        <b>OLinux: Please give a brief summary of 
	<A HREF="http://www.debian.org">Debian</A>'s History, Philosophy
        and Organization on handling free software development?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      Our philosophy goes back a long way. Mainly we believe that
      it <EM>is</EM> possible to create a completely free operating system
      with all of the things you need to do your daily work. That's
      what started Debian, and prompted Ian Murdock to write the
      Debian Manifesto. From there began our project, and from it
      has come the Debian Free Software Guidelines (DFSG), which
      defines the type of software licensing we consider to be Free
      in the sense of Freedom. Also came the Debian Social
      Contract, which defines what we will support for our users.
      Later, as we grew, came our Constitution, which defines our
      operating procedures, and breakdown of authority within the
      project.</p>

      <p>We've basically given full control of each package to the
      maintainer of that package, so long as it falls within the
      guidelines of our well defined Policy. Our Policy is one of
      the strengths of the Debian distribution. Without it, we
      would not have a cohesive set of packages, and
      installs/upgrades would be a nightmare.</p>

      <p>
        <b>OLinux: How excited you are about being in front of the
        Debian Project? Do you have something in mind for the
        Debian Project? Are you going to make changes on the way
        the work is done?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I'm extremely excited. This is my third run at the DPL
      position, and it is a goal I have finally achieved thanks
      completely to those in the project that have faith in my
      ability to handle the job. I have plans to clean up some
      loose ends that have been plaguing our internal organisation
      for some time. After this, I plan to tackle some of the more
      difficult situations that still linger, or are threatening to
      be a problem in the near future.</p>

      <p>
        <b>OLinux: What are going to be the differences between your
        leadership and the predecessor's?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      When I first came to Debian, Ian Jackson was finishing his
      term as DPL, and he was very inactive (to his defense, I do
      not know any details of his situation). Wichert then followed
      for two terms. I believe he did an excellent job keeping
      Debian going. However, my plans are to get Debian moving
      rather than continue to limp along with some of the problems
      we face.</p>

      <p>
        <b>OLinux: How are people organized and what are the tools
        used to control the results of the work being done in
        different projects and parts of the world?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      Within Debian, we have the maintainers (some 800 it seems
      now). Each of them is responsible for maintaining one or more
      packages (some do not maintain packages, but help with other
      projects internally, such as ftp archive, www site, etc.).
      They have complete control of their tasks within the
      guidelines and policy. Within this, some developers have
      grouped together to manage large specific tasks. Examples of
      this are the Debian Junior project, as well as the ports (such
      as sparc, arm, alapha, powerpc, etc.) and language
      projects.</p>

      <p>All work is coordinated via mailing lists. Some people
      also use IRC as a way of immediate interaction (via
      irc.openprojects.net). We also have the Debian Bug Tracking
      System to manage bug reports for all of our packages and
      systems. This system is available publicly via our web
      pages. Anyone can file a bug, and track it's progress
      directly with the maintainer.</p>

      <p>
        <b>OLinux: How many people are working for Debian nowadays?
        Are you satisfied with the results?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      Last I checked, about 800. I am satisfied with the results.
      What I am not satisfied with is the influx of maintainers
      without a better scheme to manage them. Work is being done,
      but I want to see some other things in this area discussed
      and looked at.</p>

      <p>
        <b>OLinux: What do you think about people saying that the
        Debian 2.2 has too much bugs? What are you going to do in
        "Woody" to change this point of view?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I was not aware that people said that. We have an excellent
      security team that fixes all known security related bugs. We
      also make regular point releases (2.2r3 is being worked on as
      I write this) to update the security patches into a new
      release. For woody we have a new "testing" mechanism which
      should help reduce the amount of time needed to release.
      Hopefully this will make more frequent releases possible.</p>

      <p>
        <b>OLinux: What are your expectations about the "Woody"
        launch?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I look forward to a lot of the things that are going to be
      available in woody. Woody also promises to be the most
      architectures we have ever released at one time (by any
      distribution, that I am aware of).</p>

      <p>
        <b>OLinux: What are the active projects at Debian? How are
        they divided and coordinated in terms of content and staff
        for each project?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      Usually a project within Debian creates itself to fill a
      need. The project manages itself, and delegates within its
      own ranks who is responsible for what tasks. I'm not aware
      of all such projects, simply because most of them work in the
      background, silently making Debian better.</p>

      <p>
        <b>OLinux: Here, in Brazil, there is a project called 
        <a href="http://debian-br.sourceforge.net">
        Debian BR</a>

        . This is a project that is translating the Debian content
        to Portuguese. Do you know that? If yes, what do you think
        about it? If not, you are invited to visit the Debian BR
        web site at debian-br.sourceforge.net. Do you know other
        projects like this in other countries?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I had not heard of it before. I think it is an excellent
      thing, much like the JP and similar projects. The more people
      we can get Debian to, the better. I'll have a look at the
      web site, and I wish the best of luck to the project for it's
      efforts.</p>

      <p>
        <b>OLinux: Do you consider Debian the leading GNU/Linux
        distribution in the world?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      On many basis, yes. However, I measure Debian on what's
      important to me, and am well aware that it lacks in areas
      that are important to others. A recurring topic is our
      installer. I'm happy to report that a new modular installer
      is being worked on, and it so far appears to exceed, or will
      exceed, all of the goals that the group set for itself. It
      will probably not be done in time for woody, though.</p>

      <p>
        <b>OLinux: How is Debian's relationship with the GNOME
        Foundation? And with the KDE league?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I'm not able to answer this question. I do know that we have
      some developers that work closely with both projects, and
      that GNOME and KDE are both fully integrated within our
      distribution.</p>

      <p>
        <b>OLinux: What are the advantages and what differentiates
        Debian from
        other popular distributions as SuSE or Red Hat, besides being a
	non-commercial distribution?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      I think we have three major strengths. One is our development
      model. No other distribution has all of its developers
      available first hand to take bug reports and suggestions from
      its user base.</p>

      <p>No other distribution has as extensive a set of policies
      that allows it to distribute as many packages as we do, all
      integrated into our distribution, with easy installation.</p>

      <p>No other distribution offers the ease of upgrades that we
      do. There have been reports of people being able to
      effortlessly upgrade from as far back as Debian 1.3 (bo) to
      the current stable 2.2 (potato) (note, this is a libc5 to
      libc6 upgrade path). Debian not only supports, but guarantees
      upgradability. It is one of our primary goals.</p>

      <p>
        <b>OLinux: How do you describe Debian Project achievements
        and what are the prospects and goals for the next
        years?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      The fact that Debian is still around, and is still growing is
      a major achievement. We have not lost site of our primary
      goals; to produce a free and stable distribution. Over the
      next few years I hope to see Debian prosper from commercial
      acceptance via companies like Progeny. I'm hoping that
      vendors will see us as a more viable solution for desktops
      and pre-installed systems.</p>

      <p>
        <b>OLinux: Give us some predictions about the growth of the
        GNU/Linux operating system for the next 2, 5 and 10
        years.</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      That's hard to predict. Unfortunately, as free as it may be,
      GNU/Linux is directly affected by the economy. The current
      trend of Internet companies starting to fail, will likely
      scare away of a lot of the venture capital that has flooded
      Linux in the past years. Hopefully this will be a good thing,
      and the Linux companies will have to start working to make
      their money, and not ride the wave of hype. I would guess
      that over the next 2 years, Linux's hype will settle down,
      and people will start taking it more seriously (not just
      those in-the-know).</p>

      <p>In 5 years, I suspect that GNU/Linux will be as common as
      MacOS, Solaris and Windows in the home. In 10 years, who
      knows. That's like an eternity to the technical world, so
      Linux may be obsolete by then.</p>

      <p>
        <b>OLinux: What are the improvements that GNU/Linux needs
        to be more deployed in by the corporate market?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      An accepted, easy to use interface. KDE and GNOME are working
      toward this with great strides. But even with a good
      interface, getting accepted and being "common" take far
      longer than a development cycle.</p>

      <p>
        <b>OLinux: Debian is definitely the best Linux distro, but
        its hardware configuration interface and its installer are
        not so friendly. Is the Debian Project going to focus on a
        best interaction with the final user or it still a
        distribution for the systems administrators only?</b>
      </p>

      <p>
      <b>Ben Collins:</b>

      Yes, the debian-installer group is working very hard on this.
      We do not want to remain a niche distribution only used by
      administrators and hard-core hackers.</p>





<!-- *** BEGIN bio *** -->
<SPACER TYPE="vertical" SIZE="30">
<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Fernando Ribeiro Corr&eci;a</H4>
I am a computer analyst just about to finish my 
graduation at Federal University of Rio de Janeiro. Now, I have built
with my staff the best 
<A HREF="http://www.olinux.com.br">Linux portal</A> in Brazil and have further 
plans to improve services and content for our Internet users.
<SPACER TYPE="vertical" SIZE="30">
<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Marcos Martins Manh&atilde;es</H4>
I'm a journalist graduated from UFRJ (Federal
University of Rio de Janeiro). I'm 25 years old and have been working at
OLinux for one year. I began studying mecanical engeneering, but I gave
up during the second year. I've spent one year in Rockville (went to
Montgomery College), Maryland, and traveled a lot around the USA (that
was a great time).

<!-- *** END bio *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P --> 
<H5 ALIGN=center>

Copyright &copy; 2001, Fernando Ribeiro Corr&ecirc;a &amp; Marcos Martins Manh&atilde;es.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR> 
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->


<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Converting Linux HOWTOs into Book Format</font></H1>
<H4>By <a href="mailto:articles@gnujobs.com">Mark Nielsen</a></H4>
</center>
<P> <HR> <P>  

<!-- END header -->




<ol>
<li>
<a href="#Introduction">Introduction</a></li>
<li><a href="#perl">Perl script to convert the Postscript files</a></li>

<li>
<a href="#Conclusion">Conclusion</a></li>
<li>
<a href="#REF">References</a></li>
</ol>


<h3>
<a NAME="Introduction"></a>Introduction</h3>
I wanted to print out Linux HOWTOs into book format. However, I am not fond
of manually converting the HOWTOs. Instead, since all the HOWTOs are available
in Postscript format, I figured out that I could download the Postscript
files on a regular basis and use various tools to convert the Postscript
files into book formatted Postscript and PDF files. I accomplished this
with a relatively small Perl script using a variety of Unix tools. I plan on 
have a cron job run at least once a week to update the books. 

<a NAME="perl"></a>
<h3>Perl script to convert the Postscript files
</h3>

The Perl script is in this section, and you can 
also <a href="misc/nielsen/HOWTO_Books.pl.txt">get the Perl script here</a>.
<pre>

#!/usr/bin/perl

# ftp://ftp.tardis.ed.ac.uk/users/ajcd/psutils.tar.gz
# http://www.dcs.ed.ac.uk/home/ajcd/psutils/ 
# cp Makefile.unix Makefile
# ln -s /usr/bin/perl /usr/local/bin/perl
# mkdir -p /usr/local/share/man/man1
# /usr/local/bin/psbook

#system (&quot;lynx --source ftp://ftp.tardis.ed.ac.uk/users/ajcd/psutils.tar.gz &gt; /tmp/psutils.tar.gz)&quot;;
# system (&quot;cd /tmp; tar -zxvf psutils.tar.gz; cd psutils; cp Makefile.unix Makefile&quot;);
# system (&quot;ln -s /usr/bin/perl /usr/local/bin/perl; mkdir -p /usr/local/share/man/man1&quot;);
# system (&quot;cd /tmp/psutils; make; make install; ln -s /usr/local/bin/psutils /usr/bin/psutils&quot;);

# Ignore the lines above, unless you don't have psutils. 
# I keep the lines above just so I remember how I installed psutils.

my $TempFile1 = &quot;/tmp/HOWTO_Convert_1.ps&quot;;
my $TempFile2 = &quot;/tmp/HOWTO_Convert_1.pdf&quot;;
my $SourceDir = &quot;/root/HOWTO&quot;;
my $Destination = &quot;/root/HOWTO_Books&quot;;
my $ZippedPDF = &quot;/root/HOWTO_books_pdf.tgz&quot;;
my $ZippedPS = &quot;/root/HOWTO_books_ps.tgz&quot;;

if (!(-d $Destination)) {system &quot;mkdir $Destination&quot;;}

print &quot;Downloading HOWTOs from http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/Linux-ps-HOWTOs.tar.gz\n&quot;;
system (&quot;lynx --source http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/Linux-ps-HOWTOs.tar.gz &gt; $SourceDir/Linux-ps-HOWTOs.tar.gz&quot;);
system (&quot;cd $SourceDir; tar -zxvf Linux-ps-HOWTOs.tar.gz&quot;); 

my @Files = &lt;$SourceDir/*.ps.gz&gt;;

foreach my $File (@Files)
  {
  my $command=&quot;gunzip -c $File | /usr/bin/psbook -s4 | mpage -2 &gt; $TempFile1&quot;;
  print &quot;Executing psbook and mpage on $File\n$command\n&quot;;
  system ($command);
  $command = &quot;ps2pdf $TempFile1 $TempFile2&quot;;
  print &quot;Executing ps2pdf\n$command\n&quot;;
  system ($command);

  my (@Temp) = split(/\//,$File);
  my $NamePDF = pop @Temp;
  my $NamePS = $NamePDF;
  $NamePDF =~ s/\.ps\.gz$/\.pdf/;
  $NamePS =~ s/\.ps\.gz$/\.ps/;
  my $NewPS = &quot;$Destination/$NamePS&quot;;
  my $NewPDF = &quot;$Destination/$NamePDF&quot;;

  system (&quot;mv $TempFile2 $NewPDF&quot;); 
  print &quot;Created the book-formatted HOWTO, $NewPDF\n&quot;;
  system (&quot;mv $TempFile1 $NewPS&quot;);
  print &quot;Created the book-formatted HOWTO, $NewPS\n&quot;;
  }

print &quot;Creating zip files $ZippedPDF and $ZippedPS\n&quot;;
system (&quot;tar -zcvf $ZippedPDF $Destination/*.pdf&quot;);
system (&quot;tar -zcvf $ZippedPS $Destination/*.ps&quot;);

</pre>

<h3>
<a NAME="Conclusion"></a>Conclusion</h3>

This is just a simple Perl script I use to download and convert the
Postscript HOWTOs. My future goals involve:
<ol>
<li> using LWP in Perl instead of Lynx. Simple enough. 
<li> converting the entire Perl script into Python. 
<li> better error checking if the files don't get downloaded or if the
  conversion doesn't work. 
<li> creating objects accepting text, TeX, Postscript, PDF, or other formats
that can be converted into Postscript fairly easily and then into book format.
</ol>

For now, my simple Perl script works out just fine. I am interested in 
converting other documents for people provided that the documentation falls
under some form of free documentation, like 
<a href="http://www.gnu.org/philosophy/license-list.html#DocumentationLicenses">
Licenses For Documentation</a> located at www.gnu.org.

<h3>
<a NAME="REF"></a>References</h3>

<ol>

<li>10/2000 <a href="http://www.gnujobs.com/Articles/8/Book_Binding-3.html">Micro Publishing: Part 3 , by Mark Nielsen
</a>.

<li> 7-1-2000
<a href="http://genericbooks.com/Articles/5/Book_Binding-2.html"> 
Micro Publishing, part II (Mark's Update)</a>

<li> 12-1999 -- <a
href="http://genericbooks.com/Literature/Articles/1/Book_Binding-1.html">
Micro Publishing</a>. 
<li>
If this article
changes, it will be available here
<a href="http://www.gnujobs.com/Articles/18/HOWTO_Books.html">
http://www.gnujobs.com/Articles/18/HOWTO_Books.html</a></li>
</ol>

<p>
<i> Mark works as an independent consultant donating time to causes like
GNUJobs.com, writing articles, writing free software, and working 
as a volunteer at <a href="http://www.eastmont.net">eastmont.net</a>.</i>






<!-- *** BEGIN bio *** -->
<SPACER TYPE="vertical" SIZE="30">
<p> 
<h4><img align=bottom alt="" src="../gx/note.gif">Mark Nielsen</h4>
Mark works at ZING 
(<A HREF="http://www.genericbooks.com">www.genericbooks.com</A>) and 
<A HREF="http://GNUJobs.com">GNUJobs.com</A>. Previously,
Mark founded <A HREF="http://www.gnujobs.com">The Computer Underground</A>.
Mark works on non-profit and volunteer projects which promote free literature
and software. To make a living, he recruits people for GNU related jobs and
also provides solutions for web/database problems using Linux, FreeBSD, Apache,
Zope, Perl, Python, and PostgreSQL.

<!-- *** END bio *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P --> 
<H5 ALIGN=center>

Copyright &copy; 2001, Mark Nielsen.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR> 
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->


<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Configuring GDM 2.2</font></H1>
<H4>By <a href="mailto:articles@gnujobs.com">Mark Nielsen</a></H4>
</center>
<P> <HR> <P>  

<!-- END header -->




<ol>
<li>
<a href="#Introduction">Introduction</a></li>
<li><a href="#install">Downloading and installing GDM.</a></li>
<li><a href="#config">Configuring GDM</a></li>
<li><a href="#Conclusion">Conclusion</a></li>
<li><a href="#REF">References</a></li>
</ol>

<h3>
<a NAME="Introduction"></a>Introduction</h3>
GDM or GNOME Display Manager, is a nice GUI login screen which makes it nice
and pretty to login to X-windows. It it much nicer for non-linux people to have
a GUI interface to login to rather than a console. 
<p>
One thing that bothered me with some of the older versions of GDM was the
fact that I couldn't place the login window anywhere I wanted on the
screen. With the latest version, it as very easy. Also, I couldn't figure
out how to make logos of people in the login window, and now I figured 
that out. The latest version of GDM is really nice and I have figured out
how to configure it the way I wanted it to be configured, so I finally
decided to write this article. 

<h3><a name="install">Downloading and installing GDM.</h3>
I could have downloaded an RPM from somewhere, but instead I decided to
compile it manually. I was testing it on a RH 6.2 system. As soon as I can
get the 7.1 version of RH (as the 7.0 wasn't worth the trouble), I will
test it on it as well, and Debian of course.
<p>
The danger of not using RPMs to install GDM, is the fact that I am installing
a newer version of GDM on top of a GDM version which was installed by RPMs. 
This could cause problems if I decided to use an RPM in the future. I found
an RPM version at 
<a href="ftp://ftp.gnome.org/pub/GNOME/stable/latest/redhat/i386/Base/gdm-2.2.0-1.i386.rpm">
ftp://ftp.gnome.org/pub/GNOME/stable/latest/redhat/i386/Base/gdm-2.2.0-1.i386.rpm</a>
 in case you don't want to install it manually.

<p>
Initial Steps
<ol>
<li> Downloaded GDM from <a href="ftp://ftp.gnome.org/pub/GNOME/stable/latest/sources/gdm-2.2.0.tar.gz">
ftp://ftp.gnome.org/pub/GNOME/stable/latest/sources/gdm-2.2.0.tar.gz</a>
<li> tar -zxvf gdm-2.2.0.tar.gz
<li> cd gdm-2.2.0
<li> ./configure --prefix=/usr
<li> make
<li> make install
</ol>

After fooling around a bit, I found out that /etc/X11/gdm wasn't being
used for the configuration files, so I linked /etc/X11/gdm to the place 
that gdm was looking. I probably could have recompiled gdm to fix this problem,
but I am being lazy. Also, one directory was missing, so I created it. 
<p>
Three additional Steps
<ol>
<li>mv /usr/etc/gdm /usr/etc/gdm_new
<li>ln -s /etc/X11/gdm /usr/etc/gdm
<li>mkdir /usr/share/faces/
</ol> 

Again, I emphasize the fact that you should probably use the rpm and
not bother installing it manually. 

<h3>
<a NAME="config"></a>Configuring GDM</h3>
The goals I had were,
<ol>
<li> Be able to place the login screen anywhere I wanted. 
<li> Be able to play a game before someone has to login. 
<li> Be able to put images in the background just for fun. 
<li> Be able to put a clock on the background. 
<li> Be able to put pictures or logos of people on the browser part of GDM.
</ol>

I had to change some of the settings in the file gdm.conf. My changes
were
<pre>
Browser=true
SetPosition=true
PositionX=100
PositionY=100
Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,gdm,postgres,pvm,otherlogin
GlobalFaceDir=/usr/share/faces/
</pre>
Also, here was my Init/Default script, 
<pre>
#!/bin/sh

/usr/X11R6/bin/xsetroot -solid "#363047"

xsri -geometry +5+5 /etc/X11/xdm/Logo2.png
xsri -geometry +400+5 /home/mark/public_html/wedding/wed2.jpg
xsri -geometry +700+500 /home/mark/public_html/wedding/walk.jpg
xsri -geometry +200+500 /home/mark/public_html/wedding/kiss.jpg

xsri -geometry +5+175 /home/mark/public_html/kiss.gif

xsri -geometry +5+500 /usr/local/apache_gnujobs/htdocs/images/zing.png

xeyes -geometry +825+5 &amp;

xclock -digital -geometry +825+125 -update 1 &amp;
 
xtriangles -geometry +800+300 &amp;
</pre>

In order to get logos or pictures of people on the GDM screen, I had to
make the name of the image exactly the name of username and put it in
/usr/share/faces/. To test this, I took my logo for ZING and copied it
to 
"/usr/share/faces/root" like
<pre>
cp /usr/local/apache_gnujobs/htdocs/images/zing.png /usr/share/faces/root
</pre>
Notice that there is no extension. 

<h3>
<a NAME="Conclusion"></a>Conclusion</h3>

Everything worked perfectly once I followed these steps. Using the rpm
might have been easier, but oh well. I will try that out next time. I 
highly recommend to back up any gdm configuration files before installing 
any new RPMs (though the RPMs should back them up for you). I don't really
see any other features that I would need. Some miscellaneous features, like maybe
a ticker tape, downloading the weather, or other games besides triangles
would be cool. I imagine it is possible, but it isn't necessary for me. 
It also might be a security risk to let people play games before they
have to login, in case they figure out some way to break out to a shell,
so I wouldn't advise putting games into GDM on public computers.
<p>
I would have liked to compare KDM with GDM, but I wasn't able to easily
find a recent web page for KDM. I am also waiting until I install the latest
version of KDE before I mess around with KDM anyways. 

<h3>
<a NAME="REF"></a>References</h3>

<ol>
<li><a href="http://www.socsci.auc.dk/~mkp/gdm/">Gnome Display Manager</a>
<li> 6-24-1999 <a href="../issue43/nielsen.xdm.html">Setting up XDM</a>.
<li>
If this article
changes, it will be available here
<a href="http://www.gnujobs.com/Articles/19/GDM.html">
http://www.gnujobs.com/Articles/19/GDM.html</a></li>
</ol>

<p>
<i> Mark works as an independent consultant donating time to causes like
GNUJobs.com, writing articles, writing free software, and working 
as a volunteer at <a href="http://www.eastmont.net">eastmont.net</a>.</i>






<!-- *** BEGIN bio *** -->
<SPACER TYPE="vertical" SIZE="30">
<p> 
<h4><img align=bottom alt="" src="../gx/note.gif">Mark Nielsen</h4>
Mark works at ZING 
(<A HREF="http://www.genericbooks.com">www.genericbooks.com</A>) and 
<A HREF="http://GNUJobs.com">GNUJobs.com</A>. Previously,
Mark founded <A HREF="http://www.gnujobs.com">The Computer Underground</A>.
Mark works on non-profit and volunteer projects which promote free literature
and software. To make a living, he recruits people for GNU related jobs and
also provides solutions for web/database problems using Linux, FreeBSD, Apache,
Zope, Perl, Python, and PostgreSQL.

<!-- *** END bio *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P --> 
<H5 ALIGN=center>

Copyright &copy; 2001, Mark Nielsen.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR> 
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->

<h4 align=center style='text-align:center'><!--endcut ============================================================-->&quot;Linux
Gazette...<i>making Linux just a little more fun!</i>&quot; </h4>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>


<h1 align=center style='text-align:center'><span style='color:maroon'><!--===================================================================-->CVS:
Client-Server Version Control</span></h1>

<h4 align=center style='text-align:center'>By <a
href="mailto:kapil@linux4biz.net">Kapil Sharma</a></h4>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>

<span style='font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";color:black;mso-ansi-language:EN-GB;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>

<ol start=1 type=1>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#one"><!-- END header -->Overview</a>
     </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#two">Getting CVS</a>
     </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#three">The
     repository</a> </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#four">Multiple
     Developers</a> </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#five">Rolling
     back to previous version</a> </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#six">Some common
     CVS commands</a> </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#seven">Other
     tools and add-ons to CVS</a> </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><a href="#more">More
     information</a> </li>
</ol>

</span>

<h2><a name=one></a>Overview</h2>

<p>CVS is a version control system. Using it, you can record the history of
your source files. CVS helps if you are part of a group of people working on
the same project, sharing the same code. Several developers can work on the
same project remotely using CVS's client-server model in which the code exists
on a central server and each programmer get the source on his local machine
from the CVS server (checkout) and save it back on the CVS server (checkin)
after development. Each time a programmer checks in his new code into the CVS
server, the difference is saved as a new version rather than overwriting the previous
version. This allows the server to recreate any previous version upon request,
although by default it distributes the latest version.</p>

<p>This article explains how to use CVS in client-server mode and get the most
out of it.</p>

<h2><a name=two></a>Getting CVS</h2>

<p>You can find CVS in your Linux distribution or get the source from <a
href="http://www.cvshome.org/downloads.html">http://www.cvshome.org/downloads.html</a></p>

<p class=MsoNormal>The home page for CVS is <a href="http://www.cvshome.org">http://www.cvshome.org</a>.
</p>

<h2><a name=three></a>The repository</h2>

<p>The CVS repository stores a complete copy of all the files and directories
which are under version control. Normally, you never access any of the files in
the repository directly. Instead, you use CVS commands to get your own copy of
the files into a working directory, and then work on that copy. When you've
finished a set of changes, you check (or commit) them back into the repository.
The repository then contains the changes which you have made, as well as
recording exactly what you changed, when you changed it, and other such
information. </p>

<p><b>Creating a Repository</b> <br>
To create a repository, run the CVS init command. It will set up an empty
repository in the CVS root specified in the usual way . </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>cvs -d /usr/local/cvsroot init</pre>

<p class=MsoNormal>Here /usr/local/cvsroot will become the repository. </p>

<p><b>CVSROOT environment variable</b> </p>

<p>Set the CVSROOT environment variable in your shell startup script. For
instance, in ~/.bashrc: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ export CVSROOT=:pserver:username@foo.com:/usr/local/cvsroot </pre>

<p><b>Backing up the Repository</b> <br>
There are a few issues to consider when backing up the repository: </p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list 36.0pt'>One should either not use
     CVS during the backup, or have the backup program lock CVS while doing the
     backup. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list 36.0pt'>To lock CVS, you would
     create `#cvs.rfl' lock files in each repository directory. </li>
</ul>

<p><b>Remote Repositories</b> <br>
Your working copy of the sources can be on a different machine than the
repository. Using CVS in this manner is known as client/server operation. </p>

<p>Setting up the server: <br>
Put the following entry in /etc/inted.conf on server: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>2401 stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/usr/cvsroot pserver</pre>

<p>If your inetd wants a symbolic service name instead of a raw port number,
then put this in `/etc/services': </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>cvspserver<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>2401/tcp</pre>

<p class=MsoNormal><br>
and put cvspserver instead of 2401 in `inetd.conf'. <br>
After making you changes, send a HUP signal to inetd. </p>

<p><b>Password authentication for remote repository</b> <br>
For remote password authentication put a file `$CVSROOT/CVSROOT/passwd' . The
file will look like: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>anonymous:</pre><pre>kapil:1sOp854gDF3DY</pre><pre>melissa:tGX1fS8sun6rY:pubcvs</pre>

<p>The password is in Unix encrypted form. The first line in the example will
grant access to any CVS client attempting to authenticate as user anonymous, no
matter what password they use. The second and third lines will grant access to
kapil if he supplies his respective plaintext passwords. </p>

<p>The third will grant access to melissa if she supplies the correct password,
but her CVS operations will actually run on the server side under the system
user pubcvs. </p>

<p><i>Note: CVS can be configured not to check the UNIX real passwd file i.e
/etc/passwd for CVS authentication by setting SystemAuth=no in the CVS `config'
file ($CVSROOT/CVSROOT/config).</i> </p>

<p><b>Using the client with password authentication</b> </p>

<p>You have to login to CVS server for the first time: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre><span style="mso-spacerun: yes">&nbsp; </span>cvs -d :pserver:kapil@foo.com:/usr/local/cvsroot login</pre>

<p>The you can use all the commands of CVS on the remote machine: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre><span style="mso-spacerun: yes">&nbsp; </span>cvs -d :pserver:kapil@foo.com:/usr/local/cvsroot checkout someproj</pre>

<p><b>Read only repository access</b> <br>
It is possible to grant read-only repository access to people using the
password-authenticated server. There are two ways to specify read-only access
for a user: by inclusion, and by exclusion. <br>
&quot;Inclusion&quot; means listing the user in the `$CVSROOT/CVSROOT/readers'
file, which is simply a newline-separated list of users. Here is a sample
`readers' file: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>kapil</pre><pre>yogesh</pre><pre>john</pre>

<p>(Don't forget the newline after the last user.) </p>

<p>&quot;Exclusion&quot; means listing everyone who should have write access.
If the file&nbsp;&nbsp;&nbsp; $CVSROOT/CVSROOT/writers exists, then only those
users listed in it will have write access, and everyone else will have
read-only access. The `writers' file has the same format as the `readers' file.
</p>

<p><b>Setting up the files in repository</b> <br>
If the files you want to install in CVS reside in `someproj', and you want them
to appear in the repository as `$CVSROOT/someproj', you can do this: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cd someproj</pre><pre>$ cvs import -m &quot;Imported sources&quot; someproj vendor </pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp;</span>rel1-1</pre>

<p class=MsoNormal>Here The string `vendor' is a vendor tag, and `rel1-1' is a
release tag. </p>

<p><b>CVS locks in repository</b> <br>
Any file in the repository with a name starting with `#cvs.rfl.' is a read
lock. Any file in the repository with a name starting with `#cvs.wfl' is a
write lock. The directory `#cvs.lock' serves as a master lock. That means one
must obtain this lock first before creating any of the other locks. </p>

<p>To obtain a read lock, first create the `#cvs.lock' directory. If it fails
because the directory already existed, wait for a while and try again. After
obtaining the `#cvs.lock' lock, create a file whose name is `#cvs.rfl.'
followed by information of your choice (for example, hostname and process
identification number). Then remove the `#cvs.lock' directory to release the
master lock. Then proceed with reading the repository. When you are done,
remove the `#cvs.rfl' file to release the read lock. </p>

<p>To obtain a write lock, first create the `#cvs.lock' directory, as with a
read lock. Then check that there are no files whose names start with
`#cvs.rfl.'. If there are, remove `#cvs.lock', wait for a while, and try again.
If there are no readers, then create a file whose name is `#cvs.wfl' followed
by information of your choice (for example, hostname and process identification
number). Hang on to the `#cvs.lock' lock. Proceed with writing the repository.
When you are done, first remove the `#cvs.wfl' file and then the `#cvs.lock'
directory. </p>

<p><b>Symbolic revisions using tags in CVS<br>
</b>The release number of final software releases are different from revisions
in CVS. The revision numbers might change for several times between two
releases.You can use the tag command to give a symbolic name to a certain
revision of a file. </p>

<p>Change to the working directory and issue the following command for tagging:
</p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs tag rel1-1 file.c</pre>

<p class=MsoNormal>This command will tag the file &quot;file.c&quot; as release
1.1 </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs tag rel1-1 .</pre>

<p class=MsoNormal>This command will tag all the files under current directory
recursively as revision 1.1</p>

<p>You can use the `-v' flag to the status command to see all tags that a file
has, and which revision numbers they represent by issuing the following
command:</p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs status -v file.c</pre>

<p>Now you can checkout any revision of a module by using the following
command: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs checkout -r rel1-1 module1</pre>

<p class=MsoNormal>here &quot;module1&quot; is the name of the module. The -r
flag with checkout option makes it easy to retrieve the sources that make up
revision 1.1 of the module `module1' at any time in the future.</p>

<h2><a name=four></a>Multiple Developers</h2>

<p><b>File status</b> <br>
The cvs status command gives a status about the states of the files. You can
get a status of the file by: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs status [options] files</pre>

<p><b>Bringing a file up to date</b> <br>
When you want to update or merge a file, use the update command. This brings
into your working copy the changes others have recently committed. Your
modifications to a file are never lost when you use update. If no newer
revision exists, running update has no effect. If you have edited the file, and
a newer revision is available, CVS will merge all changes into your working
copy. </p>

<p><b>Resolving Conflicts</b> </p>

<p>If two people simultaneously make changes to different parts of the same
file, CVS is smart enough to merge the changes itself. But if two people make
changes to the <em>same</em> part of a file, CVS cannot tell what the final
result is supposed to be, so it gives up and wines, &quot;Conflict!&quot;
Conflicts arise when one developer commits a change and a second developer,
without running cvs update to receive the first developer's change, tries to
commit his own incompatible change. Resolving changes can take hours or even
days. In this section, I will explain how to resolve source conflicts. </p>

<p>When you enter the cvs commit command to automatically upload all the files
you have changed or added to a project, the CVS repository server may inform
you that your locally-edited files are not up-to-date with the server or that
you need to manually merge one or more files with newer versions that have
already been uploaded to the repository by some other developer. Here's a
typical warning message that occurred during a CVS commit process: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs commit</pre><pre>cvs commit: Examining .</pre><pre>cvs commit: Up-to-date check failed for `andy.htm' </pre><pre>cvs commit: Up-to-date check failed for `sample.htm' </pre><pre>cvs commit: Up-to-date check failed for `index.htm' </pre><pre>...</pre><pre>cvs [commit aborted]: correct above errors first!</pre>

<p>You can use the cvs update command to update your local project copy with
the latest changes in the cvs repository. To update your entire working copy of
the site, open a command prompt, change to the directory containing the project
you're developing, and issue the command: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs update</pre>

<p class=MsoNormal>This will update and automatically merge every file that has
changed since you last copied over new files from the CVS repository.
Line-by-line updates to individual text files (such as HTML files) can often be
handled automatically. CVS will list for you any files that require your
attention for manual editing and merging. </p>

<p>Automatic merge example: <br>
You are editing some project file called &quot;index.html&quot; locally and
when you try to commit that file to CVS repository then CVS will give you the
following error: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs commit index.html</pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>cvs commit: Up-to-date check failed for `index.html' </pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>cvs [commit aborted]: correct above errors first!</pre>

<p class=MsoNormal>This happens because there is a newer version of the same
file on the CVS repository. You should use cvs update command to get the latest
version from the CVS repository onto your local machine: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs update index.html</pre><pre>RCS file: /usr/local/cvsroot/index.html,v</pre><pre>retrieving revision 1.4</pre><pre>retrieving revision 1.5</pre><pre>Merging differences between 1.4 and 1.5 into index.html </pre><pre>M index.htm</pre>

<p class=MsoNormal>After the automatic merge process you should check the
merged copy to check if it is working properly. When you are satisfied with the
local copy of &quot;index.html&quot; file then you can commit it to CVS: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs commit index.htm</pre><pre>Checking in index.htm;</pre><pre>/usr/local/cvsroot/index.htm,v &lt;-- index.htm</pre><pre>new revision: 1.6; previous revision: 1.5 </pre><pre>done</pre>

<p>Manual merge example: <br>
In some cases, your recent work on a file might be so different that the CVS
needs your manual intervention in order to integrate everyone's work and put it
back into the site repository. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs commit index.html cvs commit: Up-to-date check failed for</pre><pre><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>`index.html' cvs [commit aborted]: correct above errors first!</pre>

<p>Use the cvs update command to bring your local copy of the site up to date: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs update</pre><pre>cvs update: Updating .</pre><pre>RCS file: /usr/local/cvsroot/index.html,v</pre><pre>retrieving revision 1.5</pre><pre>retrieving revision 1.6</pre><pre>Merging differences between 1.5 and 1.6 into index.htm</pre><pre>rcsmerge: warning: conflicts during merge</pre><pre>cvs update: conflicts found in activity.htm</pre><pre>C index.htm</pre>

<p>This time CVS was unable to merge the files automatically, so it created a
special copy of the conflicting file in place of the original index.html. The
file has marker lines to indicate the beginning and end of conflictiong
region(s); e.g., </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre><span style="mso-spacerun: yes">&nbsp; </span>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; filename</pre>

<p class=MsoNormal>To resolve the conflict, simply edit the index.html file and
replace the text between the markers and test the result until it works. You
should also delete the markers </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;========&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; </pre>

<p class=MsoNormal>from the file. When you have finished correcting the file
and have tested it, use the cvs commit command to put your latest copy of file
into the repository: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs commit</pre><pre>Checking in index.html;</pre><pre>/usr/local/cvsroot/index.html,v &lt;-- index.html</pre><pre>new revision: 1.7; previous revision: 1.6 </pre><pre>done</pre>

<p><b>Watches (CVS communication)</b> <br>
CVS can function as a communication device as well as a record-keeper.&nbsp; A
&quot;watches&quot; feature provides multiple developers working on the same
project with a way to notify each other about who is working on what files at a
given time. By &quot;setting a watch&quot; on a file/directory , a developer
can have CVS notify her if anyone else starts to work on that file by means of
sending e-mail or some other method. </p>

<p>To use watches you have to edit two files in the repository administrative
area. You have to edit the &quot;$CVSROOT/CVSROOT/notify&quot; file (which
tells CVS how notifications are to be performed) and
&quot;$CVSROOT/CVSROOT/users&quot; file(which supplies external e-mail
addresses). The best way to modify administrative files is to checkout one copy
from the repository ,edit them and then check in to repository . </p>

<p>To specify e-mail notification, first uncomment the following line from
&quot;$CVSROOT/CVSROOT/notify&quot; file: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>ALL mail %s -s &quot;CVS notification&quot;</pre>

<p class=MsoNormal>This command causes notifications to be sent as e-mail with
the subject line &quot;CVS notification&quot;. </p>

<p>Then you have to create/edit the file &quot;$CVSROOT/CVSROOT/users&quot; .
The format of each line in the users file is: CVS_USERNAME:EMAIL_ADDRESS. For
example: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>kapil:kapil@linux4biz.net</pre>

<p>The CVS username at the beginning of the line corresponds to a CVS username
in CVSROOT/password, or the server-side system username of the person running
CVS. Following the colon is an external e-mail address to which CVS should send
watch notifications for that user. </p>

<p><b>E-mail notification with logfile</b> <br>
CVS provides a feature of sending automated e-mail to everyone working on a
project&nbsp; with a log message whenever a commit takes place. The program to
do the mailing - contrib/log.pl in the CVS source distribution - can be
installed anywhere on your system. You can also install it into
&quot;$CVSROOT/CVSROOT&quot;. You should change the following line in log.pl : </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$mailcmd = &quot;| Mail -s 'CVS update: $modulepath'&quot;; </pre>

<p>Once you've setup the log.pl , you can put lines similar to these into your &#8220;loginfo&#8221;
file. The <tt><span style='font-size:10.0pt;font-family:"Arial Unicode MS"'>`loginfo'</span></tt>
file is used to control where <samp><span style='font-family:"Arial Unicode MS"'>`cvs
commit'</span></samp> log information is sent. You can find it in &quot;$CVSROOT/CVSROOT&quot;.</p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>projectteam1 CVSROOT/log.pl %s -f CVSROOT/commitlog -m projectteam1@linux4biz.net</pre><pre>projectteam2&nbsp; CVSROOT/log.pl %s -f CVSROOT/commitlog -m projectteam2@linux4biz.net</pre>

<p>The %s expands to the names of the files being committed; the -f option to
log.pl takes a file name, to which the log message will be appended (so
CVSROOT/commitlog is an ever-growing file of log messages); and the -m flag
takes an e-mail address, to which log.pl will send a message about the commit.
The address is usually a mailing list, but you can specify the -m option as <br>
many times as necessary in one log.pl command line. </p>

<p><b>Some commands related to setting up watches on files</b>: </p>

<p>If you only want to be notified about, say, commits, you can restrict
notifications by adjusting your watch with the -a flag (a for action): </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs watch add -a commit hello.c</pre>

<p>Or if you want to watch edits and commits but don't care about unedits, you
could pass the -a flag twice: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs watch add -a edit -a commit hello.c</pre>

<p>Adding a watch with the -a flag will never cause any of your existing
watches to be removed. If you were watching for all three kinds of actions on
hello.c, running </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs watch add -a commit hello.c</pre>

<p class=MsoNormal>has no effect - you'll still be a watcher for all three
actions. </p>

<p>To remove watches, run: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs watch remove hello.c</pre>

<p class=MsoNormal>which is similar to add in that, by default, it removes your
watches for all three actions. If you pass -a arguments, it removes only the
watches you specify: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs watch remove -a commit hello.c</pre>

<p>To find out who is watching files, run cvs watchers: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$cvs watchers</pre><pre>$cvs watchers hello.c</pre>

<p>To find out who is editing files, run cvs editors: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$cvs editors</pre><pre>$cvs editors hello.c</pre>

<p>Note: It is necessary to run &quot;cvs edit&quot; before editing any file to
be able to watch feature working. To make sure you do, CVS has a feature to
remind the someone to use cvs edit with the help of&nbsp; the watch on command:
</p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cd project</pre><pre>$ cvs watch on hello.c</pre>

<p>By running cvs watch on hello.c, kapil causes future checkouts of project to
create hello.c read-only in the working copy. When someone else tries to work
on it, he'll discover that it's read-only and be reminded to run cvs edit
first. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$cvs edit hello.c</pre>

<h2><a name=five></a>Rolling back to previous version</h2>

<p class=MsoNormal>Sometimes you need to revert back to previous version of
your&nbsp; project.&nbsp; A project under CVS version control can quickly and
conveniently revert to an earlier stage of its life. I will explain some of the
common examples: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs checkout -D '1 year ago' preproject</pre>

<p class=MsoNormal>Here preproject is the name of the project. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs checkout -r1.4 preproject</pre>

<p class=MsoNormal>1.4 is CVS's revision number for that version. <a name=six></a></p>

<h2>Some common CVS commands</h2>

<p><b>Some common terms:<br>
</b>Import:<span style="mso-spacerun: yes">&nbsp; </span>This means taking an
existing directory tree and copying it into the CVS repository, creating a new
CVS project.
<br>
Commit: Apply all your changes to the CVS repository.  Each changed file will
be assigned a new CVS version.<br>
Checkout: Get the working copy of files from cvs repository into the local
directory.<br>
Export: export is same as checkout. The only difference is that export does not
copy out the CVS administrative directories, so you cannot run CVS commands
in the resulting tree.  On the other hand, this is how you create your "final"
copy for distribution.<br>
Upload: General term for Import or commit.<br>
Download: General term for checkout or export.<br>
Checkin: General term, same as commit.</p>

<p><b>Adding a file to the CVS repository &quot;My_Files&quot;</b> </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs add File3.txt</pre><pre>$ cvs commit</pre>

<p class=MsoNormal>cvs add does not upload the file right away, but registers
it to be uploaded at the next commit. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre>

<p>This invokes your default text editor and prompts you to enter a description
of your changes. Save the file and quit the editor. CVS will then ask you to
continue, and select the option to continue. Now you have uploaded a file to
the CVS repository &quot;My_Files&quot;. </p>

<p><b>Changing a file to the CVS repository &quot;My_Files&quot;</b> </p>

<p>&nbsp;This can be done with cvs commit command. Let us add some content to
the file File2.txt and then commit it to the cvs repository.</p>

<pre>$ ls /var &gt;&gt; File2.txt</pre><pre>$ cvs commit</pre>

<p><b>Removing files</b> <br>
To remove files from a site, you run the cvs remove command on the desired
filenames in your working copy. As a ``safeguard'', cvs remove will not work if
the working copies of your files still exist.<br>
Syntax:<span style="mso-spacerun: yes">&nbsp; </span>$ cvs remove [options]
files<br style='mso-special-character:line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]></p>

<pre>$ cvs remove file.html</pre><pre>cvs server: file `file.html' still in working directory</pre><pre>cvs server: 1 file exists; remove it first</pre><pre>$</pre>

<p>To get around this, you may use the -f option with the cvs remove command or
remove the file first and then execute the cvs remove command. </p>

<pre>$ cvs remove -f oldfile.html</pre><pre>cvs server: scheduling `oldfile.html' for removal</pre><pre>cvs server: use 'cvs commit' to remove this file permanently</pre><pre>$ cvs commit</pre><pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>Or</pre><pre>$ rm File3.txt</pre><pre>$ cvs remove File3.txt</pre><pre>$ cvs commit</pre><pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre>

<p class=MsoNormal>This will not delete the actual file from the CVS server
yet; it simply makes a note to tell the server to remove these files the next
time you commit your working copy of the project.<br>
<span style="mso-spacerun: yes">&nbsp;</span></p>

<p><b>Removing directories</b> <br>
The way that you remove a directory is to remove all the files in it. You don't
remove the directory itself: there's no way to do that. Instead you specify the
`-P' option to cvs update or cvs checkout, which will cause CVS to remove empty
directories from working directories. (Note that cvs export always removes
empty directories.) Note that `-P' is implied by the `-r' or `-D' options of
checkout. This way CVS will be able to correctly create the directory or not
depending on whether the particular version <br>
you are checking out contains any files in that directory. </p>

<p><b>Creating the directory structure from number of files in the CVS
repository</b><br>
This cvs import command is used to put several projects in cvs repository. </p>

<pre>$ cd source <br>
here source is the files that you want to put in cvs repository.<br
style='mso-special-character:line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]></pre><pre>$ cvs import -m &quot;Test Import&quot; My_Files Revision1 start<br>
The string <samp><span style='font-family:"Arial Unicode MS"'>&#8216;Revision1&#8217;</span></samp> is a <em>vendor tag</em>, and <samp><span
style='font-family:"Arial Unicode MS"'>`start'</span></samp> is a <em>release tag</em>. &#8220;My_Files&#8221; is the name of directory in cvs repository. The &#8211;m option is to put log message.</pre>

<p><b>Get the working copy of files from CVS</b> </p>

<p>Okay, now we want to download these files into a Working directory. <br>
When we checkout a package from cvs, it will create a directory for us. The
parameter &quot;My_Files&quot; that we specified when we uploaded the files
into cvs will be the name of <br>
the directory created for us when cvs downloads the package for us. </p>

<p>Now we need to get the cvs package. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs checkout My_Files</pre>

<p><b>Downloading updates that other people make</b> </p>

<p>If you have downloaded a package from a repository that someone else is
maintaining, if you wish to download all the changes, then execute the
following command, </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs update -dP</pre>

<p>The &quot;d&quot; creates any directories that are or are missing. The
&quot;P&quot; removes any directories that were deleted from the repository. </p>

<p><b>Viewing the difference</b> <br>
You can easily see the difference between two file using cvs. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cd project</pre><pre>$ cvs diff index.html</pre>

<p class=MsoNormal>This command runs diff to compare the version of
`index.html' that you checked out with your working copy.&nbsp; Here
&quot;project&quot; is the name of the local project directory. </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs diff -r 1.20 -r 1.21 hello.c</pre>

<p class=MsoNormal>This command will show the difference between two versions
of same file. </p>

<p><b>The annotate Command</b> <br>
With annotate, you can see who was the last person to touch each line of a
file, and at what revision they touched it. It gives you more information than
the history command: </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$cvs annotate</pre>

<p>View logs </p>

<pre><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></pre><pre>$ cvs log -r 1.21 hello.c</pre>

<p class=MsoNormal>This will show you the logs for hello.c version 1.21 <a
name=seven></a></p>

<h2>Other tools and add-ons to CVS</h2>

<p><b>Henner Zeller's CVSweb&nbsp;</b> <br>
It has a feature of browsing the CVS repository by web browser and even shows
the latest revision and log message for each file. It presents you with a
web-based interface to browse any and all of the sites and projects you manage
by&nbsp; CVS. You can get it from <a
href="http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/">http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/</a>
</p>

<p><b>Martin Cleaver's CVSweb</b> <br>
&nbsp;It features capabilities for file upload as well as file browsing of CVS
repository. You can get this software from <a
href="http://sourceforge.net/projects/cvswebclient/">http://sourceforge.net/projects/cvswebclient/</a>
</p>

<p><b>LinCVS</b> <br>
A CVS GUI&nbsp;client for Linux. It provides nice features and easy to use. You
can get it from: <a href="http://www.lincvs.org/">http://www.lincvs.org/</a> </p>

<p><b>WinCVS</b> <br>
A CVS GUI&nbsp;client for Windows. It has many good features and I will
recommend this software for Windows clients. You can get it from <a
href="http://www.cvsgui.org/download.html">http://www.cvsgui.org/download.html</a>
<a name=more></a></p>

<h2>More Information</h2>

<p>CVS Manual : <a href="http://www.cvshome.org/docs/manual/index.html">http://www.cvshome.org/docs/manual/cvs.html</a></p>

<p>CVS Mailing lists: <a href="http://www.cvshome.org/communication.html">http://www.cvshome.org/communication.html</a></p>

<p>&nbsp;<o:p></o:p></p>

<h4><!-- *** BEGIN bio *** -->

<spacer type=vertical size=30>

<img border=0 width=32 height=32 id="_x0000_i1028" src="..\gx\note.gif"
align=BOTTOM>Kapil Sharma</h4>

<p class=MsoNormal>Kapil is a Linux/Unix and Internet security consultant. He
has been working on various Linux/Unix systems and Internet Security for over
three years. He maintains a web site (<a href="http://www.linux4biz.net">http://linux4biz.net</a>)
for providing free as well as commercial support for web, Linux and Unix
solutions. <!-- *** END bio *** --><!-- *** BEGIN copyright *** --></p>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>


<h5 align=center style='text-align:center'><!-- P -->Copyright &copy; 2001, Kapil
Sharma.<br>
Copying license <a href="..\copying.html">http://www.linuxgazette.com/copying.html</a><br>
Published in Issue 66 of <i>Linux Gazette</i>, May 2001<o:p></o:p></h5>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>

<!-- *** END copyright *** -->

<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Stopping Spam on Your Linux Box</font></H1>
<H4>By <a href="mailto:mallet@cluestick.org">Suresh Ramasubramanian</a></H4>
</center>
<P> <HR> <P>  

<!-- END header -->




<P> If you have an e-mail account, you are bo doubt getting mail
that you have not asked for, and do not want in your inbox - unsolicited e-mail
(aka spam).  What's Spam? In 3D "meatspace", it is a luncheon meat manufactured
by Hormel Corp (which also owns <a href="http://www.spam.com"
>http://www.spam.com</a>).  Spam on the net though is
unsolicited e-mail, unwanted e-mail, frequently sent in bulk and advertising
some commercial proposition. Most of the Spam you probably get, and what this
article deals with, is UC/BE (Unsolicited Commercial and/or Bulk E-Mail).</p>

<P> If you have a linux (or *nix) box, you have a set of powerful tools to stop
all this spam from cluttering your inbox.  These tools are even more useful to
you if you run a production mailserver and want to stop spam from reaching your
users.</p>


<P>The three cardinal rules of spamfighting are:</p>


<UL>
<LI>Prevention is better than cure.  Armor yourself against spam.</LI>
<LI>Filter Spam before it reaches your mailbox</LI>
<LI>Complain to the spammer's ISP and get him shut down</LI>
</UL>

<H2>I. Prevention is better than cure.  Armor yourself against spam.</H2>


<P>Protect yourself and prevent spammers from harvesting your address.  Don't
expose your primary e-mail addresses where a spammer can get at it and add it
to his list.  This includes places like <a href="http://www.slashdot.org"
>/.</a>, usenet, publicly archived mailing lists, web based
bulletin boards - in short, anywhere online.  Instead, follow one of these
steps:</P>


<P>1. Use a "throwaway" address (say abcde@yahoo.com) when posting.  If you
find that this address is getting spammed, you can just throw it away and
switch to another address.  To be on the safe side, when you are posting
online, "munge" your address to something like abcde@yahoo.com.Spammers.Suck.
Obviously, spammers (who use robots to crawl the web searching for mail ids and
burn the entire thing into a CD) will not be able to mail you.</P>


<P>2. If you run your own domain, use "expiring" mail addresses - addresses
which will be valid for a [week|month|year], and will then cease to exist.
This address can be something like me-mar31-apr31@mydomain.com.  In case you
don't have your own domain, heck, use me-mar31-april31@yahoo.com instead :)</p>


<P>3. Both these measures have a major drawback: you have to keep changing
your e-mail address--faster than your girlfriend changes her hairstyle! :) If
your ISP uses sendmail, you have another option - "plus" addresses.</P>

<P>Plus addresses are available with newer versions of sendmail (8.8 and
above). Just add a plus sign and any string you want after the username and
before the '@'--the mail will still be delivered properly. For instance,
me+foo_bar@myisp.com will reach me - sendmail will ignore everything after the
plus.  For a (slightly old) FAQ on how to implement plus addressing in
various MTAs (and how to use them in various mail clients) see <a
href="http://www.faqs.org/faqs/mail/addressing/"
>http://www.faqs.org/faqs/mail/addressing/</a>.  (Note that some
MTAs use a hyphen instead of a plus sign.  We'll still call them plus addresses
here--but maybe we should call them "minus" addresses instead!  
<IMG SRC="../gx/dennis/smily.gif" ALT=";D" height="24" width="20"
align="middle">)


<p><EM>Obligatory disclaimer: before you start using plus addresses in your
e-mail, send yourself a test mail with a plus address and check whether it
reaches you.</EM>

<p> Plus addresses are useful because they reveal just <EM>where</EM> a
spammer harvested your mail id from.
For instance, if you subscribe to the Linux India Help mailing list,
subscribe to it as you+lih@yourdomain.com (and make sure you set your mail
client to post messages to the list only using this identity or the list will
bounce your mails).  Both PINE and Mutt allow you to use different identities
when posting (roles in PINE and folder hooks in mutt).  Another advantage of
plus addresses is that, if you start getting lots of spams to a plus
address, you can just send all mails reaching that address to be read by Dave
Null (aka /dev/null).</p>

<P>See <a href="#app1">Appendix #1</a> below for how to configure multiple
identities (including plus addresses) in pine 4.x and Mutt.


<H2>II.	Filter Spam before it reaches your mailbox</H2>


<P>You can do this at the MTA level and by running Procmail filters.  If your
remote mailbox gives you a unix shell account, run the filters there instead of
on your desktop linux box.  Naturally, for the MTA level config / patching, you
have to be root :)</p>

<H3>Procmail Filtering</H3>


<P>Several procmail recipes are available for you to trap and dev/null (or even
complain about) most of the spam you get.  The most popular one is Spambouncer
by Catherine Hampton.  Download for free at
<a href="http://www.spambouncer.org"
>http://www.spambouncer.org</a>. Another excellent page is
maintained by Concordia University at <a
href="http://alcor.concordia.ca/topics/email/auto/procmail/spam/"
>http://alcor.concordia.ca/topics/email/auto/procmail/spam/</a>.
You can also check out <a href="http://www.waltdnes.org/email"
>SpamDunk</a> by Walt Dnes.</p>


<H3>MTA level filtering (Sendmail)</H3>


<P>As most linux boxes come installed with sendmail, I will go into slightly
more detail here.  Sendmail 8.8.7 (which came with Redhat 5.1) and above have
spam blocking features, which allow you to deny mails from specific domains /
domains blackholed in the MAPS RBL and other blackhole lists.  In any case,
upgrade to the latest version of sendmail available (currently 8.11.3, or the
8.12 betas).</p> 


<P>Compiling sendmail is a really good idea (and is quite easy - with detailed
instructions given in a file called INSTALL in the sendmail source tree).  Or
you can get prebuilt binaries in whatever format you want (rpm, deb and
such).</p>

<P>Stock sendmail installs can reject SMTP connections from domains / addresses
based on a database of filter rules - see /etc/mail/access (and
/etc/mail/access.db, which you generate using makemap hash access.db &lt;
access).</p>


<P>/etc/mail/access can have e-mail addresses, whole domains or even specific
ip addresses / ip blocks as keys.</p>


<pre>
	spammer@yahoo.com        550 Get lost - No spammers allowed
	spammer.com	         550 Go to hell
	192.168.212		 REJECT
</pre>

<P>would refuse smtp connections from spammer@yahoo.com, any user from
spammer.com (or hosts within the spammer.com domain), and any host on the
192.168.212.* netblock.  For further (extremely detailed) details, see Claus
Assmann's page at <a href="http://www.sendmail.org/~ca/email/"
>http://www.sendmail.org/~ca/email/</a>  (and the sendmail FAQ
at <a href="http://www.sendmail.org/faq/"
target=_blank">http://www.sendmail.org/faq/</a> won't hurt either).</p>

<P>Test this by sending a test mail to yourself from that host and then
download the message using fetchmail, using the -v argument.  This will allow
you to monitor the SMTP transaction - when the FROM address is parsed, if
sendmail sees that you have blacklisted the address, fetchmail will flush and
delete it.  <EM>Obvious warning: never put a reject entry your own mailhost or
any host you accept mail from using fetchmail into your access db--you will
lose mail if you do this.</EM></p>

<P>You can also reject mail from all hosts listed in the MAPS RBL and other DNS
based blackhole lists by enabling the dnsbl features in sendmail.mc and
rebuilding sendmail.cf.  See <a href="http://www.mail-abuse.org/rbl/usage.html"
>http://www.mail-abuse.org/rbl/usage.html</a> for more
details.</p>


<P>Oh yes - make sure you are not an open relay, which can be abused by
spammers to relay their spam, leaving you with a clogged mailqueue, a mailbox
full of thousands of bounces, angry flames from spammed people and possibly a
listing in the RBL (if you are slow to fix it).  See
<A HREF="http://www.sendmail.org/tips/relaying.html">http://www.sendmail.org/tips/relaying.html</A> and
<A HREF="http://www.orbs.org/otherresources.html ">http://www.orbs.org/otherresources.html </A>for more details.</p>


<P>Newer versions of sendmail dont make you an open relay - if you resist the
temptation to configure sendmail using linuxconf (or most other auto config
tools).  Create a sendmail.mc file and regenerate sendmail.cf.  For example,
see
<a href="http://www.hserus.net/sendmail.html"
>http://www.hserus.net/sendmail.html</a> (part of my Dialup
HOWTO at <a href="http://www.hserus.net/dlhowto.html"
>http://www.hserus.net/dlhowto.html</a></p>

<P>See <a href="#app2">Appendix #2</a> below for antispam measures (including
closing open relays) in other MTAs

<H2>III. Complain against spammers, get them shut down.</H2>


<P>Spam, being the insiduous, creeping slime that it is, will sooner or later
slip through all your filters and enter your mailbox.  A linux box gives you
all you need to track the spammer down - basic *nix tools like whois, nslookup,
traceroute, and the best one of all: dig. The best solution is to spare a
little time (less than five minutes) to send out a few complaints to the
spammer's webhost, his ISP, his freemail provider - anyone and everyone who can
do serious damage to the spammer.  These tools are also available on the web at
<A HREF="http://www.samspade.org">http://www.samspade.org</A>.</P>

<P>See <a href="#app3">Appendix #3</a> below for more links on tracing and
reporting spam

<H2><a name="app1">Appendix 1</a></H2>


<P>Roles in PINE - With PINE 4.x and above, press S (Setup) and R (Roles).  Add
as many roles as you feel like and switch between them using <b>#</b> (the Hash
character).  Or you can choose between different roles when replying to an
e-mail.</p>


<P>Roles in Mutt - Use folder hooks, so that all outgoing mail from a
particular folder have the from field set to me+tag@myisp.com</p>


<pre>
	folder-hook linux   "my_hdr From: me+linux@myisp.com (My Linux Account)"
	set envelope_from   # sets the envelope sender, which is what's checked 
			    # by the list server <= mutt 1.2.x and above
</pre>

<P>Procmail recipe to dev/null all mails sent to a tagged address that attracts
too much spam:</P>


<PRE>
	# If mail is sent to you+spam_string@yourisp.com trash it
	:0:
	*^TO_ you+spam_string@yourisp.com
	/dev/null
</PRE>

<H2><a name="app2">Appendix 2</A></H2>


<P>QMail: See <a
href="http://www.summersault.com/chris/techno/qmail/qmail-antispam.html"
>http://www.summersault.com/chris/techno/qmail/qmail-antispam.html</a>
for a detailed account of anti-spam features in qmail (several of them).</p>

<P>Other MTAs: Debian comes with Exim.  There are other *nix MTAs as well.  See
<A HREF="http://www.mail-abuse.org/tsi/ar-fix.html">http://www.mail-abuse.org/tsi/ar-fix.html</A> 
(and the websites of each MTA) for a comprehensive howto.</p>


<H2><A NAME="#app3">Appendix 3</A></H2>


<P>Reference links:</p>
<P><UL>
<LI><A HREF="http://spam.abuse.net/howtocomplain.html">The abuse.net faq</A></LI>
<LI><A HREF="http://oasis.ot.com/~dmuth/spam-l/tracking.html">The Spam-L mailing list FAQ</A></LI>
<LI><A HREF="http://www.geocities.com/SiliconValley/Lakes/5362/search.html">The
Lumber Cartel Search Page</A>--see their home page for the funny story of
just <EM>how</EM> the Lumber Cartel has become an in-joke among anti-spammers)</LI>
<LI><A HREF="http://www.mail-abuse.org">MAPS</A>-The Mail Abuse Prevention
System, home of the RBL, RSS and DUL blackhole lists)</LI>
<LI><A HREF="http://www.orbs.org">ORBS</A>--another DNS based blackhole list</LI>
<LI><A HREF="http://spam.abuse.net">John R Levine's Network Abuse Clearinghouse</A></LI>
<LI><A HREF="http://www.cauce.org">CAUCE International</A></LI>
<LI><A HREF="http://www.india.cauce.org">CAUCE India</A></LI>
</UL>





<!-- *** BEGIN bio *** -->
<SPACER TYPE="vertical" SIZE="30">
<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Suresh Ramasubramanian</H4>
<P><A HREF="mailto:suresh@india.cauce.org">Suresh</A> is
President of the Indian chapter of 
<A HREF="http://india.cauce.org">CAUCE</A>, an international organization of
people dedicated to fighting Spam.  He is webmaster of 
<A HREF="http://www.kcircle.com">KCircle</A>, one of the world's most popular
trivia quiz resources.</a>

<!-- *** END bio *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P --> 
<H5 ALIGN=center>

Copyright &copy; 2001, Suresh Ramasubramanian.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR> 
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->


<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <hr> <P> 

<H1><font color="maroon">The Back Page</font></H1>
<ul>
<li><a HREF="#authors">About This Month's Authors</a>
<li><a HREF="#wacko">Wacko Topic of the Month</a>
<li><a HREF="#notlinux">Not Linux</a>
<li><a HREF="#spam">World of Spam</a>
</ul>

<a name="authors"></a>
<P> <HR> <P> 
<!--======================================================================-->

<center><H3><font color="maroon">About This Month's Authors</font></H3></center>

<P> <HR> <P> 
<!--======================================================================-->


<P> Author bios are now at the bottom of the corresponding article.  This was
suggested by <A HREF="mailto:dpuryear@usa.net">Dustin Puryear</A>, and we
decided we like the idea.  What do you readers think?


<a name="wacko"></a>
<P> <hr> <P> 
<!--====================================================================-->

<center><H3><font color="maroon">Wacko Topic of the Month</font></H3></center>

<P> <HR> <P> 
<!--======================================================================-->
<P>


<!-- FONT COLOR="green" -->

<H3 align="left"><img src="../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Yamaha and UFOs</H3>


<p align="right"><strong>Answered By Ben Okopnik, Mike Orr, Heather Stern
<br></strong></p>

<P> <STRONG>I wanted to ask if you service yamahe music equipment.</STRONG>

</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Ben]
Hey, <I>LG</I> <STRONG>does</STRONG> mention "Yamaha" a dozen times in past
issues (the sound card, obviously). Maybe the guy was getting desperate and
trying every source... That is pretty wild, though. I'm still waiting for "Dear
Earthlings: I just installed Windows on my UFO, and now I can't get back in..."
</BLOCKQUOTE>

</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Mike]
"Hey Earthlings, we just installed something called Windoze En-Tee on
our flying saucer, and it made all or monitors turn 
<FONT COLOR="blue">blue</FONT>.  There's a message
in <FONT COLOR="gray">white</FONT> letters on the screen, but we don't
understand the language.  Please help <STRONG>URGENTLY</STRONG> as our
spacecraft is out of control and is locked on a crash course with Earth."
</BLOCKQUOTE>

</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]

Fellow-being: What you need is to install something else quick.
Since your saucer can run Windoze (also called MSwin or windows or wind*ws)
I recommend "ZipSlack" 
<A HREF="">http://www.slackware.com/zipslack/getzip.php</A>.
It can load quickly onto the "FAT" filesystem MSwin uses and once you have
successfully launched that you should stop crashing...

<P> You may want something more well-tuned to your saucer once you have that
going.

<P> According to my research (slim pickings, most of our movies about aliens
don't describe their software, but one notes you are able to run some of our
virus software), apparently your native operating system most closely resembles
something here called "MacOS".  This is at least part of the problem, nearly 
any earthling knows that the MacOS and Windows vendors are at war with each 
other. 

<P> Unfortunately MacOS is proprietary so getting you a working copy without
getting some Earth hardware to go with it, may be a problem, esp. if you 
have no Earth currency aboard.

<P> Fortunately, we Linuxers can recommend either 
<A HREF="http://www.yellowdoglinux.com">Yellow Dog Linux</A> or 
<A HREF="http://www.linuxppc.com">LinuxPPC 2000</A>
, as well as 
<A HREF="http://www.debian.org">Debian</A>.  I can't say which will have the fastest install -
a Mac-using friend highly recommends the first... Debian is highly available
so you should be able to reach a mirror site no matter which of our land
masses you are presently nearest.  To save you time the web link you need
is <A HREF="http://cdimage.debian.org/ftp-mirrors.html">http://cdimage.debian.org/ftp-mirrors.html</A>.

Normally they discourage getting ISO images directly like that but, they
expect you to have a stable system to fetch.  I hope you will have no
problems whatsoever creating discs ...

By the way, most earthlings don't understand the funny messages generated
by those blue screens either.  Luckily I can assure you they don't help fix 
the problem...

</BLOCKQUOTE>

<!-- /FONT -->

<a name="notlinux"></a>
<P> <hr> <P> 
<!--====================================================================-->

<center><H3><font color="maroon">Not Linux</font></H3></center>

<P> <HR> <P> 
<!--======================================================================-->
<P>

<A HREF="http://www.faqs.org/rfcs/rfc3092.html">RFC 3092</A> muses on the
etymology of 'foo' and 'bar'.  Among other things, it says the "wildly popular"
Smokey Stover comic strip of the 1930s by Bill Holman
"featured a firetruck called the Foomobile that rode
on two wheels."  

<P> The RFC also has a table of which other RFCs mention "foo", "bar" or
"fubar".

<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ************************************** -->

<P> Rory Krause and I came up with this one:<BR>
the sysadmin's dance: do the Buggy Boogie.


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ***************************** -->

<P> <A HREF="http://rtmark.com/cuehack/">CueJack</A> is a Windows application
that lets you scan a products with a :CueCat scanner, then displays a web page
with "alternative information" about the product's company.
As you can guess, the "alternative information" is stuff the company
doesn't want you to know.  
"This could be information about corporate abuse, boycotts against the company,
even how much money the company is making, their corporate image as presented
to shareholders, etc."
Courtesy Slashdot.

<P> Miscellania: The program was renamed from CueHack because another program
already had the same name.  The author is working on a Linux version but says
there are technical difficulties.






<a name="spam"></a>
<P> <hr> <P> 
<!--====================================================================-->

<center><H3><font color="maroon">World of Spam</font></H3></center>

<P> <HR> <P> 
<!--======================================================================-->
<P>

<H4> Some of the funnier spams found in the <EM>Gazette</EM> mailbox.</H4>

<P> ... helps Businesses to eliminate the need of hiring telemarketers 
Automated initial customer application process and many more
features......... You will smile all the way to the Bank!!

<P> Automatically calls........ To market products and to make announcements.
To confirm preset appointments, prescheduled meetings, and conferences.  Our
CTI software can be used by businesses and services by calling sequentially or
randomly.  Automatically dials up to 2,000 - 10,000 prospects per day without
human interference.  When our CTI software calls it can simply leave a message
or it can ask for a response. You may obtain responses by recording their
voices, asking them to press a key, to respond to choices or transferring to a
live operator. Just record your messages, select which group ( Data Bases) you
want to call , when you want to start and stop, and then let our CTI software
got to work calling everyone.  You will save tremendous time and get results
very fast ! without increasing your overheads or hiring extra help.  



<BLOCKQUOTE><EM>
	[ Your Editor got an obnoxious phone call at home recently from one of
	these machines.  The recorded message said, "Please hold until a
	representative can get to you."  Click!   
	
<P> 
</EM><TT>
Subject: BOUNCE tag@ssc.com:     Message too long (>40000 chars)<BR>
</TT><EM>
It's nice to know the TAG spamfilter is working.
<IMG ALT=";)" SRC="../gx/dennis/smily.gif" 
WIDTH="20" HEIGHT="24" ALIGN="middle">
-Mike.]

</EM></BLOCKQUOTE>

<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ************************************** -->

From: Justin Catterall<BR>
Date: Fri, 6 Apr 2001 22:39:05 +0100

<P> Regarding the 
<A HREF="../issue65/lg_backpage65.html#notlinux">Nigerian money scam</A> 
in last month's Not Linux.

<P> I've been receiving faxes the same as this for a few years at work, the
scam is worse than it looks: they *have* been succesful on several
occaions - all UK (if not world) banks know not to let their customers
get involved.

<P> What basically happens is A N Idiot agrees to the deal, signs the papers
and money appears in his/her account. A N Idiot then transfers most of
the money to another account (the scammer's). The money coming into the
account then never arrives - originating bank denies knowledge or
whatever - A N Idiots bank ha's, in the mean time, sent the money to
another bank. The first thing the bank does is debit A N Idiot's
account... A N Idiot is holding the can for an awful lot more money than
they thought they'd ever see.

<P> Holding the can for more money than you thought you'd ever see is
probably better than holding the can for the first million you've just
made and is all you have because if you're 999,000 away from paying back
1,000,000 they aren't really going to try to get it back but if you're
nearly their they'll clean you out then lock you up.

<P> These scammers are real bastards, if I didn't know it happened I wouldn't
believe people could be so bad to other people.

<P> Anyway, I just thought I'd let you know that this scam has worked and how
it worked (roughly and AIUI).

<P> Keep up the work with the gazette.


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ***************************** -->


<P>
From: James Suttie<BR>
Date: Fri, 20 Apr 2001 22:36:48 +0100


<P> keep up the good work with Linux Gazette - here's one of many links to the
African spam scam!
<A HREF="http://www.state.vt.us/atg/NIGERIA.htm">http://www.state.vt.us/atg/NIGERIA.htm</A>

<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ************************************** -->


<P> Are you planning to rent a Limousine, Sedan or a Private car for your Teen
Prom Ceremony this session? 


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ************************************** -->

<P> ALWAYS SEND $5 CASH (U.S. CURRENCY) FOR EACH REPORT CHEQUES NOT BE ACCEPTED
ALWAYS SEND YOUR ORDER VIA FIRST CLASS MAIL Make sure the cash is concealed by
wrapping it in at least two sheets of paper. On one of those sheets of paper,
include: (a) the number & name of the report you are ordering, (b) your e-mail
address, and (c) your name & postal address.


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ************************************** -->

<P> Free Leads Daily - Spam FREE! No Cost to you! 



<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ************************************** -->


<P> YOU CAN make over a half million dollars every 4 to 5 months from
your home for a one time investment of only twenty five U.S.
Dollars.


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ***************************** -->

<P> Subject:  BUSINESS OPPORTUNITY EXTRAORDINAIRE!!

<P> I understand you are seeking information about home based business
opportunities.

<P> --LEGITIMATE online business, which is SUCCESSFUL and GROWING.

<P> --PERFECT for someone who has VERY LITTLE TIME to invest or 
for someone who LOVES being online!

<P> Please email me at the address below to receive FREE VITAL INFORMATION
(You'll very well Kick Yourself and your Modem if you don't)


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ***************************** -->

<P>Our research indicates this information may be of interest to you. 


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ***************************** -->

<P> Hello gazette<BR>
WOW! This is absolutely amazing! Now you can put money in 
your pocket at warp speed using the internet! We're not talking 
weeks or even days, but within HOURS!! Wouldn't you like to 
be $5,000 richer by the day after tomorrow? Then you can do it 
again as often as you like - even every day! For all the fantastic 
details, send a blank email to: [address]


<HR NOSHADE WIDTH="40%" ALIGN="center"> <!-- ***************************** -->


E-zine Editors... Authors... Information Publishers...** NEVER BEFORE SEEN ** Techniques For 
Turning an Electronic Newsletter Into a $20,000+ a Month Profit Stream! 
 
<BLOCKQUOTE><EM>
	[Wow, something that's actually relevant to </EM>LG<EM>  -Mike.]
</EM></BLOCKQUOTE>







<HR NOSHADE WIDTH="80%"> <!-- ************************************** -->

<P> Happy Linuxing!

<P> Michael Orr<br>
Editor, <A HREF="http://www.linuxgazette.com/"><i>Linux Gazette</i></A>, <A
HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
<BR CLEAR="all">

<!-- *** END Not Linux *** -->

<!-- *** BEGIN copyright *** -->
<P> <hr> <P> 
<H5 ALIGN=center>
Copyright &copy; 2001, the Editors of <I>Linux Gazette</I>.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR>
Published in Issue 66 of <i>Linux Gazette</i>, May 2001</H5>
<!-- *** END copyright *** -->