samael
samael copied to clipboard
Binding error `xmlExternalEntityLoader` on xmlsec1 1.3.2
I'm on MacOS and brew just upgraded xmlsec1 from 1.3.1 to 1.3.2. I'm now seeing this error when I compile my project depending on samael:
error: failed to run custom build command for `samael v0.0.14`
Caused by:
process didn't exit successfully: `/Users/<USERNAME>/git/windmill/backend/target/debug/build/samael-46b70a6cc507485f/build-script-bindings` (exit status: 101)
--- stdout
cargo:rustc-cfg=xmlsec_static
cargo:rustc-link-lib=xmlsec1-openssl
cargo:rustc-link-lib=xmlsec1
cargo:rustc-link-lib=xml2
cargo:rustc-link-lib=ssl
cargo:rustc-link-lib=crypto
cargo:rerun-if-env-changed=XMLSEC1_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=XMLSEC1_STATIC
cargo:rerun-if-env-changed=XMLSEC1_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=XMLSEC1_STATIC
cargo:rerun-if-env-changed=XMLSEC1_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rustc-link-search=native=/opt/homebrew/Cellar/libxml2/2.12.1/lib
cargo:rustc-link-search=native=/opt/homebrew/Cellar/libxslt/1.1.39/lib
cargo:rustc-link-search=native=/opt/homebrew/Cellar/libxmlsec1/1.3.2/lib
cargo:rustc-link-search=native=/opt/homebrew/opt/openssl@3/lib
cargo:rustc-link-lib=xmlsec1-openssl
cargo:rustc-link-lib=xmlsec1
cargo:rustc-link-lib=crypto
cargo:rustc-link-lib=xslt
cargo:rustc-link-lib=xml2
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=XMLSEC1_STATIC
cargo:rerun-if-env-changed=XMLSEC1_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_apple_darwin
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
--- stderr
warning: -lxmlsec1-openssl: 'linker' input unused [-Wunused-command-line-argument]
warning: -lxmlsec1: 'linker' input unused [-Wunused-command-line-argument]
warning: -lz: 'linker' input unused [-Wunused-command-line-argument]
warning: -licui18n: 'linker' input unused [-Wunused-command-line-argument]
warning: -licuuc: 'linker' input unused [-Wunused-command-line-argument]
warning: -licudata: 'linker' input unused [-Wunused-command-line-argument]
warning: -liconv: 'linker' input unused [-Wunused-command-line-argument]
warning: -lxslt: 'linker' input unused [-Wunused-command-line-argument]
warning: -lxml2: 'linker' input unused [-Wunused-command-line-argument]
warning: -lcrypto: 'linker' input unused [-Wunused-command-line-argument]
warning: argument unused during compilation: '-L/opt/homebrew/Cellar/libxmlsec1/1.3.2/lib' [-Wunused-command-line-argument]
warning: argument unused during compilation: '-L/opt/homebrew/Cellar/libxml2/2.12.1/lib' [-Wunused-command-line-argument]
warning: argument unused during compilation: '-L/opt/homebrew/Cellar/icu4c/73.2/lib' [-Wunused-command-line-argument]
warning: argument unused during compilation: '-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib' [-Wunused-command-line-argument]
warning: argument unused during compilation: '-L/opt/homebrew/opt/openssl@3/lib' [-Wunused-command-line-argument]
/opt/homebrew/Cellar/libxmlsec1/1.3.2/include/xmlsec1/xmlsec/xmlsec.h:100:80: error: unknown type name 'xmlExternalEntityLoader'
clang diag: warning: -lxmlsec1-openssl: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -lxmlsec1: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -lz: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -licui18n: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -licuuc: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -licudata: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -liconv: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -lxslt: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -lxml2: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: -lcrypto: 'linker' input unused [-Wunused-command-line-argument]
clang diag: warning: argument unused during compilation: '-L/opt/homebrew/Cellar/libxmlsec1/1.3.2/lib' [-Wunused-command-line-argument]
clang diag: warning: argument unused during compilation: '-L/opt/homebrew/Cellar/libxml2/2.12.1/lib' [-Wunused-command-line-argument]
clang diag: warning: argument unused during compilation: '-L/opt/homebrew/Cellar/icu4c/73.2/lib' [-Wunused-command-line-argument]
clang diag: warning: argument unused during compilation: '-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib' [-Wunused-command-line-argument]
clang diag: warning: argument unused during compilation: '-L/opt/homebrew/opt/openssl@3/lib' [-Wunused-command-line-argument]
thread 'main' panicked at /Users/gbouvignies/.cargo/registry/src/index.crates.io-6f17d22bba15001f/samael-0.0.14/bindings.rs:52:49:
Unable to generate bindings: ClangDiagnostic("/opt/homebrew/Cellar/libxmlsec1/1.3.2/include/xmlsec1/xmlsec/xmlsec.h:100:80: error: unknown type name 'xmlExternalEntityLoader'\n")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Note: a bunch of other libraries got upgraded, but I'm mentioning only xmlsec1 here since it's the one from the stacktrace. Happy to provide the entire list of upgrades if it can help.
Any clue what might be at play here? I'm not seeing any noticeable change in the xmlsec1 source code, especially in this .h file here, so I'm not entirely sure. Any help would be appreciated :)
I also did encounter this error around the same time, although I am using xmlsec 1.2.37. The issue is probably caused by libxml2 and not xmlsec.
I was able to 'fix' the build process by adding #include <libxml/parser.h>
to the bindings.h
in samael. While this works, it's obviously not a good idea.
Today I noticed that the issue is gone with libxml2 2.12.3. Build fixes include 'Add missing includes', so I guess this was the culprit.
We are experiencing this as well!