File: ChangeLog

package info (click to toggle)
rush 1.7%2Bdfsg-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,716 kB
  • ctags: 3,277
  • sloc: ansic: 7,729; sh: 4,985; perl: 297; makefile: 113; awk: 37; sed: 24
file content (1034 lines) | stat: -rw-r--r-- 31,262 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
2010-07-07  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 1.7

	* NEWS: Update.
	* configure.ac: Update.

2010-06-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Allow the use of symbolic names in 'uid' and 'gid'. New command
	'newgrp'.

	This also undoes commit ccb22a037, which became superfluous with
	the advent of these changes.

	* src/config.c (parsegid, parseuid): New functions.
	(new_rush_rule): Initialize gid to NO_GID.
	(parse_cmp_op): Handle != (accidentally sunonymous to !)
	(numstrtonum): New function.
	(parse_numtest): Take conversion function as 4th argument.
	All callers updated.
	(uidtonum): New function.
	(_parse_uid): Use uidtonum as a conversion function.
	(gidtonum): New function.
	(_parse_gid): Use gidtonum as a conversion function.
	(_parse_newgroup): New function.
	(_parse_main_group): Remove.
	(toktab): Remove "main-group", add "newgroup" and
	"newgrp".
	* src/rush.c (groupcmp): Remove princ parameter. All
	callers updated.
	(test_request): Remove test_request_main_group.
	(run_rule): Handle `newgrp' request.
	(main): Initialize req.gid to NO_GID.
	* src/rush.h (test_type): Remove test_main_group.
	(rush_rule)<gid>: New member.
	(rush_request)<gid>: New member.
	(NO_GID): New constant.

	* doc/rush.texi: Update.
	* NEWS, configure.ac: Set version 1.6.91

2010-06-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Add new condition: main-group.

	* src/config.c (toktab): New condition main-group.
	* src/rush.c (groupcmp): New argument `princ' specifies
	whether to match only principal group or all the groups
	the user is member of.
	(test_request_group): Call groupcmp with princ=0.
	(test_request_main_group): New test.
	(test_request): Add test_request_main_group.
	* src/rush.h (test_type): New type test_main_group.
	* NEWS, THANKS: Update.

2010-04-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Allow for "include" statements outside of rule context.

	* src/config.c (toktab): Remove TOK_RUL from the flags.

2010-04-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update NEWS.

	Improve rule parsing.

	A configuration file consisting of a single fall-through rule
	caused infinite loop in main.

	* src/rush.c (match_rule): return immediately if
	rule is NULL.
	(run_rule): Run accounting only if req->acct is
	rush_true.
	(main): Break the loop when NULL rule is hit.
	Report "no matching rule" if exited from the
	loop.

	Bugfix

	* src/rush.c (run_transforms)<transform_setcmd>: Add
	GET_TGT_VAL();

