#80 squid aclocal fails with slibtoolize
Opened 2 weeks ago by orbea. Modified 2 weeks ago

OS: Gentoo
squid: 6.12 (https://github.com/squid-cache/squid/releases/tag/SQUID_6_12)
slibtool: 0.7.0

aclocal.out

***** aclocal *****
***** PWD: /var/tmp/portage/net-proxy/squid-6.12/work/squid-6.12/libltdl
***** aclocal -I /usr/share/slibtool -I m4 --system-acdir=/var/tmp/portage/net-proxy/squid-6.12/temp/aclocal

configure.ac:69: error: unknown libltdl build type: _LTDL_TYPE
/usr/share/aclocal/ltdl.m4:227: LTDL_INIT is expanded from...
configure.ac:69: the top level
autom4te-2.72: error: /usr/bin/m4 failed with exit status: 1
aclocal-1.17: error: autom4te failed with exit status: 1
 * Package:    net-proxy/squid-6.12:0
 * Repository: gentoo
 * Maintainer: hlein@korelogic.com proxy-maint@gentoo.org
 * USE:        abi_x86_64 amd64 caps elibc_glibc htcp kernel_linux pam ssl verify-sig wccp wccpv2
 * FEATURES:   ccache network-sandbox preserve-libs sandbox userpriv usersandbox
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found sources for kernel version:
 *     6.12.29-x86_64
>>> Unpacking source...
 * Verifying squid-6.12.tar.xz ...
/usr/lib/python3.13/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 4.0.0'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(
[   INFO] File /var/tmp/portage/net-proxy/squid-6.12/distdir/squid-6.12.tar.xz verified successfully against the signature in /var/tmp/portage/net-proxy/squid-6.12/distdir/squid-6.12.tar.xz.asc:
[   INFO] - status: OpenPGPSignatureStatus.GOOD
[   INFO] - valid: True, trusted: True
[   INFO] - primary key: 29B4B1F7CE03D1B1DED22F3028F85029FEF6E865
[   INFO] - subkey: 29B4B1F7CE03D1B1DED22F3028F85029FEF6E865
[   INFO] - timestamp: 2024-10-11 20:31:01 UTC
>>> Unpacking squid-6.12.tar.xz to /var/tmp/portage/net-proxy/squid-6.12/work
=== Skipping unpack of squid-6.9-memleak_fix.patch
=== Skipping unpack of squid-6.12.tar.xz.asc
>>> Source unpacked in /var/tmp/portage/net-proxy/squid-6.12/work
>>> Preparing source in /var/tmp/portage/net-proxy/squid-6.12/work/squid-6.12 ...
 * Applying squid-6.2-gentoo.patch ...
 [ ok ]
 * Applying squid-4.17-use-system-libltdl.patch ...
 [ ok ]
 * Applying squid-6.9-memleak_fix.patch ...
 [ ok ]
 * Applying squid-6.12-ar.patch ...
 [ ok ]
 * Running eautoreconf in '/var/tmp/portage/net-proxy/squid-6.12/work/squid-6.12/libltdl' ...
 * Running 'slibtoolize --install --copy --force --ltdl --automake' ...
 [ ok ]
 * Running 'aclocal -I /usr/share/slibtool -I m4 --system-acdir=/var/tmp/portage/net-proxy/squid-6.12/temp/aclocal' ...
 [ !! ]

 * Failed running 'aclocal'!
 * 
 * Include in your bug report the contents of:
 * 
 *   /var/tmp/portage/net-proxy/squid-6.12/temp/aclocal.out

 * ERROR: net-proxy/squid-6.12::gentoo failed (prepare phase):
 *   Failed running 'aclocal'!
 * 
 * Call stack:
 *     ebuild.sh, line  136:  Called src_prepare
 *   environment, line 2090:  Called eautoreconf
 *   environment, line 1180:  Called eautoreconf
 *   environment, line 1197:  Called eaclocal
 *   environment, line 1082:  Called autotools_run_tool '--at-m4flags' 'aclocal' '-I' 'm4' '--system-acdir=/var/tmp/portage/net-proxy/squid-6.12/temp/aclocal'
 *   environment, line  784:  Called die
 * The specific snippet of code:
 *           die "Failed running '${1}'!";
 * 
 * If you need support, post the output of `emerge --info '=net-proxy/squid-6.12::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-proxy/squid-6.12::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/net-proxy/squid-6.12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-proxy/squid-6.12/temp/environment'.
 * Working directory: '/var/tmp/portage/net-proxy/squid-6.12/work/squid-6.12/libltdl'
 * S: '/var/tmp/portage/net-proxy/squid-6.12/work/squid-6.12'

Thanks for reporting this. To build squid with a native slibtool (that is, using a configure script that was generated using slibtoolize) as well as libsltdl, the following steps are required:

  • rather than invoking squid's bootstrap.sh, create a sub-folder named libltdl; then, inside of that folder, create a Makefile with a single, no-op all: rule; this should take place prior to the invocation of autoreconf -fi.

  • squid's src/LoadableModule.cc explicitly refers to the above libltdl directory via #include "libltdl/ltdl.h", so create this header as a wrapper around sltdl.h: #include <sltdl/sltdl.h>

  • squi'd configure.ac contain the statement AC_SUBST(LIBLTDL), which admittedly needs to be addressed by slibtool.m4.

  • Last but not least, the LTDL_SET_PRELOADED_SYMBOLS macro should be provided by either libsltdl or otherwise.

^ The minimal Makefile inside of the libltdl sub-directory should also include an install: target.

all:
install:
••••••••@true

Login to comment on this ticket.

Metadata