Hi Robert,

On Sun, Mar 02, 2025 at 07:14:20AM -1000, robertlazarski wrote:
> 
> The INSTALL doc is confusing as it says run ./configure as usual but it
> isn't there without executing the script.

I think the INSTALL doc is typically for the end user, so it expects
building from a dist tarball, which would already have ./configure
generated.  But for development purposes, it's my understanding that
it's best practice to not check ./configure (and other, generated build
system files) into the repo.  So when starting from a checkout rather
than a dist tarball, it requires that autoconf, automake, etc. be run to
get to a buildable state.

Maybe we should also have an INSTALL.developers (or whatever).

> 
> Running "sh build_for_tests.sh" shows errors in the Makefile:
> 
> /usr/bin/install: 'AUTHORS' and
> '/home/robert/repos/axis-axis2-c-core/AUTHORS' are
> the same file
> make[2]: *** [Makefile:504: install-dataDATA] Error 1
> make[2]: Leaving directory '/home/robert/repos/axis-axis2-c-core'
> make[1]: *** [Makefile:948: install-am] Error 2
> make[1]: Leaving directory '/home/robert/repos/axis-axis2-c-core'
> make: *** [Makefile:636: install-recursive] Error 1
> 

That's strange.  For what it's worth, I can do a brand new checkout,
then run build_for_tests.sh, and it completes successfully with no
errors, installing a complete binary distribution (with samples) into
$src_dir/deploy.

Since it looks like it's trying to install into the root of the source
tree instead of the deploy subdir, I'm guessing there's an issue with how
AXIS2C_HOME is getting set on your system, which is causing issues with
the install prefix.  It should all be set up in build_for_tests.sh, so
you might start there.

> In the end I manually edited the Makefile so "install" would complete - as
> shown via diff, I need to find the right place to fix this:

Since (as far as I can tell) the existing line should be correct, I
think once you figure out the AXIS2C_HOME and/or prefix/destdir issue
referenced above, then the diff, or any further/related fix, shouldn't
be necessary.

I'm happy to try to help you work through it, but as I said, it "works
on my machine" so much of my help would probably answering questions or
making suggestions based on the info you give me.

> 
> Running "sh run-tests.sh" shows one error - an HTTP 500 error on "Service
> not Found" which arguably could be a 404.  The log dir shows:
> 
> [Sun Mar  2 06:03:09 2025] [info]  Service Not found. Endpoint reference is
> : http
> ://127.0.0.1:9090/axis2/services/echo/echo

<snip>

> 
> Then it fails here - about :
> 
> AddressSanitizer: CHECK failed: sanitizer_thread_arg_retval.cpp:57
> "((!t->second.deta
> ched)) != (0)" (0x0, 0x0) (tid=335462)

I suspect this is related to install issue above.  The installed
file isn't where the test server is expecting it, so when it tries to
load it, there's a null pointer dereferece. (There are a lot of
functions and code paths that lack null pointer checks - which is
something I wanted to improve at some point)

If I do run_tests.sh, then all tests pass.  However, I can duplicate
what you're seeing by renaming deploy/services/echo to something else.
So I think sorting out the install function will fix this, too.



> 
> ./configure --enable-json
> 
> Returns this error. Seems like you applied the patch to support JSON back
> in 2013.
> 
> https://issues.apache.org/jira/browse/AXIS2C-1645
> 
> Is there some Ubuntu package I need to install? Simply "json" not found
> isn't clear to me. I see json.h in a couple places. I tried "apt
> install libjson-c-dev"
> from Ubuntu 22.04 since it also has json_object but it didn't help.
> 
> checking for json... no
> configure: error: Package requirements (json) were not met:
> 
> Package 'json', required by 'virtual:world', not found

According to this comment 
https://issues.apache.org/jira/browse/AXIS2C-1645?focusedCommentId=13758315&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13758315
it sounds like libjson-c-dev is the correct package, but it looks like
the references to library references to "json" still need to be replaced with
"json-c".

In doing that, I got configure to succeed, but then got compiler errors.
It looks like json-c needs C99 or newer.  So I added --std=c99 when JSON is
enabled, and was able to get a clean compile.  I haven't done any
testing. (side note: maybe we should make the whole project require c99
for the 2.0 release, not just when JSON is enabled).

I've attached the patch with my changes.

Best regards,
Bill



diff --git a/configure.ac b/configure.ac
index 66667a62e..8ef68872b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -589,10 +589,10 @@ AC_ARG_ENABLE(json, [  --enable-json
     ;;
   *)
     AC_MSG_RESULT(yes)
-    CFLAGS="$CFLAGS $JSON_CFLAGS -DAXIS2_JSON_ENABLED"
-    CPPFLAGS="$CPPFLAGS $JSON_LIBS -DAXIS2_JSON_ENABLED"
+    CFLAGS="$CFLAGS $JSON_CFLAGS -DAXIS2_JSON_ENABLED --std=c99"
+    CPPFLAGS="$CPPFLAGS $JSON_LIBS -DAXIS2_JSON_ENABLED --std=c99"
     json_enabled=true
-    PKG_CHECK_MODULES(JSON, json)
+    PKG_CHECK_MODULES(JSON, json-c)
     ;;
   esac ],
   AC_MSG_RESULT(no)

---------------------------------------------------------------------
To unsubscribe, e-mail: c-user-unsubscr...@axis.apache.org
For additional commands, e-mail: c-user-h...@axis.apache.org

Reply via email to