C

Sun RPC Interfaces Moved From glibc To libtirpc

Fedora 28 now uses libtirpc to implement the Sun RPC protocol.

The glibc imlementation of Sun RPC was not compatible with IPv6 and adding IPv6 support would have required a change to the glibc ABI. As a result, the Sun RPC implementation was moved to a separate library, libtirpc, which has been packaged in Fedora since Fedora 7. Sun RPC support in glibc has been deprecated for a long time and this change aligns Fedora with the upstream projects.

Libcrypt replaced by libxcrypt in glibc

In reaction to plans to remove the libcrypt library from glibc, this update replaces libcrypt in Fedora’s version of glibc with the libxcrypt library. The use of the libxcrypt library allows easier integration of new hashing algorithms, promises the benefits of a faster development cycle than libcrypt, and provides support for all hashing algorithms ever introduced to the crypt() function.

Compatibility

The libxcrypt library is backwards binary compatible with libcrypt.so.1 shipped as a part of the GNU C Library. Therefore, all binaries built against libcrypt should work without modifications with libcrypt.so.1 provided by libxcrypt. It is, however, not possible to recompile programs that use the following legacy APIs supplied by libcrypt against libxcrypt: encrypt, encrypt_r, setkey, setkey_r, and fcrypt.

There is, also, no reverse compatibility. Therefore, binaries linked against libcrypt.so.1 provided by libxcrypt will not work with glibc's default libcrypt.

To list all packages built against libcrypt, run the following command:

sudo dnf repoquery --whatrequires 'libcrypt.so*' | sed -e 's!-[0-9]\+.*$!!g' | sort -u

The GNU C Library version 2.27

Fedora 28 provides the GNU C Library (glibc) version 2.27.

See the release announcement for full information about changes brought by this version, and the glibc wiki entry about this release which contains a section on packaging changes. Also note the separate change related to glibc described in Sun RPC Interfaces Moved From glibc To libtirpc.