Use of pkg-config to detect libicu

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Use of pkg-config to detect libicu

Scott Kitterman-4
Apparently the libicu upstream has deprecated use of icu-config and recommends
pkg-config instead.  Debian has recently decided to stop shipping icu-config
for obscure distro related reasons.  The Debian libicu maintainer suggests
this as an alternative (and it works here):

--- postfix-3.3.2.orig/makedefs
+++ postfix-3.3.2/makedefs
@@ -802,8 +802,8 @@ esac
 #
 case "$CCARGS" in
 *-DNO_EAI*) CCARGS="$CCARGS "'-DDEF_SMTPUTF8_ENABLE=\"no\"';;
- *) icu_cppflags=`(icu-config --cppflags) 2>/dev/null` && {
- icu_ldflags=`(icu-config --ldflags) 2>/dev/null` && {
+ *) icu_cppflags=`(pkg-config --cflags icu-i18n) 2>/dev/null` && {
+ icu_ldflags=`(pkg-config --libs icu-i18n) 2>/dev/null` && {
     trap 'rm -f makedefs.test makedefs.test.[co]' 1 2 3 15
     cat >makedefs.test.c <<'EOF'
 #include <unicode/uidna.h>

It does bring in a new requirement for pkg-config.  I've no idea how portable
that is.  Assuming this approach is acceptable, you might want to consider
this for 3.4.

Scott K
Reply | Threaded
Open this post in threaded view
|

Re: Use of pkg-config to detect libicu

Wietse Venema
Scott Kitterman:

> Apparently the libicu upstream has deprecated use of icu-config and recommends
> pkg-config instead.  Debian has recently decided to stop shipping icu-config
> for obscure distro related reasons.  The Debian libicu maintainer suggests
> this as an alternative (and it works here):
>
> --- postfix-3.3.2.orig/makedefs
> +++ postfix-3.3.2/makedefs
> @@ -802,8 +802,8 @@ esac
>  #
>  case "$CCARGS" in
>  *-DNO_EAI*) CCARGS="$CCARGS "'-DDEF_SMTPUTF8_ENABLE=\"no\"';;
> - *) icu_cppflags=`(icu-config --cppflags) 2>/dev/null` && {
> - icu_ldflags=`(icu-config --ldflags) 2>/dev/null` && {
> + *) icu_cppflags=`(pkg-config --cflags icu-i18n) 2>/dev/null` && {
> + icu_ldflags=`(pkg-config --libs icu-i18n) 2>/dev/null` && {
>      trap 'rm -f makedefs.test makedefs.test.[co]' 1 2 3 15
>      cat >makedefs.test.c <<'EOF'
>  #include <unicode/uidna.h>
>
> It does bring in a new requirement for pkg-config.  I've no idea how portable
> that is.  Assuming this approach is acceptable, you might want to consider
> this for 3.4.

Postfix 3.4 uses pkg-config if available. I usually do not make
portability changes to past releases.

        Wietse