Dear Maintainer,

As you confirm icu-config is now deprecated.

But pkgdata in icu-devtools(63.2-2) on deb10 stable is still referring to icu-config :
$ pkgdata -p bin_mkltfs -m static packagelist.txt
sh: 1: icu-config: not found
sh: 1: icu-config: not found
pkgdata: icu-config: No icu-config found. (fix PATH or use -O option)
required parameter is missing: -O is required for static and shared builds.
Run 'pkgdata --help' for help.

icu-63.2/source/tools/pkgdata/pkgdata.cpp :
line 2137 -> 2172 :
/* Try calling icu-config directly to get the option file. */
static int32_t pkg_getOptionsFromICUConfig(UBool verbose, UOption *option) {
#if U_HAVE_POPEN
    LocalPipeFilePointer p;
    size_t n;
    static char buf[512] = "";
    icu::CharString cmdBuf;
    UErrorCode status = U_ZERO_ERROR;
    const char cmd[] = "icu-config --incpkgdatafile";
    char dirBuf[1024] = "";
    /* #1 try the same path where pkgdata was called from. */
    findDirname(progname, dirBuf, UPRV_LENGTHOF(dirBuf), &status);
    if(U_SUCCESS(status)) {
      cmdBuf.append(dirBuf, status);
      if (cmdBuf[0] != 0) {
        cmdBuf.append( U_FILE_SEP_STRING, status );
      }
      cmdBuf.append( cmd, status );

      if(verbose) {
        fprintf(stdout, "# Calling icu-config: %s\n", cmdBuf.data());
      }
      p.adoptInstead(popen(cmdBuf.data(), "r"));
[...]

On http://userguide.icu-project.org/howtouseicu, there is an recommendation about that : pkgdata uses the icu-config script in order to locate pkgdata.inc. If you are not building ICU using the supplied tools, you may need to modify this file directly to allow static and dll modes to function.

Thanks for the good job, keep up with it !
Grégory

Reply via email to