forked from logrotate/logrotate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
361 lines (317 loc) · 14 KB
/
CHANGES
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
3.9.1 -> 3.9.2
- Upstream moved to GitHub: <https://github.com/logrotate/logrotate>.
- Add support for %M, %S and %V in "dateext" directive.
- Fix bad filename in subject of email when "compress" and "maillast" is
used.
- Allow rotating files created before 1996.
- Fix compilation errors on NetBSD caused by "array subscript has
type 'char' in config.c"
- Fix matching subdirectories on BSD systems for patterns like
"*/log" in situation where logrotate tried to match "foo/log" even when
"foo" has not been a directory.
- Fix logging dates in debug messages.
- Remove state file entries for logs which do not exist and have not been
rotated for more than a year.
- Fix poor performance with big state file.
- Support logging to syslog by using '-l syslog'.
- Allow running test-suite using dash.
3.9.0 -> 3.9.1
- Fix off-by-one error which can lead to crash when copytruncate is used.
3.8.9 -> 3.9.0
- Fix crash when using long dateformat. [nmerdan]
- Add support for %H dateformat. [czchen]
- Fix regression introduced in 3.8.9 when when rotating multiple
logs when one of them is missing.
- In the debug mode, do not skip the code-path which handles the case when
the last rotation does not exist. [Sergey Vidishev]
- Show more precise description when "log does not need rotating".\
- Add new -l option to log verbose output to file. The file is overwritten
on every logrotate execution.
- Allow rotation of sparse files with copytruncate.
3.8.8 -> 3.8.9
- Add new directive "createolddir" and "nocreateolddir". These directives
can be used to create the directory specified by olddir with particular
"mode", "owner" and "group".
- Continue with rotation even when first log from logset is removed
during the rotation.
- Fix crash on BSD systems introduced in 3.8.8 caused by different qsort_r
function. Function qsort is now used instead.
- Fix potential buffer overflow in usage of strncat function.
- Fix compilation with musl-libc.
- Add experimental 'renamecopy' directive to allow 'olddir' on different
physical device. See the "man logrotate" for more information.
3.8.7 -> 3.8.8
- Add support for building using autotools/automake. Using "./autogen.sh",
"./configure" and "make" is now preferred way how to build logrotate.
Old Makefile remains available, but it is deprecated and will be removed
in the future. Please report any problem related to new build system.
- Add support for systems which do not support fork (use vfork instead)
and madvise.
- Fix bug when wrong log file has been removed in case of dateext and
dateformat %d-%m-%Y.
- Do not expect that the name of root account is 'root'.
- Do not stop rotation with an error when olddir and log file
are on different devices and copy or copytruncate is used.
- Return an error code when parent directory of log does not exist,
"su" directive is not used, logrotate is running as root and missingok
is not specified. [vcizek]
- Prepend error printed by compression program with the log name even when
the compression program exits with zero exit code.
3.8.6 -> 3.8.7
- Fixed --force/-f option handling together with "size" directive
(3.8.5 regression).
- Use "logrotate_tmp_t" context for SELinux tests and if this context does
not exist, skip SELinux related tests.
3.8.5 -> 3.8.6
- Fixed memory corruption caused by rotation directory which does not
exist with "sharedscripts" together with "prerotate" script.
3.8.4 -> 3.8.5
- Improved rotation during daylight saving time and between timezone
changes.
- Fixed ACL setting problem caused by ext3 erroneously reporting ENOSYS
instead of ENOSUP.
- Do not continue with rotation if state file is corrupted.
- Make logrotate.status creation atomic.
- Allow "hourly" rotation. See manpage for more information.
- Use "/bin/echo" in tests. Fixes tests execution in Dash.
- Do no try to parse config files bigger than 16MB.
- Improved manpage consistency and formatting.
- Fix race condition between acl_set_fd() and fchmod().
3.8.3 -> 3.8.4
- Added --version command line option
- Disable ACL tests if logrotate is not compiled WITH_ACL support or if
ACLs are not supported by the system running tests
- Disable SELinux tests if logrotate is not compiled WITH_SELINUX support
or if SELinux is not supported by the system running tests
- Fixed bug which prevented skipping particular log file config
if the config contained errors.
- Fixed skipping of configs containing firstaction/lastaction scripts
with '}' character in case of error before these scripts.
- Support also 'K' unit for *size directives.
- Added preremove option to let admin to do something with the old logs
before they are removed by logrotate.
- Fixed possible loop in tabooext parsing.
- Move code to set SELinux context before compressLogFile calls to create
compressed log files with the proper context.
- Call prerotate/postrotate script only for really rotated files in
nosharedscripts mode (as stated in man page).
3.8.2 -> 3.8.3
- Fixed setting "size" bigger than 4GB on 32bit architectures
- Do not overwrite mode set by "create" option when using ACL. "create"
directive is now not mixed up with ACLs. If you use "create" in config
file and log file has some ACLs set, ACLs are not kept and are
overwritten by the mode set in "create" directive.
- Mode argument in "create" directive can be omitted. Only owner and group
is set in this case. Check man page for more info.
3.8.1 -> 3.8.2
- show error and ignore config if '{' is not present after log files
declaration
- support whitespaces in compressoptions directive
- support for tilde expansion in config files
- 'su' directive does not affect script execution - scripts
are executed as a root if 'su' directive is present
- fixed mail sending for 'mailfirst', 'dateext' and 'delaycompress'
combination
- do not use gzip/gunzip from /usr/local on Solaris
- add O_NOFOLLOW when opening files as safeguard against symlink tricks.
Symlinks rotation is now officially unsupported. It didn't work
as expected in the past anyway.
- do not run external programs with uid != euid
- fixed potential bad-free when ACL is used
- Do not include alloca.h on NetBSD, since alloca() is declared in
stdlib.h there
- 13 new tests added
3.8.0 -> 3.8.1
- fixed 1 memory leak in prerotateSingleLog
- another fixes for Solaris
- fixed HP-UX compilation and default config
- do not redirect logrotate errors to /dev/null in cron script
- fixed "size" directive parsing
- handle situation when acl_get_fd is supported, but acl_set_fd is not
- added "maxsize" directive (see man page)
3.7.9 -> 3.8.0
- added "dateyesterday" option (see man page)
- fixed crash when config file had exactly 4096*N bytes
- added WITH_ACL make option to link against -lacl and preserve ACLs
during rotation
- added "su" option to define user/group for rotation. Logrotate now
skips directories which are world writable or writable by group
which is not "root" unless "su" directive is used.
- fixed CVE-2011-1098: race condition by creation of new files
- fixed possible shell injection when using "shred" directive (CVE-2011-1154)
- fixed escaping of file names within 'write state' action (CVE-2011-1155)
- better 'size' directive description
- fixed possible buffer-overflow when reading config files
- NetBSD/FreeBSD compilation fixes
- Solaris compilation fixes
3.7.8 -> 3.7.9
- fix building on Solaris (patch by András Szilárd)
- don't copy config files on the stack -- mmap them instead
(fixes segfaults with too large/invalid config files)
- symlinked conf file man page as requested by Fedora guidelines
(thanks to Ivana Hutarova Varekova)
- cron script logrotate.cron redirects output to /dev/null
- added rotating (copying) non-writable, readable files
(patch by Henrique Martins)
- fixed missingok problem with globs
(taken from the Debian patches by Ted Percival
- fixed bug when log files could be removed even there was
some error in rotation process.
- allow setting size greater than 4.2GB in configuration file
- pass currently rotated file to postrotate/prerotate script
in nosharedscripts mode
- added new TabooExts: ".disabled", ".dpkg-old", ".dpkg-dist",
".dpkg-new", ".cfsaved", ".ucf-old", ".ucf-dist", ".ucf-new"
(taken from the Debian patches by Paul Martin <[email protected]>)
- Don't change utime atime/mtime when compressing files
(taken from the Debian patches by Paul Martin <[email protected]>)
- Better *rotate scripts parser. (taken from the Debian patches)
- Allow 'include' directive in log file definitions
3.7.7 -> 3.7.8
- do not exit on status file errors
- limit config file inclusion nesting
- use hashes for status file handling (patch by Petr Tesarik
<[email protected]> and Leonardo Chiquitto)
- dateformat to allow unixtime (patch by Sami Kerola
- manual page corrections (taken from the Debian patches by
Paul Martin <[email protected]>)
3.7.6 -> 3.7.7
- dateformat
- fix possible buffer overflows in strings handling
- various minor bugfixes
- change logInfo handling (patches by Leonardo Chiquitto)
3.7.5 -> 3.7.6
- patches from Leonardo Chiquitto that fix compile warnings
- examples/logrotate-default: add btmp rotation, dateext
- update man page
- tabooext honor wildcards
- fix selinux support with dateext
3.7.1 -> 3.7.5
- import Fedora patches
- add option to use shred for deleting files, patch by
Peter Eckersley <[email protected]>
- ignore .cfsaved files
- bugfixes
3.7 -> 3.7.1:
- Fix sending mails and running scripts after the
system() -> execve() changes
- Preserve file attributes when compressing files (original patch
by Daniel Himler)
3.6.8 -> 3.7:
- always use compressext for the extension for compressed
files; before compresscmd and compressext had to agree
- moved all compression to one code block
- compression, scripts don't use system() anymore
- compress and maillast didn't work together properly
- delaycompress and mailfirst didn't work properly
- don't use system() for mailing (or uncompressing) logs anymore
- use "-s" for speciying the subjected of mailed logs
3.5.4 -> 3.6:
- See .spec file for changes
3.5.3 -> 3.5.4:
- %defattr(-,root,root) in specfile
3.5.2 -> 3.5.3:
- patch /tmp file race condition problem, use mkstemp;
Thanks go to Solar Designer <[email protected]>
3.5 -> 3.5.2:
- added .swp and .rpmnew to default taboo list
3.5 -> 3.5.1:
- handle state dates in the future a bit more sanely
3.4 -> 3.5:
- multiple file names/patterns may be given for a single entry
- fixed mistake in when logs were uncompressed before mailing
3.3.2 -> 3.4:
- added sharedscripts/nosharedscripts
- added simple testbed
- quote filenames in state file to allow proper rotation of files
with spaces in the name -- this changes the version number of
the state file!
- ignore white space at end of line
3.3.1 -> 3.3.2:
- don't rotate lastlog
3.3 -> 3.3.1:
- support gzipped man pages
3.2 -> 3.3:
- added "mailfirst" and "maillast" flags (based on Tim Wall's patch)
- documented "extension" flag
- "rotate 0" gives proper script and mail behavior
3.1 -> 3.2:
- create wtmp with correct perms
3.0 -> 3.1:
- fixed small alloca()
- added missingok flag
- use popt to display usage message
- handle /some/file { } in config file
2.9 -> 3.0
- updates for glibc 2.1
2.8 -> 2.9:
- fixed a bug parsing lines where { immediately follows the filename
- allow log file patterns to be placed in double quotes, which
allows spaces in names
- complain about missing log files (John Van Essen)
2.7 -> 2.8:
- changes for glibc 2.1 (Cristian Gafton)
2.6 -> 2.7:
- updated man page to include --force (Simon Mudd)
- invoke scripts via /bin/sh rather then relying on /tmp execute
semantics (Philip Guenther)
- added "extension" option for forcing a file extension after rotation
(Rob Hagopian)
2.5 -> 2.6:
- added nodelaycompress flag (from Jos Vos)
- added copytruncate, nocopytruncate flag (from Jos Vos)
- removed umask handling; explicitly use fchmod() insteadmoved umask
- added --force option (Simon Mudd)
- moved /bin/mail to MAIL_COMMAND define (Simon Mudd)
- fixed segv caused by overly long filenames
- switched from getopt_long to popt
2.4 -> 2.5:
- set the umask of the process to 0, letting open() create processes
with the proper permissions
- added delaycompress flag (from Jos Vos)
- fixed how old logs are finally removed when an olddir is specified
(Jos Vos)
- added nomail option
- added mail, nomail documentation to man page
- added the tabooext directive
- fixed problem in globbing
2.3 -> 2.4:
- glob log names in config file
- added ,v to taboo list
- fixed bug w/ create parsing
- use an int rather then a mode_t when parsing create entries as
sscanf requires it
2.2 -> 2.3:
- fill in all of last rotated structure (this probable isn't
really necessary but it's a bit cleaner and will avoid future
problems);
- fixed .spec file
2.1 -> 2.2:
- If a file is rotated and we have no state information for it,
right out the current time.
- Weekly rotation happens when the current weekday is less then
the weekday of the last rotation or more then a week has
elapsed between the last rotation and now
- Monthly rotation happens when the current month is different
from the last month or the current year is different from the
last year
- (these were contributed and suggested by Ronald Wahl)
- added olddir/noolddir options
- added ifempty/notifempty options
- ignore nonnormal files when reading config files from a directory
- (these were suggested and originally implemented by
Henning Schmiedehausen)
- updated the man page to reflect these changes
- made "make install" accept PREFIX argument
- added .spec file to tarball
2.0.2 -> 2.1:
- Don't output state information for logs that have never been
rotated (better then 1900-1-0)
- Accept 1900-1-0 as time 0
2.0.1 -> 2.0.2:
- I have no idea :-(
2.0 -> 2.0.1:
- ignore files in included directories which end with ~, .rpmorig, or
.rpmsave