Subject: CVS commit: pkgsrc/devel/slibtool
From: Sebastian Wiedenroth
Date: 2023-07-16 21:17:02
Message id: 20230716191702.96408FBDB@cvs.NetBSD.org

Log Message:
slibtool: update to 0.5.34

0.5.34:

This is the last patch release in the 0.5.x series. As of this release,
there are no known problems pertaining to slibtool's core functionality
or compatibility with the historic libtool implementation. Outstanding
features that are not covered by this release are the internal
implementation of archive merging (as opposed to using ar(1) and MRI
scripts), as well as the internal implementation, integration, and
support of -dlpreopen.

Included with this release is also m4/slibtool.m4, which by now has
been tested against, and may be successfully used with legacy autoconf
versions (such as 2.64), as well as more recent ones (2.69 or later).
A new invocation mode, --mode=slibtoolize (or the slibtoolize symlink)
is currently under development, and will be included with the next
release.

- driver: slbt_get_driver_ctx(): properly record the envp parameter.
- driver api: slbt_get_flavor_settings(): initial implementation.
- driver: added explicit --sysroot support.
- link mode: set the -soname linker flag alongside the -avoid-version argument.
- link mode: slbt_exec_link_create_executable(): enclose $DL_PATH in quotes.
- link mode: slbt_exec_link_create_executable(): replace backtick with $().
- link mode: -module without -rpath is an executable, not a dynamic library.
- link mode: legacy libtool compatibility: support linking against -module libs.
- link mode: slbt_exec_link(): properly support non-default shared-object suffix.
- link mode: slbt_exec_link_create_archive(): eliminate the libfoo.a symlink.
- link mode: static-only libfoo.la: account for non-default shared-object suffix.
- link mode: always create libfoo.so.def.{host|flavor} and related tags.
- link mode: PE targets: -release: fix names used for and in import libraries.
- link mode: slbt_exec_link_create_executable(): place .exe.wrapper under .libs/.
- install mode: driver: added (referential) --sysroot support.
- install mode: slbt_exec_install_entry: properly handle fussix flavors.
- install mode: libfoo.la and ibfoo.so.def.host: properly handle -release.
- install mode: slbt_exec_install_entry(): remove dead code.
- install mode: libfoo.la installation: early detect static-only operation mode.
- uninstall mode: driver: added (referential) --sysroot support.
- heuristics: slbt_get_lconf_flags(): added missing 'else' in if-then block.
- heuristics: slbt_get_lconf_flags(): enhanced the string-scanning logic.
- library: replace all uses of open() with openat().
- library: replace all uses of chmod() with fchmodat().
- library: replace all uses of unlink() with unlinkat().
- library: replace all uses of rmdir() with unlinkat().
- library: replace all uses of rename() with renameat().
- library: replace all uses of symlink() with symlinkat().
- library: replace all uses of [slbt_]readlink() with [slbt_]readlinkat().
- library: replace all uses of stat() and lstat() with fstatat() counterparts.
- library: replace all uses of getcwd() with slbt_realpath().
- library: eliminate use of the external environ variable.

0.5.33:

This patch release provides several bug fixes and improvements, as well as
added support for the NO_COLOR environment variable.

- driver: always respect the NO_COLOR envvar & SLBT_DRIVER_ANNOTATE_NEVER flag.
- driver: a heuristics-based -disable-shared now overrides --tag=disable-static.
- driver: --tag=disable-shared now overrides a heuristics-based -disable-static.
- link mode: always include deplib dirs in ldpathenv.
- link mode: enclose vnames in wrapper script in braces.
- link mode: always include explicit -L dirs in ldpathenv.
- link mode: shared: use .deps of a static-only .la input argument as needed.
- link mode: require dependency list to be present for all .la input arguments.
- execute mode: fix NULL ptr deref with only one argument.
- execute mode: handle relative -L pathnames & cwd-relative wrapper scripts.
- install mode: slbt_exec_install(): added legacy shtool support.
- install mode: account for a libfoo.a that was created with -disable-static.
- install mode: always respect the SLBT_DRIVER_ANNOTATE_NEVER flag.
- uninstall mode: always respect the SLBT_DRIVER_ANNOTATE_NEVER flag.
- argv.h: tty colors: added argv_usage_plain().

0.5.32:

This patch release provides several bug fixes as well as the new (or proper)
implementation of previously missing features.

