6.25. Acl-2.2.52

The Acl package contains utilities to administer Access Control Lists, which are used to define more fine-grained discretionary access rights for files and directories.

Approximate build time: 0.1 SBU
Required disk space: 7.7 MB

6.25.1. Installation of Acl

Modify the documentation directory so that it is a versioned directory:

sed -i -e 's|/@pkg_name@|&-@pkg_version@|' include/builddefs.in

Fix some broken tests:

sed -i "s:| sed.*::g" test/{sbits-restore,cp,misc}.test

Additionally, fix a bug that causes getfacl -e to segfault on overly long group name:

sed -i -e "/TABS-1;/a if (x > (TABS-1)) x = (TABS-1);" \
    libacl/__acl_to_any_text.c

6.25.2. 32-bit Installation

Prepare Acl for 32-bit compilation:

./configure --prefix=/usr   \
            --bindir=/bin    \
            --libexecdir=/usr/lib32 \
            --libdir=/usr/lib32     \
            --disable-static \
            CC="gcc -m32"

Compile the package:

make

The Acl tests need to be run on a filesystem that supports access controls after Coreutils has been built with the Acl libraries. If desired, return to this package and run make -j1 tests after Coreutils has been built later in this chapter.

Install the package:

make install install-dev install-lib
chmod -v 755 /usr/lib32/libacl.so

The shared library needs to be moved to /lib32, and as a result the .so file in /usr/lib32 will need to be recreated:

mv -v /usr/lib32/libacl.so.* /lib32
ln -sfv ../../lib32/$(readlink /usr/lib32/libacl.so) /usr/lib32/libacl.so

Clean up the build directory before moving on to the next platform:

make clean

6.25.3. x32 ABI Installation

Prepare Acl for x32 ABI compilation:

./configure --prefix=/usr    \
            --bindir=/bin    \
            --libexecdir=/usr/libx32 \
            --libdir=/usr/libx32     \
            --disable-static \
            CC="gcc -mx32"

Compile the package:

make

The Acl tests need to be run on a filesystem that supports access controls after Coreutils has been built with the Acl libraries. If desired, return to this package and run make -j1 tests after Coreutils has been built later in this chapter.

Install the package:

make install install-dev install-lib
chmod -v 755 /usr/libx32/libacl.so

The shared library needs to be moved to /libx32, and as a result the .so file in /usr/libx32 will need to be recreated:

mv -v /usr/libx32/libacl.so.* /libx32
ln -sfv ../../libx32/$(readlink /usr/libx32/libacl.so) /usr/libx32/libacl.so

Clean up the build directory before moving on to the next platform:

make clean

6.25.4. 64-bit Installation

Prepare Acl for 64-bit compilation:

./configure --prefix=/usr    \
            --bindir=/bin    \
            --disable-static \
            --libexecdir=/usr/lib

Compile the package:

make

The Acl tests need to be run on a filesystem that supports access controls after Coreutils has been built with the Acl libraries. If desired, return to this package and run make -j1 tests after Coreutils has been built later in this chapter.

Install the package:

make install install-dev install-lib
chmod -v 755 /usr/lib/libacl.so

The shared library needs to be moved to /lib, and as a result the .so file in /usr/lib will need to be recreated:

mv -v /usr/lib/libacl.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so

6.25.5. Contents of Acl

Installed programs: chacl, getfacl, and setacl
Installed library: libacl.{a,so}
Installed directories: /usr/include/acl and /usr/share/doc/acl-2.2.52

Short Descriptions

chacl

Changes the access control list of a file or directory

getfacl

Gets file access control lists

setacl

Sets file access control lists

libacl

Contains the library functions for manipulating Access Control Lists