Git init
[framework/base/acl.git] / doc / CHANGES
1 acl 2.2.49 (19 November 2009)
2 ==========
3 * Add missing files to tarball: tests/sort-getfacl-output and examples/copyperm.c
4 * Update docs/CHANGES for 2.2.48 release
5
6 acl 2.2.48 (31 July 2009)
7 ==========
8 * Make sure that getfacl -R only calls stat(2) on symlinks when it needs to.
9   This fixes http://oss.sgi.com/bugzilla/show_bug.cgi?id=790 "getfacl follows
10   symlinks, even without -L".
11 * Stop quoting nonprintable characters in the getfacl output: what is printable
12   or not depends on the locale settings, and getfacl often gets it wrong. We
13   still need to quote a few special characters like newlines so that setfacl
14   can always parse getfacl's output.
15 * Fix in acl_equiv_mode(): Return the mode that the acl corresponds to even
16   when the acl has more than three entries (i.e., it is not equivalent to
17   this mode).
18 * When restoring acls and the file ownership from the output of getfacl
19   with setfacl --restore, make sure to only chown(2) files when the
20   owner or owning group does not match the current owner or owning group:
21   otherwise, if the caller does not have the appropriate privilege,
22   chown(2) will implicitly clear the suid and sgid flags.
23 * Fix attr/acl code for handling of recursive walking without following symlinks
24   Patch contributed by Brandon Philips <brandon@ifup.org>.
25   http://oss.sgi.com/archives/xfs/2008-07/msg00162.html
26 * Fix NULL pointer access / segmentation fault in setfacl.
27   When invoked as ``setfacl -- ...'', setfacl segfaults. Reported
28   by Peng Haitao; fix based on patches by Peng Haitao and Jiri
29   Moskovcak.  Final fix from Andreas Gruenbacher <agruen@suse.de>.
30   Red Hat Bugzilla Bug 430458.
31 * Avoid unnecessary but destructive chown calls when restoring acls with
32   setfacl --restore
33 * Update to new homepage URL: http://savannah.nongnu.org/projects/acl
34 * Stop quoting nonprintable characters in the getfacl output
35 * Make sure that getfacl -R only calls stat(2) on symlinks when it needs to
36   http://oss.sgi.com/bugzilla/show_bug.cgi?id=790
37 * Include the S_ISUID, S_ISGID, S_ISVTX flags in the getfacl output, and
38   restore them with "setfacl --restore=file"
39 * test/run: fix lt- prefix from libtool wrappers
40
41 acl 2.2.47
42 ==========
43 * From Andreas Gruenbacher:
44     * fix issues for tree walking with file descriptors
45         - fd duplicates and running out
46
47 acl 2.2.46 (21 November 2007)
48 ==========
49 * From Andreas Gruenbacher:
50     * Update acl.5 man page to clarify the relationship between
51       the file permissions and the *OBJ ACL entries.
52     * In some cases, gcc does not link in functions from libmisc.a
53       unless libmisc is specified before the dynamic libraries on
54       the command line.
55     * Rip out nftw tree walking, it is broken and hopeless to fix.
56       The replacement walk_tree() function does exactly what we
57       want, and is much simpler to use.
58
59 acl 2.2.45 (11 September 2007)
60 ==========
61 * Fix symlink handling with getfacl and setfacl, thanks to Utako Usaka.
62
63 acl 2.2.44 (27 March 2007)
64 ==========
65 * Add Spanish and Galician translation
66   (thanks to Antonio Trueba)
67
68 acl 2.2.43 (23 January 2007)
69 ==========
70 * Fix a build issue with cross-compiling, thanks to Diego Petten�
71
72 acl 2.2.42 (08 December 2006)
73 ==========
74 * Fix a build issue on GNU/kFreeBSD, thanks to Petr Salinger.
75
76 acl 2.2.41 (14 July 2006)
77 ==========
78 * Fix issues with makedepend on libtool libraries.
79 * Fix issues with install using named ids instead of numeric ones.
80
81 acl 2.2.40 (03 July 2006)
82 ==========
83 * Update translation Makefile to work better with the Ubuntu
84   translation system.  Thanks to feedback from Martin Pitt.
85 * Fix annoying "ignores datarootdir" warning from configure.
86 * Fix issues with makedepend build infrastructure.
87
88 acl 2.2.39 (06 June 2006)
89 ==========
90 * Fix a segfault in getfacl/setfacl when handling non-existent
91   files, related to previos nftw-related workarounds.  Thanks
92   to Daniel Kahn Gillmor for the fix.
93
94 acl 2.2.38 (23 May 2006)
95 ==========
96 * Add Swedish translation from the debian localisation folks
97   (thanks to Daniel Nylander)
98
99 acl 2.2.37 (02 May 2006)
100 ==========
101 * Fix handling of symbolic links in setfacl/getfacl, and resulting
102   nftw-related oddities.
103
104 acl 2.2.36 (28 March 2006)
105 ==========
106 * Debian packaging updates (libc-dev dependency fixed)
107 * Enable -O2 optimised builds by default
108
109 acl 2.2.35 (15 February 2006)
110 ==========
111 * Debian packaging updates (debmake out, debhelper in)
112 * Fix GNU/Hurd builds (no PATH_MAX macro)
113
114 acl 2.2.34 (05 December 2005)
115 ==========
116 * Debian packaging updates
117
118 acl 2.2.33 (10 November 2005)
119 ==========
120 * Sync up build system (m4 macros, etc) with other projects
121 * Update SGI copyright/licence notices
122
123 acl 2.2.32 (29 September 2005)
124 ==========
125 * Add French translation from the debian-l10n-french folks
126   (thanks to Sylvain Archenault)
127
128 acl 2.2.31 (11 March 2005)
129 ==========
130 * Fix setfacl builds when compiling without gettext support
131   (thanks to vapier@gentoo.org).
132
133 acl 2.2.30 (21 February 2005)
134 ==========
135 * Allocate the line buffer dynamically when reading from a file.
136 * This mainly fixes restoring of large ACLs.
137
138 acl 2.2.29 (31 January 2005)
139 ==========
140 * Replace use of _POSIX_PATH_MAX with the larger PATH_MAX
141   (thanks to Andree Leidenfrost).
142
143 acl 2.2.28 (30 November 2004)
144 ==========
145 * Licensing fixes and clarifications.
146 * Update outdated email addresses.
147
148 acl 2.2.27 (29 September 2004)
149 ==========
150 * Update m4 macros, incorporating some portability changes.
151
152 acl 2.2.26 (8 September 2004)
153 ==========
154 * Fix email address in manual pages.
155
156 acl 2.2.25 (25 August 2004)
157 ==========
158 * Fix processing of the X pseudo permission in setfacl: Must not
159   modify the sequence of commands directly or else only the first
160   file is processed correctly, and X is not evaluated for any other
161   file. Add test case for X pseudo permission.
162 * Remove support for relative permission changes; this non-standard
163   feature was disabled since a while already.
164
165 acl 2.2.24 (17 May 2004)
166 ==========
167 * Update example source code.
168
169 acl 2.2.23 (02 February 2004)
170 ==========
171 * Included Polish message translations by Jakub Bogusz.
172
173 acl 2.2.22 (06 January 2004)
174 ==========
175 * Fix a permission bug in directory tree walking code.
176
177 acl 2.2.21 (10 November 2003)
178 ==========
179 * Update Debian packaging conflict with Kerberos development package.
180
181 acl 2.2.20 (13 October 2003)
182 ==========
183 * Fix build on the GNU/Hurd platform for some Debian folks.
184
185 acl 2.2.19 (07 October 2003)
186 ==========
187 * Man page tweaks
188
189 acl 2.2.18 (30 September 2003)
190 ==========
191 * Fix a documentation error in setfacl manual page, was refering to a
192   non-existent getfacl option in the example section.
193
194 acl 2.2.17 (29 August 2003)
195 ==========
196 * Fix a bug in nftw worker routines' error handling code.
197
198 acl 2.2.16 (27 August 2003)
199 ==========
200 * Fix issues in the libmisc quote routine (from Ben Escoto).
201
202 acl 2.2.15 (08 August 2003)
203 ==========
204 acl * Somehow the SEGV fix from 2.2.14 got lost, reinstate it.
205 ==========
206
207 acl 2.2.14 (04 August 2003)
208 ==========
209 * Fix chacl argument count checking in one or two places.
210 * Fix libmisc quote/unquote routines so they handle NULL as input,
211   was causing some SEGV's inside libacl routines.
212
213 acl 2.2.13 (29 July 2003)
214 ==========
215 * Add internal library for misc. functions: quote, unquote, high_water_alloc.
216 * Quote special characters in path names and user names.
217 * Fix examples/get-acl.c: Retrieving the default ACL of a plain file used
218   to result in an empty ACL, but fails now.
219 * Update the test scripts.
220
221 acl 2.2.12 (03 July 2003)
222 ==========
223 * Tweak the build so we don't always run msgmerge, fix from
224   Steve Langasek originally.
225
226 acl 2.2.11 (04 June 2003)
227 ==========
228 * More Debian-specific packaging changes.
229
230 acl 2.2.10 (26 May 2003)
231 ==========
232 * Some Debian-specific packaging changes.
233
234 acl 2.2.9 (26 April 2003)
235 ==========
236 * Rework configure.in to make use of shared macros.
237
238 acl 2.2.8 (14 April 2003)
239 ==========
240 * Fix configure tests that used AC_PATH_PROG incorrectly.
241 * Minor cosmetic cleanups to configure.in.
242 * Some dependency fixes to the Debian packaging.
243
244 acl 2.2.7 (27 March 2003)
245 ==========
246 * Cleanups to the build process, in particular the automatic rpm
247   package generation Makefile and spec file template.
248 * Makepkgs script can now propagate failures back up from make.
249 * Change default --prefix to /usr.
250
251 acl 2.2.6 (26 February 2003)
252 ==========
253 * Add symbol level versioning to libacl. This improves link time
254   consistency checks. The library versions are also honored by RPM, so
255   an RPM package built against say, libacl.so.1(ACL_1.1) won't link
256   against libacl.so.1(ACL_1.0), which was not checked before.
257 * Added routines to libattr for copying extended attributes -
258   perm_copy_file and perm_copy_fd.
259 * Increment the libacl version number, so that the presence of
260   those functions can be checked.
261
262 acl 2.2.5 (20 February 2003)
263 ==========
264 * Merge symbol visibility patch from Andreas for hiding symbols
265   in libacl which we don't want exported, provided the compiler
266   supports that (added a new configure check too).
267
268 acl 2.2.4 (10 February 2003)
269 ==========
270 * Merge several patches from Andreas - note that the library minor
271 acl   version number has been incremented (libacl.so.1.0.3 -> 1.0.4)
272 ==========
273 * A minor acl.5 update.
274 * Fix memory leak in libacl (reported by
275   Leo Qiu <leoxqiu@yahoo.com> -- thanks!).
276 * Preallocation of ACL entries in acl_init() to avoid calling
277   malloc() repeatedly.
278 * Moved ACL entry reordering outside of loops to avoid O(n^2)
279   behavior (where n = #entries).
280 * Fixed bug in acl_get_file() when the guessed number of entries
281   in a default ACL turned out to be too low (access ACL was used
282   instead).
283 * Correct a signedness issue in getfacl's handling of uid/gid.
284
285 acl 2.2.3 (06 February 2003)
286 ==========
287 * Fix order of library declarations in tools to allow linking when
288   only a static libattr library is available (mario@klebsch.de).
289
290 acl 2.2.2 (15 January 2003)
291 ==========
292 * Add 'X' permission specification for setfacl(1) following
293   the same usage as chmod(1).
294
295 acl 2.2.1 (16 December 2002)
296 ==========
297 * Clarify man page with respect to fileutils support.
298 * Minor Debian build update to remove a shell script "bash-ism".
299
300 acl 2.2.0 (29 November 2002)
301 ==========
302 * Complete the localisation/internationalisation support, including
303   the initial German translation by Andreas.
304
305 acl 2.1.1 (31 October 2002)
306 ==========
307 * Minor updates to the Debian packaging.
308
309 acl 2.1.0 (19 October 2002)
310 ==========
311 * Remove the -s and -S short options from setfacl, since it confuses
312   many users (--set and -set-file still exist).
313 * Update the setfacl(1) manual page.
314 * Improve the wording of some error messages, and update the pot/po
315   files. Also update the setfacl.test script.
316 * Change the devel .rpm and .deb package names so that they now use
317   a "lib" prefix.
318 * Several packaging changes related to this to ensure upgrades work
319   and depenency information isn't lost.
320
321 acl 2.0.19 (04 September 2002)
322 ==========
323 * Correct the description of the access check algorithm in acl(5).
324 * Add --numeric option to getfacl (so all uid's/gid's are displayed
325   numerically rather than by symbolic name). Also enlarge the static
326   buffer used for numeric identifiers from 12 to 22 characters, which
327   is enough for 64 bit id's.
328 * Add a test case for setting just a base ACL.
329 * Make the test/run script return a proper status code.
330 * Check for ENOATTR and for ENODATA error numbers in places where
331   ENOATTR is expected, so if ENOATTR is assigned a separate number
332   we'll only need to rebuild.
333
334 acl 2.0.18 (21 August 2002)
335 ==========
336 * Setfacl failed to parse ACLs with whitespace around user/group
337   names or ids (e.g., 'u: bin :rw', 'u: 0 :rwx').
338
339 acl 2.0.17 (12 August 2002)
340 ==========
341 * Setfacl tried to retrieve the default ACL of regular files, which
342 acl   resulted in errno = EACCES since 2.0.13, and broke setfacl's
343 ==========
344   --restore operation.
345
346 acl 2.0.16 (08 August 2002)
347 ==========
348 * Fix an IA64 alignment issue affecting several libacl functions.
349 acl * Updated libacl version number from libacl.so.1.0.2 to libacl.so.1.0.3
350 ==========
351
352 acl 2.0.15 (08 July 2002)
353 ==========
354 * Fix configure warning (autoconf 2.13) - namely:
355         "AC_TRY_RUN called without default to allow cross compiling"
356 * Fix a couple of typos in the documentation
357 * Fix a Debian-specific build issue
358
359 acl 2.0.14 (04 July 2002)
360 ==========
361 * Build infrastructure updates so that configure options can be used
362   to specify paths rather than semi-hard-coded path names controlled
363   by ROOT/ROOT_PREFIX env variables; eg. now allows /lib64 and /lib32.
364
365 acl 2.0.13 (25 June 2002)
366 ==========
367 * Make acl_get_file() fail for regular files and type ACL_TYPE_DEFAULT,
368   as required by 1003.1e draft 17. Update manual page accordingly.
369 * Make acl_set_file() fail for regular files and type ACL_TYPE_DEFAULT,
370   as required by 1003.1e draft 17. Update manual page accordingly.
371 acl * Updated libacl version number from libacl.so.1.0.1 to libacl.so.1.0.2.
372 ==========
373 * Updated chacl(1) command to behave correctly with this libacl change.
374
375 acl 2.0.12 (25 June 2002)
376 ==========
377 * Increment the libacl version so that its possible for other packages
378   like Samba to easily tell which library version has the libacl build
379   bug fixed (without having to play configure games, etc).
380 acl * In other words, libacl.so.1.0.0 is now libacl.so.1.0.1; nothing else
381 ==========
382   has changed in this release.
383
384 acl 2.0.11 (30 April 2002)
385 ==========
386 * Fix a bug when reallocating space in __acl_to_any_text.c
387   (the bug causes ACL entries to get skipped!)
388 * Minor clean-up in the test/setfacl.test script
389
390 acl 2.0.10 (22 April 2002)
391 ==========
392 * Add accidentally removed dependency of libacl on libattr.
393
394 acl 2.0.9 (16 April 2002)
395 ==========
396 * Fix a struct alignment issue in libacl on 64 bit platforms.
397
398 acl 2.0.8 (13 April 2002)
399 ==========
400 acl * Fix a minor issue in build macro handling introduced in 2.0.7.
401 ==========
402
403 acl 2.0.7 (10 April 2002)
404 ==========
405 * Fix a bug in the --tabular format of getfacl where user/group names
406   without a symbolic name did not get printed
407 * Remove setfacl/user_group.[ch] as these are no longer used
408 * Added configure check for libattr -- uses libtool archive if found
409
410 acl 2.0.6 (08 April 2002)
411 ==========
412 * Fix a bug that causes setfacl not to report error messages if
413 acl   acl_set_file() fails (the bug was introduced in version 2.0.3).
414 ==========
415
416 acl 2.0.5 (26 March 2002)
417 ==========
418 * Fix up acl_to_text compliance with POSIX draft.
419 * Add the new acl(5) manual page.
420 * Add a manual section 3 directory and Makefile.
421 * Add the libacl manual pages.
422 * Rename the existing acl_to_any_text function to __acl_to_any_text, and
423   add a new acl_to_any_text function that only contains parameters that
424   are actually useful.  Make acl_to_text and acl_to_any_text invoke
425   __acl_to_any_text internally.  Update all uses of acl_to_any_text in
426   getfacl/getfacl.c, setfacl/do_set.c, and chacl/chacl.c.
427 * Move the acl_size function form the LIBACL_CFILES to the POSIX_CFILES
428   section (it is a POSIX function)
429 * Rearrange libacl routines so that several non-POSIX routines which
430   were being exported are no longer exported (eg. acl_entry_to_any_str,
431   acl_get_file_mode, acl_get_fd_mode, acl_set_file_mode, acl_set_fd_mode).
432
433 acl 2.0.4 (12 March 2002)
434 ==========
435 * Man page updates from Andreas
436 * Test script updates from Andreas
437
438 acl 2.0.3 (05 March 2002)
439 ==========
440 * Clean up the --default option handling in setfacl. The old
441   workarounds caused a bug for unusual input.
442 * Changes to the --test output format setfacl generates: ACLs that
443   are not changed are now displayed as `*'.
444 * Fix a bug in setfacl/sequence.c:seq_delete_cmd().
445 * Minor changes to test scripts
446
447 acl 2.0.2 (01 March 2002)
448 ==========
449 * Apply several patches from Andreas, namely:
450 * man page fixes
451 * libacl code reformatting
452 * acl_from_text errno handling
453
454 acl 2.0.1 (27 February 2002)
455 ==========
456 * Apply Andreas Gruenbacher's diffs.
457 * Fix up chacl for deletion of access ACL to be in line with Andreas.
458 * Incorporate the Debian packaging again.
459
460 acl 2.0.0 (21 February 2002)
461 ==========
462 * Reworked to use the new official system call API.
463 * Sync up with the XFS project, the SGI folk now use this source.
464 * Jumped to version 2 to allow XFS users to upgrade
465   (Rationale: the XFS ACL user tools were at version 1.1.X, and
466   packaging tools like rpm, dpkg, etc. must be presented with a
467   greater version number to allow an upgrade to proceed).
468 * Added the chacl command to ease migration for existing XFS users,
469   and for compatibility with IRIX.
470 * Added a flag to allow acl_print to produce a single-line ACL, in
471   addition to the multi-line format.
472 * Extended attribute documentation has moved into the extended
473   attribute package from SGI ("attr"), this ACL package now deals
474   exclusively with ACLs.
475 * acl_from_text sometimes did not set errno when failing.
476 * Moved files and simplified #includes in libacl
477
478 acl 0.7.22
479 ==========
480 * Create a shared version of libacl, instead of linking statically.
481 * Added missing error reporting to getfacl do_print() function.
482
483 acl 0.7.16
484 ==========
485 * Minor cleanups/fixes in the make files
486 * The test cases in test/src have been updated to match the
487 acl   corrected ACL entry syntax (see the 0.7.15 changes).
488 ==========
489
490 acl 0.7.15
491 ==========
492 * acl_from_text() now accepts mask and other entries with either two
493   or three fields (`other:rwx' or `other::rwx'). Posix 1003.1e specifies
494   that these entries should have three entries, while under Solaris,
495   they have only two fields.
496 * setfacl now parses mask and other entries with two or three entries.
497 * getfacl now produces mask and other entries with three fields
498   (`mask::rwx' instead of the previous `mask:rwx').
499 * acl_get_fd(), acl_get_file(), acl_set_fd(), acl_set_file() now only
500   fail with errno=ENOSYS if the underlying filesystem doesn't support
501   ACLs. acl_get_fd() and acl_get_file() construct ACLs from the file
502   mode permission bits if the kernel supports ACLs, but no ACL extended
503   attributes are defined for the file (errno=ENOATTR).
504 * acl_to_text() wrongly separated ACL entires with ',' instead of '\n'.
505 * acl_from_text() only accepted three-letter permission strings
506   (rwx, ---, rw-, etc.). Now also short strings (rw, -, etc.) are
507   supported.
508
509 acl 0.7.10
510 ==========
511 * acl_get_fd(), acl_get_file() now don't return basic ACL's anymore.
512 * acl_set_fd(), acl_set_file() fail on filesystems that don't support
513   ACLs, even if the ACL to be set is a basice ACL.
514 * If msgfmt is not present on a system, the message catalog(s) are
515   no longer being built.
516
517 acl 0.7.8 (19 February 2001)
518 ==========
519 * Buffer overflow bug in ACL library (acl_to_any_text).
520   (Reported by Charles Bertsch <CBertsch@microtest.com>)
521
522 acl 0.7.2 (22 November 2000)
523 ==========
524 * Replace rman with groff for building HTML versions of the
525   manual pages.
526 * Add descriptions of the permissions required for manipulating
527   ACLs to the manual pages.
528 * Add long options to getfacl and setfacl, update the manual pages.
529 * Remove some small bugs from the src/showacl Perl script.
530 * showacl is now integrated in getfacl.
531 * Bug in acl_to_any_text() for ACLs with 0 entries fixed.
532 * Bug in acl_to_text(): Used '\n' as the ACL entry separator.
533 * German messages updated.
534
535 acl 0.7.1 (23 October 2000)
536 ==========
537 * Basic GNU gettext support and a German translation of messages
538   added.
539
540 acl 0.7.0 (22 October 2000)
541 ==========
542 * Updates to the documentation
543 * Now an ACL_MASK entry is cloned from the ACL_GROUP_OBJ entry
544   when needed also when the ACL_MASK entry is not re-calculated
545   (-n option), so setfacl doesn't complain about an invalid ACL.
546
547 acl 0.6.8 (11 October 2000)
548 ==========
549 * src/walk_tree.c was stat()ing the targets of symbolic links in
550   WALK_PHYSICAL mode.
551 * Removed spurious definitions from src/gettext.h that caused
552   problems with several versions of GNU gettext headers
553 * setfacl calls acl_delete_def_file() if removing the default ACL
554   of a directory that doesn't have a default ACL. i(If the user lacks
555   appropriate permissions, that no-operation fails.) Fixed.
556 * Tiny bug in src/showacl script (mask entry not applied to owning
557   group entry)
558
559 acl 0.6.5 (10 September 2000)
560 ==========
561 * Command line options revised for POSIX compatibility (now defaults to
562   -H half-logical walk, added -L logical walk, -P physical walk).
563 * Funny post-order option no longer documented.
564
565 acl 0.6.0 (24 March 2000)
566 ==========
567 * Permissions were not set to the union of the ACL_GROUP_OBJ and
568   ACL_MASK_OBJ entries for `setfacl -b'.
569 * getfacl didn't display the default ACL for links do directories.
570
571 acl 0.5.6 (31 Jan 2000)
572 ==========
573 * Cleaned up the ACL entry ring handling in the library
574 * Fixed a few minor issues with setfacl
575 * Fixed a bug in acl_equiv_mode
576 * Added acl_{get,set}_{file,fd}_mode functions
577
578 acl 0.5.5 (19 October 1999)
579 ==========
580 * Updates to the documentation
581 * Some other things (?)
582
583 acl 0.5.4 (up to 14 October 1999)
584 ==========
585 * Fixed an incompatibility with more recent GNU getopt
586 * Fixed a problem with errno handling in lib/text.c
587 * Some cosmetic changes to streamline the distribution process
588 * setfacl now implies `user:' if neither of `user', `group:',
589   `other:' and `mask:' is given. Was a major annoyance (to me).
590 * errno not set when acl_read was presented with an empty file.
591 * some missing '\n' chars in setfacl
592
593 acl 0.5.3
594 ==========
595 * Fixed a bug in setfacl.c that caused the default mask to
596   be recalculated wrong.
597 * Fixed a bug in acl_kernel.c:acl_check_one() that caused
598   invalid ACLs to be accepted
599
600 acl 0.5.2 (25 September 1999)
601 ==========
602 * Added doc/Implementation.txt (some internals and ideas)
603 * Fixed a bug in lib/manip.c that caused setfacl to reject
604   some valid ACLs
605 * Fixed a bug that caused setfacl to produce duplicate ACL
606   entries
607 * Fixed a bug/feature that caused `sefacl -s' to include the
608   current base ACL entries in results. This is not done with
609   `setfacl -bm'.