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