diff -up openwsman-2.8.1/bindings/ruby/extconf.rb.orig openwsman-2.8.1/bindings/ruby/extconf.rb --- openwsman-2.8.1/bindings/ruby/extconf.rb.orig 2025-01-23 10:23:52.000000000 +0100 +++ openwsman-2.8.1/bindings/ruby/extconf.rb 2025-10-20 12:55:46.327604671 +0200 @@ -5,16 +5,31 @@ require 'mkmf' # $CFLAGS = "#{$CFLAGS} -Werror" +# libwsman requires 'int facility' to be defined by the application +# Add syslog.h for LOG_DAEMON constant +$CFLAGS = "#{$CFLAGS} -include syslog.h" + # requires wsman, wsman_client, and libxml2 +# Add build directory to library search path +$LDFLAGS = "#{$LDFLAGS} -L/builddir/build/BUILD/openwsman/openwsman-2.8.1/build/src/lib" + +# Add BOTH source include roots (and their /u) to compilation flags +$CPPFLAGS = "#{$CPPFLAGS} " \ +"-I/builddir/build/BUILD/openwsman-2.8.1/include " \ +"-I/builddir/build/BUILD/openwsman-2.8.1/include/u " \ +"-I/builddir/build/BUILD/openwsman/openwsman-2.8.1/include " \ +"-I/builddir/build/BUILD/openwsman/openwsman-2.8.1/include/u" -unless have_library('wsman', 'wsman_create_doc') +# Custom test for libwsman that includes facility definition +unless try_link("#include \n#include \nint facility = LOG_DAEMON;\nint main(void) { (void)wsman_create_doc(); return 0; }", '-lwsman -lxml2') STDERR.puts "Cannot find wsman_create_doc() in libwsman" STDERR.puts "Is openwsman-devel installed ?" exit 1 end find_header 'wsman-xml-api.h', '/usr/include/openwsman' -unless have_library('wsman_client', 'wsmc_create') +# Custom test for libwsman_client that includes facility definition +unless try_link("#include \n#include \nint facility = LOG_DAEMON;\nint main(void) { (void)wsmc_create(\"localhost\", 80, \"/wsman\", \"http\", \"u\", \"p\"); return 0; }", '-lwsman_client -lwsman -lxml2') STDERR.puts "Cannot find wsmc_create() in libwsman_client" STDERR.puts "Is openwsman-devel installed ?" exit 1 @@ -32,8 +47,14 @@ swig = find_executable("swig") raise "SWIG not found" unless swig major, minor, path = RUBY_VERSION.split(".") -raise "SWIG failed to run" unless system("#{swig} -ruby -autorename -DRUBY_VERSION=#{major}#{minor} -I. -I/usr/include/openwsman -o openwsman_wrap.c openwsman.i") +raise "SWIG failed to run" unless system("#{swig} -ruby -autorename -DRUBY_VERSION=#{major}#{minor} " \ +"-I. -I/usr/include/openwsman " \ +"-I/builddir/build/BUILD/openwsman-2.8.1/include " \ +"-I/builddir/build/BUILD/openwsman-2.8.1/include/u " \ +"-I/builddir/build/BUILD/openwsman/openwsman-2.8.1/include " \ +"-I/builddir/build/BUILD/openwsman/openwsman-2.8.1/include/u " \ +"-o openwsman_wrap.c openwsman.i") -$CPPFLAGS = "-I/usr/include/openwsman -I.." +$CPPFLAGS = "#{$CPPFLAGS} -I/usr/include/openwsman -I.." create_makefile('_openwsman')