Hi,

this series fixes two install target issues that showed up when packaging
ncurses with separate narrow and wide build directories and installing both
into the same DESTDIR.

The first issue was originally exposed by an OpenEmbedded/Yocto build, where
ncurses is configured in separate narrow and wide build directories and both
variants are installed into a packaging DESTDIR. To avoid making this depend
on the Yocto build system, I reduced it to the manual sequence below, which
reproduces the missing library on current master branch, using Ubuntu 22.04.1
machine, with 56 cores, but I managed to reproduce with 8 parallel jobs.

The reproducer uses current master (1093431eadafa2317a4196755b2526b6c778e439,
v6_6_20260620). Configure two out-of-tree builds with:

common options:
  common_options="--prefix=/usr --libdir=/usr/lib --with-abi-version=5 \
  --with-shared --without-normal \
  --with-termlib=tinfo --with-ticlib \
  --without-debug --without-ada --without-cxx-binding --without-progs"

narrow build:
  $src/configure $common_options

wide build:
  $src/configure $common_options --enable-widec

Then build and install the libraries into one destination using parallel make:

make -j8 -C build/narrow libs
make -j8 -C build/wide libs
make -j8 -C build/narrow DESTDIR=$dest install.libs
make -j8 -C build/wide DESTDIR=$dest install.libs

The final wide install links libticw, libpanelw, libmenuw and libformw, but
can leave libncursesw.so.5.9 missing from $dest/usr/lib.
Running the same install sequence with -j1 installs libncursesw.
This behaviour is fixed by the first patch.

The second issue is in the misc pkg-config install rule. install.libs relies
on pc-files, but that target is a stamp rather than one of the generated .pc
files. If the stamp is present while the generated files are missing, the
install rule skips gen-pkgconfig and silently installs no .pc files.  Patch 2
keeps the install rule self-contained by regenerating the .pc files before
copying them.

Luca Fancellu (2):
  Make install.libs depend on installed shared libraries
  misc: Always regenerate pkg-config files before install

 aclocal.m4          | 13 +++++++++++++
 c++/Makefile.in     |  4 ++++
 configure           | 13 +++++++++++++
 form/Makefile.in    |  4 ++++
 menu/Makefile.in    |  4 ++++
 misc/Makefile.in    |  3 ++-
 ncurses/Makefile.in |  4 ++++
 panel/Makefile.in   |  4 ++++
 8 files changed, 48 insertions(+), 1 deletion(-)

-- 
2.34.1

Reply via email to