Done

In progress

To be done

Remove libpcre.so.0 from pcre at the end

Detailed Description

Each PCRE release brings new fixes and features (like updated Unicode tables). Thus it's necessary to keep synchronization with upstream releases. Version 8.30 changes API. Because PCRE is in critical path and in minimal build root, it's necessary to do the upgrade carefully. So feature page to track the progress is necessary. Also 8.30 brings support for UTF-16 encoding, which is helpful for applications using this encoding internally. It will avoid expensive recoding between UTF-16 and UTF-8. Qt upstream has already expressed intention to move from its own regular expression implementation to PCRE.

Benefit to Fedora

Scope

8.30 version changes API as described by upstream:

The pcre_info() function, which has been obsolete for over 10 years, has been removed.

When a compiled pattern was saved to a file and later reloaded on a host with different endianness, PCRE used automatically to swap the bytes in some of the data fields. With the advent of the 16-bit library, where more of this swapping is needed, it is no longer done automatically. Instead, the bad endianness is detected and a specific error is given. The user can then all a new function called pcre_pattern_to_host_byte_order() (or an equivalent 16-bit function) to do the swap.

In UTF-8 mode, the values 0xd800 to 0xdfff are not legal Unicode code points and are now faulted. (They are the so-called surrogates" that are reserved for coding high values in UTF-16.)

This is reflected in changed libpcre SONAME from libpcre.so.0 to libpcre.so.1. This change affects 109 packages. All the packages needs to be rebuilt and some of them may need moving to new API.

Check applications can be compiled against pcre16 library. Install pcre-devel, check presence of pcre16_*(3) manual pages, check output of pcre-config --libs16 and pkg-config --libs libpcre16. Try to compile and link a short code using pcre16 library.

User Experience

There is no visible change for end users. Developers can see pcre_info(3) has been removed. pcre_info(3) users need to migrate to pcre_fullinfo(3) as document for last 10 years in pcre_info(3) manual page.