- driver: added -Xlinker support.
- driver: support -static-libtool-libs (currently as a no-op).
- driver: slbt_init_flavor_settings(): properly handle the -shrext argument.
- driver: --version: update the git repository reference to the https variant.
- link mode: check for and properly support -version-info with -release.
- link mode: .def file name: added proper -release support.
- link mode: slbt_exec_link(): record the -shrext argument for the install step.
- install mode: support wrapping of /path/to/sh /path/to/install-sh.
- install mode: slbt_exec_install_entry(): added -shrext support.
- uninstall mode: remove hard-coded shell logic, revisit later as needed.
- heuristics: support finding arbitrarily named scripts up the build tree.
- heuristics: added (annotated) trace output.
- heuristics: slbt_lconf_open(): added (annotated) trace_result().
- output: print out the recorded not-found path.
- output: added slbt_output_fdcwd().
- internals: error tracing: record the not-found path upon ENOENT as needed.
- library: compile & link modes: properly record the not-found path upon error.
- helper api: added slbt_realpath().
- build system: ccenv_{tool|attr}_epilog(): properly handle long output strings.
- project: added BUGS and a note on where to report bugs and issues.
- project: config.project: update $mb_pkgrep to the https variant.

0.5.31:

This patch release fixes a regression in the 0.5.29 release,
specifically in the implementation of the -module semantics,
as well as a latent bug in the algorithm for finding a build
project's generated libtool script.

- link mode: properly handle .la targets built with -module.
- libtool finder: exit loop upon reaching the root directory.

0.5.30:

This patch release fixes sed usage ('\s' vs '[[:space:]]') in
slibtool's own build system. Release immediately in order to
prevent build errors in strict build environments.

- build system: ccenv_output_defs(): use conformant sed construct.

0.5.29:

This patch release provides a few important additions and bug fixes,
as well as several improvements in slibtool's own build system. In
addition, it denotes the (semantic) transition from midipix.org
to foss21.org.

- driver: added F77 support.
- driver: added -XCClinker support.
- driver: added FC support.
- driver: host flavors: added suffixed suffixes support.
- driver: --heuristics: respect explicit --disable-shared and/or -static.
- driver: resolve conflicting and/or incompatible command-line arguments.
- driver, link mode: properly implement the -module semantics.
- driver, compile & link mode: support arbitrary & known compiler wrappers.
- link mode: host flavors: properly support suffixed suffixes.
- install mode: host flavors: properly support suffixed suffixes.

0.5.28:

This patch release allows the enhanced target-ar logic that was
introduced in the previous patch release to properly work on legacy
systems with a tricky posix_spawnp() implementation.

- driver: enhanced target-ar logic: accommodate legacy systems.

0.5.27:

This patch release provides an important enhancement with respect to the
identification of the ar tool to be invoked in slibtool's link mode. More
specifically, rather than relying on the presence of <target>-ar, slibtool
will now attempt to invoke, as needed, several alternate ar tools in the
following order: <target>-ar, <target>-<compiler>-ar, and, in \ 
the case
of the native target, also <compiler>-ar and ar.

- driver: slbt_init_host_params(): enhance the target-ar related logic.

0.5.26:

This patch release follows significant improvements in, as well as additions
to slibtool's functionality. Most notably, with the additions of --heuristics
and the rlibtool convenience symlink, slibtool may now automagically operate
in the exact same mode (static only, shared only, or both) as the generated
libtool script for which it serves as a surrogate.

- utility: --heuristics support: added the 'rlibtool' convenience symlink.
- utility: convenience symlinks: added rclibtool, rdlibtool, and rdclibtool.
- link mode: properly handle local archives.
- link mode: remove placeholder arguments.
- link mode: remove redundant -l arguments.
- link mode: remove redundant -L arguments.
- compile mode: remove placeholder arguments.
- driver: added --heuristics support.
- driver: slbt_get_driver_ctx(): support stack-based argv.
- driver: output error vector upon post-argv-parsing failures.
- driver: execution context: added slbt_reset_argvector().
- driver: properly normalize --library-path=<path> arguments.
- internals: slbt_mkdir() now uses the context's fdcwd.
- internals: slbt_adjust_linker_argument() now uses the context's fdcwd.
- internals: -shared/-static heuristics: added slbt_get_lconf_flags().

Files:
RevisionActionfile
1.8modifypkgsrc/devel/slibtool/Makefile
1.3modifypkgsrc/devel/slibtool/PLIST
1.9modifypkgsrc/devel/slibtool/distinfo