2010-04-17  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 1.6.90

	* configure.ac: Update version number.
	* NEWS: Update.

	Configurable permissions for accounting database.

	* lib/librush.h (rush_wtmp_mode): Remove.
	(rushdb_umask, rushdb_dir_mode, rushdb_file_mode): New externs.
	* lib/rushdb.c (rushdb_umask, rushdb_dir_mode)
	(rushdb_file_mode): New variables.
	(rushdb_open_internal): New function.
	(rushdb_open): Call rushdb_open_internal after setting
	the rushdb_umask.
	(rushdb_print_header)<FDATA_STRING>: Fix first argument
	to output_string.
	* lib/utmp.c (rush_utmp_open): Use file permissions from
	rushdb_file_mode.
	* lib/wtmp.c (rush_wtmp_mode): Remove.
	(rush_wtmp_open): Use file permissions from
	rushdb_file_mode.
	* src/config.c (parse_file_mode): New function.
	(_parse_umask): Use parse_file_mode.
	(_parse_acct_file_mode,_parse_acct_dir_mode)
	(_parse_acct_umask): New functions.
	(toktab): New keywords: acct-file-mode, acct-dir-mode, acct-umask.
	* src/rush.c (run_rule): Don't set umask before calling
	rushdb_open,
	the function itself takes care of it.

	* doc/rush.texi: Document new configuration statements.
	* NEWS: Update.

	Fix http://puszcza.gnu.org.ua/bugs/?127

	* src/rush.c (make_file_name): Fix typo (misplaced
	`+ 1').

2010-02-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	Apply the default regex flags to `transfer' statement.

	* src/rush.h (compile_transform_expr): Change signature.
	* src/transform.c (parse_transform_expr)
	(compile_transform_expr): Pass regcomp flags as argument.
	* src/config.c (_parse_transform_common): Pass re_flags to
	compile_transform_expr.

	Improve configuration machinery.

	* configure.ac: Enable silent rules. Require Automake 1.11.1.
	* Makefile.am (make-ChangeLog): Remove rule.
	(ChangeLog): Rewrite.
	* src/Makefile.am (sbinPROGRAMS_INSTALL): Remove. New Automake
	does
	not support it any more. Instead use:
	(change-suid-mode): New rule.
	(install-exec-hook): New rule.
	(defines.h): Make rule a silent one.
	(.opt.h): Likewise.

2010-01-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update copyright years.

	Happy GNU Year!

2009-10-29  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix doc/Commit

	* doc/Commit (gray_print_section): Output anchors before
	chapter/section/etc. titles, so that the heading menu in
	monolithic document works properly.

2009-10-27  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfixes.

	* configure.ac: Check for socket.h and sys/socket.h.
	Needed for socklen_t check below.
	* src/getopt.m4: Remove useless test.

	Update docs to match the new webpage format.

	* doc/Makefile.am (manual.tar.bz2, man-tar): New rules.
	(manual): Declare as phony.
	* doc/gendocs_template: Rewrite.
	* doc/rush.texi: Minor changes.

2009-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfixes

	* src/getopt.m4 (BEGIN): Remove extra quoting.
	(GETOPT): Rename c to optchar
	* src/rlopt.opt: Change the way of handling -[0-9]+
	argument. In particular, it is able to correctly
	handle options like -10.

2009-02-12  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfixes

	* configure.ac: Check for socklen_t.
	* src/rush.h: Include sys/time.h;
	Provide a backup definition for LOG_AUTHPRIV.

2009-02-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix diagnostic message in run_transforms

	Update docs, set version number 1.6

	Update docs

2009-02-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	Allow references to predefined error messages in `exit'
	statements.

	* NEWS, doc/rush.texi: Update
	* src/cfck.c: Remove inclusion of argmatch.h
	* src/config.c (_parse_usage_error, _parse_nologin_error)
	(_parse_config_error, _parse_system_error): Use set_error_msg.
	(_parse_exit): Special handling of initial @ in the message text.
	* src/rush-po.awk: Special handling of initial @ in the message
	text.
	Capture arguments of usage-error, nologin-error, config-error and
	system-error.
	Fix input line counting.
	* src/rush.c (error_msg): Array of structures.
	(set_error_msg, string_to_error_index): New functions.
	(send_msg): Use error_msg[type].custom to decide what textual
	domain to use
	for translation.
	(run_transforms): Remove temp. The result of rush_expand_string
	is assigned
	to val directly and is never freed.
	(run_rule): Special handling of initial @ in the error message
	text.
	* src/rush.h: Include argmatch.h
	(error_msg): Remove declaration.
	(set_error_msg, string_to_error_index): New prototypes.

	Update docs

2009-02-03  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update docs

2009-02-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor docs changes

	Allow to use patterns in set rules.

	* lib/argcv.c (quote_transtab): Add \v.
	* src/config.c (_parse_set, _parse_set_ar): Store value in
	node->pattern.
	* src/rush.c (run_transforms): Use patterns in set rules.
	(run_rule): Fix wording of a diagnostic message.
	* src/rush.h (struct transform_node.v): Remove val.

	* NEWS: Update
	* doc/Makefile.am (check-writeme): New goal.
	(all-check-docs): Add dependency on check-writeme.
	* doc/rendition.texi (WRITEME): New macro.
	* doc/rush.texi: Update.

2009-02-01  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor change

	Allow to specify source strings for transformations.

	* NEWS: Update.
	* lib/argcv.c (_ARGCV_WORD_SED_EXPR, _ARGCV_WORD_MASK): New
	defines.
	(argcv_scan): Treat sed expressions as words, if ARGCV_SED_EXPR
	is set.
	(argcv_get_np): Do not unquote word if ARGCV_QUOTE is not set,
	or the
	word is a sed expression.
	(ARGCV_DEFFLAGS): Move to argcv.h
	* lib/argcv.h (ARGCV_DEFFLAGS, ARGCV_SED_EXPR): New defines.
	* src/config.c (_parse_transform_common): New function.
	(_parse_transform,_parse_transform_ar): Call
	_parse_transform_common.
	(TOK_SED): New define.
	(toktab): Mark `transform' with TOK_SED.
	(parse_input_buf): Use argcv_get_np for field splitting. If the
	token is
	marked with TOK_SED, assume ARGCV_SED_EXPR flag.
	* src/map.c (mapdef): New meta-variable: "command".
	(rush_expand_string): New function.
	* src/rush.c (run_transforms): Use node->pattern, if not NULL.
	* src/rush.h (struct transform_node.pattern): New field.
	(rush_expand_string): New proto.

	Allow to modify program name, as opposed to argv[0]

	* configure.ac, NEWS: Version 1.5.90
	* lib/argcv.c, lib/argcv.h: Fix copyright years.
	* src/config.c (new_transform_node): Take addtional argument. All
	uses updated.
	(struct stmt_env.progmode): New field.
	(check_argc): New function.
	(TOK_CRT): New token flag.
	(toktab): New commands "delete" and "set".
	Mark "transform" and "map" with TOK_CRT.
	(parse_input_buf): If TOK_CRT is set, allow ^ as an index,
	indicating
	program name, as opposed to argv[0].
	* src/map.c (mapdef): New meta-variable "program".
	* src/rush.c (ARG_NO): New macro.
	(test_request_arg): Use ARG_NO.
	(get_arg_no,assign_string): New functions.
	(run_transforms): Handle delete and set commands. Set or modify
	program name, if required ([^]).
	(run_rule): Use req->prog, if set.
	* src/rush.h (transform_delarg, transform_setcmd)
	(transform_setarg): New constants.
	(struct transform_node): New fields: progmod, v.val, v.arg_end.
	(struct rush_request): New field: prog.
	(PROGFILE): New macro.

2009-01-31  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix use of index in map[] instruction

2009-01-30  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix word splitting.

	* src/argcv.h, src/argcv.c: Move to lib.
	* lib/argcv.h (ARGCV_WS, ARGCV_QUOTE, ARGCV_RETURN_DELIMS):
	New defines.
	* lib/argcv.c: Implement more flags to control the word splitter
	behavior.
	* lib/Makefile.am (librush_a_SOURCES): Add argcv.[ch]
	* src/config.c (_parse_map_ar): Allocate memory for defval.
	* src/map.c (map_string): Strip off trailing newline before
	parsing the buffer.

	Implement `map' transformations (follow-up).

	* gnulib.modules: Add getline and obstack.
	* src/Makefile.am (rush_SOURCES): Add map.c
	* src/map.c: New file.
	* src/cfck.c (cfck_keyword): Remove 2nd argument.
	* src/config.c (parse_strv): Remove.
	(struct stmt_env): New data type.
	(parse_neg_strv): New function.
	(_parse_map_ar): New function.
	(TOK_ARGN,TOK_DFLN): New defines.
	(struct token.parses): Change proto. All _parse_.* functions
	updated.
	(toktab): Update flags. New command word "map".
	(parse_input_buf): Update use of token.parses. Handle TOK_ARGN.
	* src/rush.c (run_transforms): Handle transform_map case.
	(run_rule): Add typecast.
	* src/rush.h (struct rush_map): New data type.
	(transform_map): New transform type.
	(struct transform_node): Replace "trans" with union.
	(debug6): Fix definition.
	(debug7): New macro.
	(cfck_keyword): Takes 1 argument.
	(map_string): New prototype.

	* src/rushlast.c, src/rushopt.opt, src/rushwho.c: Minor fixes.

	Implement `map' transformations.

	* gnulib.modules: Add getline and obstack.
	* src/Makefile.am (rush_SOURCES): Add map.c
	* src/map.c: New file.
	* src/cfck.c (cfck_keyword): Remove 2nd argument.
	* src/config.c (parse_strv): Remove.
	(struct stmt_env): New data type.
	(parse_neg_strv): New function.
	(_parse_map_ar): New function.
	(TOK_ARGN,TOK_DFLN): New defines.
	(struct token.parses): Change proto. All _parse_.* functions
	updated.
	(toktab): Update flags. New command word "map".
	(parse_input_buf): Update use of token.parses. Handle TOK_ARGN.
	* src/rush.c (run_transforms): Handle transform_map case.
	(run_rule): Add typecast.
	* src/rush.h (struct rush_map): New data type.
	(transform_map): New transform type.
	(struct transform_node): Replace "trans" with union.
	(debug6): Fix definition.
	(debug7): New macro.
	(cfck_keyword): Takes 1 argument.
	(map_string): New prototype.

	* src/rushlast.c, src/rushopt.opt, src/rushwho.c: Minor fixes.

	Initial implementation of "interactive" mode.

	* src/config.c (_parse_interactive): New function.
	(toktab): New token "interactive".
	* src/rush.c (rush_interactive_shell): New variable.
	(main): Use rush_interactive_shell as the command, if -c is
	not given.
	* src/rush.h (rush_interactive_shell): New declaration.

2009-01-14  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 1.15

	* NEWS: Version 1.15
	* configure.ac: Likewise.
	* bootstrap.conf: Remove SKIP_PO setting. The TP URL is
	operational now.
	* doc/gendocs_template: Mark as a GNU project.
	* doc/rush.texi: Change bug-reporting email.

	* gnulib.modules: Remove progname.
	* lib/progname.c: Provide own version of the progname module.
	* lib/Makefile.am (librush_a_SOURCES): Add progname.c
	* lib/librush.h (program_name): New global decl.
	(rush_set_program_name): New proto.
	* src/rush.h: Remove progname.h
	* src/rush.c (main): Use rush_set_program_name.
	* src/rushlast.c: Likewise.
	* src/rushwho.c: Likewise.

	Minor fixes.

	* README, doc/rush.texi: Update.
	* configure.ac: Allow relative file name as an
	argument to --with-default-config.
	* confpaths.h.in: Remove.
	* gnulib.modules: Add progname
	* lib/librush.h: Include unistd.h
	* src/Makefile.am (LDADD): Add @LTLIBINTL@
	* src/defconf.sed: Bugfix.
	* src/rush.c (main): Use set_program_name
	* src/rushwho.c: Likewise.
	* src/rushlast.c: Likewise.
	* src/socket.c: Move network-related includes to rush.h

2009-01-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Rush is dubbed GNU software

	Change documentation license to GFDLv1.3+

	Finish 1.4.90

	* NEWS: Update.
	* README: Update.
	* configure.ac: New option --with-default-config
	* doc/rush.texi: Update.
	* src/.gitignore: Add rlopt.h, rushopt.h and rwopt.h
	* src/Makefile.am (EXTRA_DIST): Add defconf.sed
	(BUILT_SOURCES): Add rwopt.h and rlopt.h
	(defines.h): Define RUSH_DEFAULT_CONFIG, if requested by
	--with-default-config.
	* src/config.c (init_input_buf): Do not abort on unexisting
	file, if RUSH_DEFAULT_CONFIG is defined.
	(include-safety): Rename include-security.
	(parse_config): Add debug diagnostics.
	* src/rushopt.opt: Rename --safety-check to --security-check.
	New option --show-default.

	Add missing files

2009-01-12  Sergey Poznyakoff  <gray@gnu.org.ua>

	Redo option parsing.

	* src/getopt.m4: New file.
	* src/rlopt.opt: New file.
	* src/rushopt.opt: New file.
	* src/rwopt.opt: New file.
	* src/Makefile.am (EXTRA_DIST): Add getopt.m4, *.opt
	(rush_SOURCES): Add rushopt.h
	(rushwho_SOURCES): Add rwopt.h
	(rushlast_SOURCES): Add rlopt.h
	(MAINTAINER_CLEANFILES): Add rushopt.h, rwopt.h, rlopt.h
	(.opt.h): New rule.
	* src/config.c (check_dir): Fix diagnostic messages.
	(toktab): Rename config-safety to include-safety
	* src/rush.c, src/rushlast.c, src/rushwho.c: Redo option parsing.

	* NEWS: Update.

2009-01-11  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement configuration file safety checks.

	* gnulib.modules (argmatch,dirname): New modules.
	* src/cfck.c: New file.
	* src/Makefile.am (rush_SOURCES): Add cfck.c
	* src/config.c (init_input_buf): Call check_config_permissions
	(_parse_include): Store NULL into ret_buf, if the file does
	not exist.
	(_parse_config_safety): New function.
	(toktab): New statement "config-safety"
	(parse_input_buf): Do not reset the input buf, if ret_buf is NULL.
	* src/rush.c: New option --safety-check (-C)
	* src/rush.h (RUSH_CHK_.*): New defines.
	(check_config_permissions,cfck_keyword): New prototypes.

	Update docs

2009-01-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes.

	* src/rush-po.awk: New file.
	* src/Makefile.am (pkgdata_DATA): Add rush-po.awk
	* NEWS, doc/rush.texi: Update docs.
	* src/config.c (toktab): Fix flags of several statements.
	* lib/librush.h, src/Makefile.am, src/rush.c, src/rush.h
	src/rushlast.c, src/rushwho.c: Update copyright years.

	Minor fixes.

	* src/config.c (free_input_buf): Avoid freeing ibuf->file,
	which remains
	used by node structures.
	(_parse_locale): Allow for empty locale value.
	* src/rush.c: Minor fixes.
	(run_rule): Form environment before eventually printing error_msg.
	* src/rushlast.c, src/rushwho.c: Fix typos.

2009-01-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Rewrite support for file inlcusion.

	* src/config.c: Rewrite support for file inlcusion.
	Files can be included at any point.

2009-01-07  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement I18n.

	* lib/i18n.c: New file.
	* Makefile.am: Add po.
	* po: New directory
	* po/POTFILES.in: New file.
	* bootstrap.conf: Add i18n.
	* configure.ac: Check for gettext.
	* gnulib.modules: Add gettext-h
	* lib/Makefile.am (librush_a_SOURCES): Add i18n.c
	* librush.h: Include gettext.h
	(_,N_): New macros.
	(RUSH_ARG_UNUSED, RUSH_PRINTFLIKE): New macros.
	(rush_i18n_init, user_gettext): New prototypes.
	* lib/readfmt.c: Include librush.h
	Add nls markers.
	* lib/rushdb.c, lib/version.c, src/config.c, src/limits.c,
	src/rushlast.c, src/rushwho.c, src/socket.c, src/transform.c:
	Add nls markers
	* src/rush.c: Add nls markers
	(rush_pw): New global.
	(die): Take an extra argument. Use user_gettext to
	translate user message.
	(make_file_name): New function.
	(run_rule): Copy i18n to the request.
	(main): Save struct passwd in rush_pw.
	* src/rush.h (struct rush_i18n): New structure.
	(struct rush_rule, rush_request): New member i18n.
	(rush_pw): New global.
	(die): Change prototype.
	(make_file_name, expand_tilde): New prototypes.

2008-12-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 1.4.90

	* NEWS, configure.ac: Version 1.4.90
	* doc/rush.texi: Document notification
	* src/rush.c (run_rule): Non-empty post-sockaddr implies
	`fork on'.

	Socket notification: switch to TCPMUX protocol.

	* src/config.c (_parse_post_socket): Use tcpmux service by
	default.
	* src/socket.c: Use TCPMUX protocol.

2008-12-07  Sergey Poznyakoff  <gray@gnu.org.ua>

	Initial implementation of socket notification interface.

	* src/socket.c: New file.
	* src/Makefile.am: Add socket.c
	* src/config.c: New statement `post-socket'.
	* src/rush.c (struct rush_request): Move to rush.h
	(fork_process): Run post_socket_send, if post_sockaddr is given.
	(run_rule): Propagate post_sockaddr.
	(main): Minor fix.
	* src/rush.h (struct rush_request): Moved from rush.c; New member
	post_sockaddr.
	(struct rush_sockaddr): New structure.
	(struct rush_rule): New member post_sockaddr.
	(post_socket_send): New proto.

2008-10-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 1.4

2008-10-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor changes.

	* src/rushlast.c: Format preferences: command line option,
	RUSHLAST_FORMAT env. variable, default format.
	* src/rushwho.c: Format preferences: command line option,
	RUSHWHO_FORMAT env. variable, default format.
	* doc/rush.texi: Mention RUSHLAST_FORMAT and RUSHWHO_FORMAT vars.

	Bugfix

	Fix direntry references

2008-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update

	Version 1.3

	* Makefile.am (DISTCLEANFILES, EXTRA_DIST): Remove.
	* NEWS: Version 1.3
	* configure.ac: Version 1.3
	* doc/rush.texi (direntry): Fixed.
	Add missing opindexes.	Arrange option tables in a
	traditional manner (short options first).
	* lib/rushdb.c (output_duration): Fix indentation.
	(format_pid): Fix size of buf.
	* src/Makefile.am (INCLUDES): Fix.
	* src/rush.c: Remove isatty restriction.

	Minor improvement

	* doc/rush.texi: Document --user option.
	* src/rush.c: Support all options only if invoked from a tty,
	otherwise
	support only -c.

	Minor fix.

	* doc/rush.texi: Various fixes.
	* src/rush.c: Implement --user (-u) option.

	Rearrange the docs

2008-10-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor changes.

	* lib/rushdb.c (output_duration): Minor fix in width calculation.
	* doc/rush.texi: Added missing sections.  Spell checked.

2008-10-12  Sergey Poznyakoff  <gray@gnu.org.ua>

	Various improvements.

	* gnulib.modules: Add error.

	* lib/readfmt.c: New file.
	* lib/Makefile.am (librush_a_SOURCES): Add readfmt.c
	* lib/librush.h (rush_read_format): New prototype.
	* lib/rushdb.c: Fix indentation.
	Allow to use quoted strings and escapes inside forms.
	Ignore explicit newlines.
	* lib/wtmp.c (rush_wtmp_copy): Copy pid.
	* src/rushlast.c: Use error instead of fprintf to stderr.
	Accept --format=@file.
	Fix default output format.
	* src/rushwho.c: Likewise.

	* doc/rush.texi: Document rushlast and rushwho
	* doc/strftime.texi: New file.
	* doc/Makefile.am (rush_TEXINFOS): Add strftime.texi

	Bugfixes

	* doc/rush.texi: Document forked mode.
	* lib/rushdb.c (output_duration): Honor width.
	(rushdb_compile_format): Use xzalloc to create new form.
	* src/rushwho.c: Change default format.

	Implement acct db locking.

	* gnulib.modules: Add vasprintf
	* lib/librush.h (rush_utmp_lock_all)
	(rush_utmp_unlock_all,rushdb_lock,rushdb_unlock): New functions.
	* lib/rushdb.c (rushdb_lock,rushdb_unlock): New functions.
	(rushdb_start): Lock utmp for writing.
	* lib/utmp.c (rush_utmp_write): Lock affected record for writing.
	(rush_utmp_lock_all,rush_utmp_unlock_all): New functions.
	* lib/wtmp.c (rush_wtmp_append): Lock affected record for writing.

	Minor fix

	Finish rushlast and rushwho.

	* lib/librush.h (RUSH_UTMP_NAME, RUSH_WTMP_NAME): New defines,
	instead of _SUF counterparts.
	(enum rushdb_result, enum rush_wtmp_dir): new constants.
	(rush_wtmp_set_dir, rush_wtmp_rewind): New functions.
	(rush_wtmp_read, rush_utmp_read): Return enum rushdb_result.
	(rushdb_backward_direction): New function.
	* lib/rushdb.c (format_error): New function
	(rushdb_open): Return enum rushdb_result.
	(rushdb_backward_direction): New function.
	(format_stop): Correctly handle empty stop date.
	(rushdb_compile_format): Make sure time formats have correct
	widths.
	* lib/utmp.c (rush_utmp_read0, rush_utmp_read): Change return
	value.
	* lib/wtmp.c (rush_wtmp_dir): New variable.
	(rush_wtmp_rewind): New function.
	(rush_wtmp_read): Rewrite to be able to scan the file in both
	directions.
	(rush_wtmp_update,rush_wtmp_update): Likewise.
	* src/limits.c: Use RUSH_DB_FILE, handle new return type from
	rushdb_open.
	* src/rush.c: Likewise.
	* src/rush.h (RUSH_DB_FILE): Rename to RUSH_DB.

	* src/rushlast.c: Implement new options. Show records in reverse
	chronological
	order by default.
	* src/rushwho.c: Implement new options.

2008-10-11  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement accounting (in forked mode only).

	* paths, acinclude.m4, lib/logwtmp.c,
	lib/utmp_init.c, lib/utmp_logout.c: Delete
	* src/slist.c: Move to lib/slist.c
	* configure.ac: Remove utmp stuff
	* gnulib.modules (readutmp): Remove
	(fprintftime): Add
	* lib/Makefile.am: Add new files.
	* src/.gitignore: Add rushlast, rushwho and .gdbinit
	* src/Makefile.am (bin_PROGRAMS): New var. Add rushlast and
	rushwho.
	(rush_SOURCES): Remove slist.c
	(defines.h): Define LOCALSTATEDIR
	* src/config.c (new_rush_rule): Init acct and mask members.
	(_parse_acct): New function.
	* src/limits.c (check_logins): Use rushdb, instead of the system
	utmp/wtmp.
	* src/rush.c (struct rush_request): new members: umask, home_dir,
	acct.
	(acct_on, acct_off): New functions.
	(fork_process): Run accounting, if requested.
	(run_rule): Save chroot_dir, umask and acct in the struct
	rush_request.
	Always do chroot only once.
	(version): Remove. Implemented in lib/version.c
	(main): Initialize new members in req.
	* src/rush.h: Add new includes.
	(RUSH_DB_FILE): New define.
	(slist_t, slist_append, slist_create)
	(slist_reduce, slist_free): Remove.
	(struct rush_rule): New member `acct'.
	(NO_UMASK): New define.

2008-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Add framework for updating wtmp/utmp

	Implement 'forked mode'

	* gnulib.modules: Add inttostr.
	* src/config.c (new_rush_rule): Initialize p->fork
	(get_bool, _parse_fork): New functions.
	(toktab): New statement "fork".
	(parse_input_buf): If a rule is not tagged set
	its tag to #NUM, where NUM is its number.
	* src/rush.c (struct rush_request): New member: fork.
	(fork_process): New function.
	(run_rule): Call fork_process if fork is true.
	(all functions): Use rule->tag freely, it can't be NULL.
	* src/rush.h: include <inttostr.h>
	(enum rush_three_state): New type.
	(struct rush_rule): Remove const from tag;
	New members: fork, prologue, epilogue.

2008-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fix

2008-09-06  Sergey Poznyakoff  <gray@gnu.org.ua>

	Release 1.2

	* NEWS, configure.ac: Version 1.2
	* doc/rush.texi: Proof-read.

2008-09-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement a test mode.

	* NEWS: Document test mode.
	* doc/rush.texi: Document test mode.
	* src/config.c (_parse_debug): Command line settings override
	the configuration
	file.
	* src/rush.c (debug_option): New global.
	(run_rule): Exit instead of executing the command, if lint_option
	is set.
	(longopts): New option --test, an alias for -t.
	(help): Improve help output.
	(usage): New function.
	(main): Implement full-fledged test mode.

	Implement command line options for testing configuration files.

	* NEWS, configure.ac: version 1.1.90.
	* gnulib.modules: Add getopt.
	* src/Makefile.am (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Remove.
	* src/config.c (init_input_buf): Report ENOENT as error if
	lint_option is set.
	(parse_config): Use rush_config_file.
	(all funcs): Replace calls to syslog with logmsg.
	* src/limits.c: Replace calls to syslog with logmsg.
	* src/rush.h: Likewise.
	* src/rush.c: Include getopt.h
	(rush_config_file, lint_option): New globals.
	(vlogmsg, logmsg): New functions.
	(die): Rewrite using vlogmsg. Do not print error_msg if
	lint_option is set.
	(main): Handle new command line options.

2008-08-30  Sergey Poznyakoff  <gray@gnu.org.ua>

	Finish release 1.1

	* NEWS, configure.ac: version 1.1
	* doc/rush.texi: Updated.
	* src/config.c (_parse_command, _parse_match): Use global
	regex flags.
	(_parse_re_flags): New function.
	(toktab): New statement `regexp'.

2008-08-29  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes.

	* doc/rush.texi: Spell check.

	Fix typos

	Update docs and examples

	Update docs and examples

	Update docs

2008-08-28  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes.

	* doc/rush.texi: Write `git' section.

	Minor fixes.

	* src/rush.c (send_msg): First try to send message to stderr
	and fall back to stdout if this fails.
	* doc/rush.texi: Guidelines for further improvements.

	Introduce exit rules.

	* src/config.c (copy_string): Force terminating newline.
	(_parse_exit): New function.
	(toktab): New keyword "exit".
	* src/rush.c (expand_tilde): Shut GCC warnings.
	(run_rule): Support `exit' rules.
	* src/rush.h (getmaxfd): New define.
	(struct rush_rule): New members error_msg and error_fd.
	(die): Mark with ATTRIBUTE_NORETURN.

	* NEWS: Version number 1.0.90. Document new features.
	* configure.ac: Check for sysconf and getdtablesize.
	Raise version number to 1.0.90.
	* doc/rush.texi: Document new features.
	* etc/rush.rc: Improve.

	Introduce negated conditions.

	* src/config.c (_parse_negation): New function.
	(_parse_command, _parse_match, _parse_argc, _parse_uid,
	_parse_gid)
	(_parse_user, _parse_group): Handle negation operator.
	* src/rush.c (run_tests): Handle negation.
	* src/rush.h (struct test_arg_node): New member `negate'.

	* doc/rush.texi (Conditions): Document condition negation.
	* NEWS: Update

2008-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update docs

	Run command line transformations sequentially.

	* src/config.c (_parse_transform, _parse_transform_ar): Use
	new transform
	node structure.
	* src/rush.c (run_transforms, rebuild_cmdline, reparse_cmdline):
	New functions.
	(run_rule): Run all transformations sequentially, in the order
	of their
	appearance in the configuration file.
	* src/rush.h (struct transform_node, enum transform_node_type):
	New data types.
	(struct rush_rule): Remove trans, arg_head, arg_tail.
	(transform_head, transform_tail): New members.

2008-08-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Release 1.0

	Update docs

	Add doc/.gitignore

	Change bug-reporting email.

	* NEWS:
	* README:
	* README-alpha:
	* configure.ac:
	* doc/rush.texi:

	Improve configuration syntax.

	* src/argcv.c (argcv_string): Remove const specifier from the
	2nd arg.
	* src/argcv.h: Likewise.
	* src/config.c: Improve the syntax. Introduce fall-through
	statement.
	Remove the default_entry, it can be provided using
	RUSH_DEFAULT_CONFIG
	define and an external file.
	* src/limits.c: Renumber debug levels.
	* src/rush.c: Support fall-through rules.
	* src/rush.h (struct command_config): Rename to rush_rule. All
	uses updated.
	(config_list, config_tail): Rename to rule_head, rule_tail,
	correspondingly.

	* etc/rush.rc: Use new syntax.

	* doc/rush.texi: Update.

	Code cleanup.

	* src/config.c: Rewrite using table-driven parser.

	Rewrite look ups in config file in a more logical manner.

	* src/rush.h (struct match_arg): Remove.
	(enum test_type, struct test_numeric_node, struct test_arg_node)
	(struct test_node): New data types.
	(struct command_config): Remove regex, match_head, match_tail,
	argc,
	cmp_op, users, groups, min_uid.
	New members: test_head, test_tail

	* src/config.c (parse_input_buf): Reflect changes to struct
	command_config.
	* src/rush.c (run_tests, test_request_cmdline, test_request_arg)
	(test_request_argc, test_request_uid, test_request_gid,
	test_request_group)
	(test_request_user): New functions.
	(run_tests): New function.
	(match_config): Rewrite using run_tests.

	Minor fix.

	* run_config: Set umask as late as possible.  Provide a reasonable
	default in case it is not set in the config.

2008-08-25  Sergey Poznyakoff  <gray@gnu.org.ua>

	Discern config entries based on user/group name.

	* src/config.c: New keywords: users and groups.
	* src/rush.c (match_config): Take an additional argument (all uses
	updated).  Compare username and groups.
	* src/rush.h: Include grp.h
	(struct command_config): New members: users and groups.

	Bugfixes.

	* Makefile.am: Add distuninstallcheck_listfiles.
	* etc/rush.rc: Update.
	* src/config.c (read_line): Fix keeping track of input line
	number.
	(check_dir): Avoid checks for existency of ~-directories.
	(parse_input_buf): Don't check for home dir presence, if
	chroot was
	requested.
	* src/rush.c (run_config): Remove implicit / home.

	Improve docs

	Provide a documentation framework.

	* doc/Makefile.am: New file.
	* doc/fdl.texi: New file.
	* doc/gendocs_template: New file.
	* doc/rendition.texi: New file.
	* doc/rush.info: New file.
	* doc/rush.texi: New file.

	* Makefile.am (SUBDIRS): Add doc.
	* configure.ac: Add doc.

	Provide a way for modifying program environment.

	* src/config.c (new_command_config): Set default env.
	(parse_input_buf): New keyword env.
	* src/rush.c (run_config): Tailor environment before running
	the command.
	* src/rush.h (struct command_config): New member env.

	Add default configuration file.

	* etc/Makefile.am: New file.
	* etc/rush.rc: New file.
	* Makefile.am (SUBDIRS): Add etc
	* configure.ac: Add etc.

	Update .gitignore's

	Add rules for generating ChangeLog

	Add .gitignore's

	Initial import
Local Variables:
mode: change-log
version-control: never
buffer-read-only: t
End: