OS: Gentoo squid: 6.12 (https://github.com/squid-cache/squid/releases/tag/SQUID_6_12) slibtool: 0.7.0
Gentoo
6.12
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:
slibtool
slibtoolize
libsltdl
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.
bootstrap.sh
libltdl
Makefile
all:
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>
src/LoadableModule.cc
#include "libltdl/ltdl.h"
#include <sltdl/sltdl.h>
squi'd configure.ac contain the statement AC_SUBST(LIBLTDL), which admittedly needs to be addressed by slibtool.m4.
configure.ac
AC_SUBST(LIBLTDL)
slibtool.m4
Last but not least, the LTDL_SET_PRELOADED_SYMBOLS macro should be provided by either libsltdl or otherwise.
LTDL_SET_PRELOADED_SYMBOLS
^ The minimal Makefile inside of the libltdl sub-directory should also include an install: target.
install:
all: install: ••••••••@true
••••••••@true
Login to comment on this ticket.