-
Notifications
You must be signed in to change notification settings - Fork 99
Update build setup for Ubuntu 26.04 #848
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
ffbaf7e
743e792
160b790
6bb12fe
0e996ce
105dbfc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -290,9 +290,10 @@ static void logSinkFunction(void *handle, celix_log_level_e level, long logServi | |
| EXPECT_STREQ("test::Log1", logServiceName); | ||
| } | ||
|
|
||
| vfprintf(stdout, format, formatArgs); | ||
|
|
||
| fprintf(stdout, "\n"); | ||
| if (format) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about using attribute((nonnull)), which is supported by both gcc and clang, to give the compiler a clue of the nullability of the parameters? In theory, it should eliminate the
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This also reminds me that we should annotate |
||
| vfprintf(stdout, format, formatArgs); | ||
| fprintf(stdout, "\n"); | ||
| } | ||
| } | ||
|
|
||
| TEST_F(LogBundleTestSuite, LogServiceAndSink) { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -25,7 +25,7 @@ Apache Celix aims to be support a broad range of UNIX platforms. | |
|
|
||
| Currently, the [continuous integration build server] builds and tests Apache Celix for: | ||
|
|
||
| * Ubuntu Jammy Jellyfish (22.04) | ||
| * Ubuntu Resolute Raccoon (26.04) | ||
| * GCC | ||
| * CLang | ||
| * OSX | ||
|
|
@@ -54,7 +54,7 @@ The following packages (libraries + headers) should be installed on your system: | |
| * cmake (3.19 or higher) | ||
| * Conan (2 or higher) | ||
|
|
||
| For Ubuntu 22.04, use the following commands: | ||
| For Ubuntu 26.04, use the following commands: | ||
| ```bash | ||
| sudo apt-get install -yq --no-install-recommends \ | ||
| build-essential \ | ||
|
|
@@ -123,6 +123,19 @@ To see a complete overview of the available build options in the recipe you can | |
| conan inspect . | grep build_ | ||
| ``` | ||
|
|
||
| #### CMake 4 and Jansson | ||
|
|
||
| When building on a system with CMake 4 or higher, the following entry is needed in your Conan host | ||
| profile (for example, `debug`): | ||
|
|
||
| ```ini | ||
| [buildenv] | ||
| jansson/2.14:CMAKE_POLICY_VERSION_MINIMUM=3.5 | ||
| ``` | ||
|
|
||
| This is needed because Jansson 2.14 is based on an older version of CMake, and this entry sets the | ||
| minimum CMake policy version only in Jansson's build environment. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be and has already been fixed by jansson's reciple: https://github.com/conan-io/conan-center-index/blob/7fc80e7d9beb8570ef7d3b247a26d2f5905648b0/recipes/jansson/all/conanfile.py#L60-L61 Thus, it is not needed any more. |
||
|
|
||
| #### CMake Private Linking Workaround (Conan) | ||
|
|
||
| When using Celix via Conan, you may encounter an [issue](https://github.com/apache/celix/issues/642) where `libzip.so` is not found by the linker. This is due to a [bug in Conan](https://github.com/conan-io/conan/issues/7192). | ||
|
|
@@ -164,7 +177,7 @@ The following packages (libraries + headers) should be installed on your system: | |
| * libcurl (used in framwork for setup and (among others) in remote services | ||
|
|
||
|
|
||
| For Ubuntu 22.04, use the following commands: | ||
| For Ubuntu 26.04, use the following commands: | ||
|
|
||
| ```bash | ||
| sudo apt-get update | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -720,8 +720,10 @@ TEST_F(ScheduledEventTestSuite, ScheduledEventTimeoutLogTest) { | |
| output = stderr; | ||
| } | ||
| fprintf(output, "%s: ", celix_logLevel_toString(level)); | ||
| vfprintf(output, format, args); | ||
| fprintf(output, "\n"); | ||
| if (format) { | ||
| vfprintf(output, format, args); | ||
| fprintf(output, "\n"); | ||
| } | ||
| }; | ||
| celix_framework_setLogCallback(fw->getCFramework(), &logCount, logCallback); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't know whether gcc attribute annotation will work in this case, but guess it will. |
||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'd better fix it in cmake/celix_project/CodeCoverage.cmake as in #842
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AI tolds me that
I have not verified the 1.x behavior, which needed to be done to decide how to fix it.