libelektra icon indicating copy to clipboard operation
libelektra copied to clipboard

Plugin/xfconf

Open eiskasten opened this issue 3 years ago • 14 comments

Basics

  • [ ] Short descriptions of your changes are in the release notes (added as entry in doc/news/_preparation_next_release.md which contains _(my name)_) Please always add something to the release notes.
  • [ ] Details of what you changed are in commit messages (first line should have module: short statement syntax)
  • [ ] References to issues, e.g. close #X, are in the commit messages.
  • [ ] The buildservers are happy. If not, fix in this order:
    • [ ] add a line in doc/news/_preparation_next_release.md
    • [ ] reformat the code with scripts/dev/reformat-all
    • [ ] make all unit tests pass
    • [ ] fix all memleaks
  • [x] The PR is rebased with current master.

Checklist

  • [ ] I added unit tests for my code
  • [ ] I fully described what my PR does in the documentation (not in the PR description)
  • [ ] I fixed all affected documentation
  • [x] I added code comments, logging, and assertions as appropriate (see Coding Guidelines)
  • [ ] I updated all meta data (e.g. README.md of plugins and METADATA.ini)
  • [ ] I mentioned every code not directly written by me in reuse syntax

Review

Labels

  • [x] Add the "work in progress" label if you do not want the PR to be reviewed yet.
  • [ ] Add the "ready to merge" label if the basics are fulfilled and no further pushes are planned by you.

eiskasten avatar Jun 22 '22 13:06 eiskasten

I ran into an issue regarding the macOS images: xfconf is only available for macOS through macports but not homebrew so I wonder what am I supposed to do. I see multiple options:

  • I could install macports on the images and then install xfconf
  • I could exclude the xfconf-plugin from the cirrus file in the macOS images
  • I could build xfconf for the macOS images from scratch (maybe I could just curl the macports port for xfconf and build it manually if macports work the similar to the BSD ports)

Another problem I ran into is regarding the FreeBSD images: all of them refuse linking the xfconf-plugin and I am not able to recognize the exact problem here. I have installed xfconf on the FreeBSD images. Before doing that the images threw a compilation error which tells me that the FreeBSD images are able to find the xfconf library at least kind of in some cases. Here is the error log regarding the linking process:

[481/965] Linking C shared module lib/libelektra-xfconf.so
FAILED: lib/libelektra-xfconf.so 
: && /usr/local/bin/clang12 -fPIC -std=c11  -Wno-deprecated-declarations  -Wstrict-prototypes -Werror -Wno-long-long -Wpedantic -Wno-variadic-macros -Wall -Wextra -Wno-overlength-strings -Wsign-compare -Wfloat-equal -Wformat -Wformat-security -Wshadow -Wcomments -Wtrigraphs -Wundef -Wuninitialized -Winit-self -Wsign-compare -Wfloat-equal -O2 -g -DNDEBUG  -Wl,--version-script=/tmp/cirrus-ci-build/src/plugins/plugin-symbols.map -shared  -o lib/libelektra-xfconf.so src/plugins/xfconf/CMakeFiles/elektra-xfconf.dir/xfconf.c.o  -Wl,-rpath,/tmp/cirrus-ci-build/build/lib:  lib/libelektra-plugin.so.0.9.10  lib/libelektra-ease.so.0.9.10  -lxfconf-0  -lgio-2.0  -lgobject-2.0  -lglib-2.0  -lintl  lib/libelektra-core.so.0.9.10 && :
ld: error: unable to find library -lxfconf-0
ld: error: unable to find library -lgio-2.0
ld: error: unable to find library -lgobject-2.0
ld: error: unable to find library -lglib-2.0
ld: error: unable to find library -lintl
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I would be glad about any suggestions.

eiskasten avatar Aug 03 '22 19:08 eiskasten

I could exclude the xfconf-plugin from the cirrus file in the macOS images

Sounds sensible. Using XFCE under macOS is probably a rare thing. Without actually testing if the macports xfce even works it would be a waste of (CPU) time doing regression checks.

FreeBSD

Sounds like linker path is incomplete. Where are these files (xfconf-0*.so etc.)?

markus2330 avatar Aug 04 '22 05:08 markus2330

I could exclude the xfconf-plugin from the cirrus file in the macOS images

Sounds sensible. Using XFCE under macOS is probably a rare thing. Without actually testing if the macports xfce even works it would be a waste of (CPU) time doing regression checks.

That is right, so I will exclude it.

FreeBSD

Sounds like linker path is incomplete. Where are these files (xfconf-0*.so etc.)?

Using pkg on my local FreeBSD 13 machine they are located in the ports library directory

ls -l /usr/local/lib/*xfconf*

prints

lrwxr-xr-x  1 root  wheel      20 Jul  3 11:01 /usr/local/lib/libxfconf-0.so -> libxfconf-0.so.3.0.0
lrwxr-xr-x  1 root  wheel      20 Jul  3 11:01 /usr/local/lib/libxfconf-0.so.3 -> libxfconf-0.so.3.0.0
-rwxr-xr-x  1 root  wheel  107256 Jul  3 11:01 /usr/local/lib/libxfconf-0.so.3.0.0

eiskasten avatar Aug 05 '22 16:08 eiskasten

Weird, /usr/local/lib is in the linker path and ldconfig was executed?

What does pkg-config --cflags libxfconf-0 say on that system?

Is something in the CMake error logs?

markus2330 avatar Aug 10 '22 16:08 markus2330

Weird, /usr/local/lib is in the linker path and ldconfig was executed?

grep ldconfig cmake-build/CMakeFiles/CMakeOutput.log prints nothing, so I guess it is not the case? As ldconfig -r | grep xfconf prints 172:-lxfconf-0.3 => /usr/local/lib/libxfconf-0.so.3 I assume the missing execution of ldconfig is the reason but how can I change that?

What does pkg-config --cflags libxfconf-0 say on that system?

-I/usr/local/include/xfce4/xfconf-0 -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -pthread

Is something in the CMake error logs?

Nothing useful for this issue. Unfortunately, I am unable to build it on my local FreeBSD machine too because of:

[2/146] Linking C executable bin/testmod_iconv
FAILED: bin/testmod_iconv 
: && /usr/bin/cc -std=gnu99  -Wno-deprecated-declarations  -Wstrict-prototypes  -Wno-long-long -Wpedantic -Wno-variadic-macros -Wall -Wextra -Wno-overlength-strings -Wsign-compare -Wfloat-equal -Wformat -Wformat-security -Wshadow -Wcomments -Wtrigraphs -Wundef -Wuninitialized -Winit-self -Wsign-compare -Wfloat-equal -O2 -g -DNDEBUG  tests/cframework/CMakeFiles/cframework.dir/tests.c.o src/plugins/iconv/CMakeFiles/elektra-iconv-objects.dir/iconv.c.o src/plugins_tests/CMakeFiles/testmod_iconv.dir/iconv/testmod_iconv.c.o -o bin/testmod_iconv  -Wl,-rpath,/home/richi/libelektra/cmake-build/lib:  lib/libelektra-kdb.so.0.9.10  lib/libelektra-plugin.so.0.9.10  -lc  lib/libelektra-core.so.0.9.10 && :
ld: error: undefined symbol: libiconv_open
>>> referenced by iconv.c:0 (/home/richi/libelektra/src/plugins/iconv/iconv.c:0)
>>>               src/plugins/iconv/CMakeFiles/elektra-iconv-objects.dir/iconv.c.o:(kdbbUTF8Engine)

ld: error: undefined symbol: libiconv
>>> referenced by iconv.c:123 (/home/richi/libelektra/src/plugins/iconv/iconv.c:123)
>>>               src/plugins/iconv/CMakeFiles/elektra-iconv-objects.dir/iconv.c.o:(kdbbUTF8Engine)

ld: error: undefined symbol: libiconv_close
>>> referenced by iconv.c:0 (/home/richi/libelektra/src/plugins/iconv/iconv.c:0)
>>>               src/plugins/iconv/CMakeFiles/elektra-iconv-objects.dir/iconv.c.o:(kdbbUTF8Engine)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
[4/146] Linking C executable bin/testmod_filecheck
FAILED: bin/testmod_filecheck 
: && /usr/bin/cc -std=gnu99  -Wno-deprecated-declarations  -Wstrict-prototypes  -Wno-long-long -Wpedantic -Wno-variadic-macros -Wall -Wextra -Wno-overlength-strings -Wsign-compare -Wfloat-equal -Wformat -Wformat-security -Wshadow -Wcomments -Wtrigraphs -Wundef -Wuninitialized -Winit-self -Wsign-compare -Wfloat-equal -O2 -g -DNDEBUG  tests/cframework/CMakeFiles/cframework.dir/tests.c.o src/plugins/filecheck/CMakeFiles/elektra-filecheck-objects.dir/filecheck.c.o src/plugins_tests/CMakeFiles/testmod_filecheck.dir/filecheck/testmod_filecheck.c.o -o bin/testmod_filecheck  -Wl,-rpath,/home/richi/libelektra/cmake-build/lib:  lib/libelektra-kdb.so.0.9.10  lib/libelektra-plugin.so.0.9.10  -lc  lib/libelektra-core.so.0.9.10 && :
ld: error: undefined symbol: libiconv_open
>>> referenced by filecheck.c:0 (/home/richi/libelektra/src/plugins/filecheck/filecheck.c:0)
>>>               src/plugins/filecheck/CMakeFiles/elektra-filecheck-objects.dir/filecheck.c.o:(checkFile)

ld: error: undefined symbol: libiconv
>>> referenced by filecheck.c:188 (/home/richi/libelektra/src/plugins/filecheck/filecheck.c:188)
>>>               src/plugins/filecheck/CMakeFiles/elektra-filecheck-objects.dir/filecheck.c.o:(checkFile)

ld: error: undefined symbol: libiconv_close
>>> referenced by filecheck.c:301 (/home/richi/libelektra/src/plugins/filecheck/filecheck.c:301)
>>>               src/plugins/filecheck/CMakeFiles/elektra-filecheck-objects.dir/filecheck.c.o:(checkFile)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
[7/146] Linking C executable bin/testmod_ni
ninja: build stopped: subcommand failed.

despite iconv-2.0_5 and libiconv-1.16 being installed on that system.

eiskasten avatar Aug 17 '22 20:08 eiskasten

I managed to reproduce the same error on my local FreeBSD machine. I let clang output the ld invocation which was: "/usr/local/llvm12/bin/ld" --eh-frame-hdr -Bshareable --hash-style=both --enable-new-dtags -o lib/libelektra-xfconf.so /usr/lib/crti.o /usr/lib/crtbeginS.o -L/usr/lib --version-script=/home/richi/libelektra/src/plugins/plugin-symbols.map src/plugins/xfconf/CMakeFiles/elektra-xfconf.dir/xfconf.c.o -rpath /home/richi/libelektra/cmake-build/lib: lib/libelektra-plugin.so.0.9.10 lib/libelektra-ease.so.0.9.10 -lxfconf-0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl lib/libelektra-core.so.0.9.10 -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/crtendS.o /usr/lib/crtn.o. However, I wondered why -L/usr/local/lib was not included as a parameter which is quite important for FreeBSD - when I invoke the linker manually and add this parameter, ld does not fail anymore. Do you have any suggestions how to add /usr/local/lib to the linker path (globally)? I am wondering how it was possible for other plugins to pass the FreeBSD stages whose libraries are located at /usr/local/lib such as yajl or yaml.

eiskasten avatar Aug 18 '22 20:08 eiskasten

Please disable your plugin/binding if PkgConfig is not found (see e.g. src/bindings/gsettings/CMakeLists.txt). As you probably want to reuse the xfconf detection code, it also makes sense to create a xfconf module in scripts/cmake/Modules/. First check if something like this was already written by someone else, this might actually solve the whole problem we face, as this module might work perfectly with FreeBSD.

If it does not help: There is probably some FreeBSD-specific solution I do not know. In two modules (scripts/cmake/Modules/FindLibJWT.cmake and FindMySqlCppConn.cmake ) we have /usr/local/lib in PATHS of find_library (this would be an alternative way not using pkgconfig). But as many other modules also seem to work for you, this might not be needed. I also would need a local FreeBSD setup to find out the differences of why also other modules link correctly (if they do?).

markus2330 avatar Aug 19 '22 05:08 markus2330

Please disable your plugin/binding if PkgConfig is not found (see e.g. src/bindings/gsettings/CMakeLists.txt). As you probably want to reuse the xfconf detection code, it also makes sense to create a xfconf module in scripts/cmake/Modules/. First check if something like this was already written by someone else, this might actually solve the whole problem we face, as this module might work perfectly with FreeBSD.

Thank you for the tip. I created a cmake module for xfconf based on scripts/cmake/Modules/FindLibJWT.cmake. It now works and pkgconfig is no longer required. The FreeBSD stages are still failing but at least they are now able to build the project.

eiskasten avatar Aug 23 '22 18:08 eiskasten

Now, the FreeBSD machines throw /usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found during the run_all target. I can find

  • examples/codegen/tree/src/application.c
  • examples/codegen/econf/src/application.c
  • examples/codegen/menu/src/application.c
  • examples/external/pkgconfig/application.c
  • examples/external/cmake/application.c
  • examples/highlevel/pkgconfig/application.c
  • examples/highlevel/cmake/application.c within the project, but after building, I cannot find the application binary anywhere on my local machine. It seems to me that it does not get compiled. Do you know something about that?

eiskasten avatar Aug 25 '22 17:08 eiskasten

We probably need build logs to find anything out about it. Imho it is a bug, it should be possible to build test cases which cannot be run afterwards.

@kodebach Do you have an idea?

markus2330 avatar Aug 26 '22 09:08 markus2330

Looks like the codegen-based examples cannot be built. The build logs also show

/bin/sh: gcc: not found

So I guess that's the issue. No idea why it would've worked before, but not now.

kodebach avatar Aug 26 '22 10:08 kodebach

Looks like gcc is hardcoded somewhere where actually the compiler detected by cmake should be used.

markus2330 avatar Aug 26 '22 12:08 markus2330

detected by cmake

This was in one of the pkgconfig examples that should run without CMake. But maybe replacing gcc with just cc works.

kodebach avatar Aug 26 '22 13:08 kodebach

In doc/TESTING.md we actually require gcc to be installed. This is probably only because of pythongen, which should be removed anyway.

The proper C compiler is "CMAKE_C_COMPILER" (or CMAKE_CXX_COMPILER for C++), not cc, which we do not require to exist (see doc/TESTING.md).

markus2330 avatar Aug 27 '22 16:08 markus2330

I still have this issue with freebsd and I compared the output from the ci log of this PR with the current master (this PR is ahead of master). The first difference I can find is:

ELEKTRA CHECK EXTERNAL EXAMPLE
/usr/local/bin/pkg-config
Check if script tests the correct version
Testing build with cmake
realpath: /usr/local/lib/elektra/tool_exec/../../scripts/cmake/Elektra: No such file or directory
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

May this be the root cause of the problem? If yes, does anybody know how to generate /usr/local/lib/elektra/tool_exec/../../scripts/cmake/Elektra?

eiskasten avatar Oct 12 '22 18:10 eiskasten

I still have this issue with freebsd and I compared the output from the ci log of this PR with the current master (this PR is ahead of master). The first difference I can find is:

I think this is a different problem. I wonder why this test is even executed in the installed Elektra?

https://github.com/ElektraInitiative/libelektra/blob/2a203b457821dcb36defbc16d5cdee1643c810d3/tests/shell/external/example.sh#L55

But your approach sounds promising: which other differences are there?

markus2330 avatar Oct 15 '22 12:10 markus2330

I think this is related #2523. The test in question is one of the ones in tests/shell/external. Those tests only work with an installed version of Elektra.

kodebach avatar Oct 15 '22 13:10 kodebach

But your approach sounds promising: which other differences are there?

This is the complete output what this branch produces but not the master.

Click to expand
ELEKTRA CHECK EXTERNAL EXAMPLE
/usr/local/bin/pkg-config
Check if script tests the correct version
Testing build with cmake
realpath: /usr/local/lib/elektra/tool_exec/../../scripts/cmake/Elektra: No such file or directory
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Elektra 0.9.11 found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/cirrus-ci-build/examples/external/build
[ 50%] Building C object CMakeFiles/application.dir/application.c.o
[100%] Linking C executable application
[100%] Built target application
Did not find the key
Did not find the key
Create a new key system:/test/myapp/key with string "Hello World"
Hello World
Hello World
Create a new key user:/test/myapp/key with string "More world"
More world
More world
Did not find the key
Did not find the key
Create a new key system:/test/myapp/key with string "Hello World"
Hello World
Hello World
Create a new key user:/test/myapp/key with string "More world"
More world
More world
Testing build with pkgconfig
gcc application.c `pkg-config --cflags --libs elektra` -o application -Wl,-rpath `pkg-config --variable=libdir elektra`
/bin/sh: gcc: not found
*** Error code 127
Stop.
make: stopped in /tmp/cirrus-ci-build/examples/external/pkgconfig
error: could not build pkgconfig project
Did not find the key
Did not find the key
Create a new key system:/test/myapp/key with string "Hello World"
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
error: application did not output Hello World
Create a new key user:/test/myapp/key with string "More world"
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
error: application did not prefer user:/test/myapp/key with More world
Did not find the key
Did not find the key
Create a new key system:/test/myapp/key with string "Hello World"
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
error: application did not output Hello World
Create a new key user:/test/myapp/key with string "More world"
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
/usr/local/lib/elektra/tool_exec/check_external_example: ./application: not found
error: application did not prefer user:/test/myapp/key with More world
rm: application: No such file or directory
check_external_example RESULTS: 21 test(s) done 5 error(s).
error: check_external_example
Running check_external_example_codegen_econf
ELEKTRA CHECK EXTERNAL CODEGEN ECONF
/usr/local/bin/pkg-config
Check if script tests the correct version
Testing build with cmake
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Elektra 0.9.11 found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/cirrus-ci-build/examples/codegen/econf/build
[ 25%] Generating genelektra.c, genelektra.h, genelektra.mount.sh
[ 50%] Building C object CMakeFiles/application.dir/tmp/cirrus-ci-build/examples/codegen/econf/src/application.c.o
[ 75%] Building C object CMakeFiles/application.dir/genelektra.c.o
[100%] Linking C executable application
[100%] Built target application
Mountpoint spec:/sw/example/econf/#0/current does not exist
Mountpoint user:/sw/example/econf/#0/current does not exist
root = false
Create a new key user:/sw/example/econf/#0/current/root with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/pattern with string "*.txt"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/size with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#0/eol with string "native"
Create a new key user:/sw/example/econf/#0/current/format/#0/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#0/trim with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#1/pattern with string "*.c"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/style with string "space"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#1/tabwidth with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#1/eol with string "lf"
Create a new key user:/sw/example/econf/#0/current/format/#1/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#1/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#2/pattern with string "*.cpp"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#2/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#2/eol with string "crlf"
Create a new key user:/sw/example/econf/#0/current/format/#2/charset with string "utf-16le"
Create a new key user:/sw/example/econf/#0/current/format/#2/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#2/eofnewline with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#2/linelength with string "80"
root = true
[*.txt]
indent_style = tab
indent_size = tab
tab_width = 4
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = true
max_line_length = 120
[*.c]
indent_style = space
indent_size = 8
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
[*.cpp]
indent_style = tab
indent_size = 8
tab_width = 4
end_of_line = crlf
charset = utf-16le
trim_trailing_whitespace = true
insert_final_newline = false
max_line_length = 80
Mountpoint user:/sw/example/econf/#0/current does not exist
Mountpoint spec:/sw/example/econf/#0/current does not exist
Mountpoint user:/sw/example/econf/#0/current does not exist
root = false
Create a new key user:/sw/example/econf/#0/current/root with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/pattern with string "*.txt"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/size with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#0/eol with string "native"
Create a new key user:/sw/example/econf/#0/current/format/#0/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#0/trim with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#1/pattern with string "*.c"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/style with string "space"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#1/tabwidth with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#1/eol with string "lf"
Create a new key user:/sw/example/econf/#0/current/format/#1/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#1/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#2/pattern with string "*.cpp"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#2/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#2/eol with string "crlf"
Create a new key user:/sw/example/econf/#0/current/format/#2/charset with string "utf-16le"
Create a new key user:/sw/example/econf/#0/current/format/#2/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#2/eofnewline with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#2/linelength with string "80"
root = true
[*.txt]
indent_style = tab
indent_size = tab
tab_width = 4
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = true
max_line_length = 120
[*.c]
indent_style = space
indent_size = 8
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
[*.cpp]
indent_style = tab
indent_size = 8
tab_width = 4
end_of_line = crlf
charset = utf-16le
trim_trailing_whitespace = true
insert_final_newline = false
max_line_length = 80
Mountpoint user:/sw/example/econf/#0/current does not exist
Testing build with pkgconfig
/usr/local/bin/kdb gen -F ni=../spec.ini highlevel spec:/sw/example/econf/#0/current genelektra
gcc ../src/application.c genelektra.c -std=c99 `pkg-config --cflags --libs elektra-codegen` -I. -o application -Wl,-rpath `pkg-config --variable=libdir elektra-codegen`
/bin/sh: gcc: not found
*** Error code 127
Stop.
make: stopped in /tmp/cirrus-ci-build/examples/codegen/econf/pkgconfig
error: could not build pkgconfig project
Mountpoint spec:/sw/example/econf/#0/current does not exist
Mountpoint user:/sw/example/econf/#0/current does not exist
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_econf: ./application: not found
error: application could not read default config (spec)
Create a new key user:/sw/example/econf/#0/current/root with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/pattern with string "*.txt"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/size with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#0/eol with string "native"
Create a new key user:/sw/example/econf/#0/current/format/#0/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#0/trim with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#1/pattern with string "*.c"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/style with string "space"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#1/tabwidth with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#1/eol with string "lf"
Create a new key user:/sw/example/econf/#0/current/format/#1/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#1/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#2/pattern with string "*.cpp"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#2/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#2/eol with string "crlf"
Create a new key user:/sw/example/econf/#0/current/format/#2/charset with string "utf-16le"
Create a new key user:/sw/example/econf/#0/current/format/#2/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#2/eofnewline with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#2/linelength with string "80"
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_econf: ./application: not found
error: application could not read test tree
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_econf: ./application: not found
error: application did not read test config correctly
Mountpoint user:/sw/example/econf/#0/current does not exist
Mountpoint spec:/sw/example/econf/#0/current does not exist
Mountpoint user:/sw/example/econf/#0/current does not exist
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_econf: ./application: not found
error: application could not read default config (spec)
Create a new key user:/sw/example/econf/#0/current/root with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/pattern with string "*.txt"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#0/indent/size with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#0/eol with string "native"
Create a new key user:/sw/example/econf/#0/current/format/#0/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#0/trim with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#0/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#0/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#1/pattern with string "*.c"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/style with string "space"
Create a new key user:/sw/example/econf/#0/current/format/#1/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#1/tabwidth with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#1/eol with string "lf"
Create a new key user:/sw/example/econf/#0/current/format/#1/charset with string "utf-8"
Create a new key user:/sw/example/econf/#0/current/format/#1/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/eofnewline with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#1/linelength with string "120"
Create a new key user:/sw/example/econf/#0/current/format/#2/pattern with string "*.cpp"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/style with string "tab"
Create a new key user:/sw/example/econf/#0/current/format/#2/indent/size with string "8"
Create a new key user:/sw/example/econf/#0/current/format/#2/tabwidth with string "4"
Create a new key user:/sw/example/econf/#0/current/format/#2/eol with string "crlf"
Create a new key user:/sw/example/econf/#0/current/format/#2/charset with string "utf-16le"
Create a new key user:/sw/example/econf/#0/current/format/#2/trim with string "1"
Create a new key user:/sw/example/econf/#0/current/format/#2/eofnewline with string "0"
Create a new key user:/sw/example/econf/#0/current/format/#2/linelength with string "80"
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_econf: ./application: not found
error: application could not read test tree
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_econf: ./application: not found
error: application did not read test config correctly
Mountpoint user:/sw/example/econf/#0/current does not exist
rm -f genelektra.c
rm -f genelektra.h
rm -f genelektra.mount.sh
rm -f application
check_external_example_codegen_econf RESULTS: 17 test(s) done 7 error(s).
error: check_external_example_codegen_econf
Running check_external_example_codegen_menu
ELEKTRA CHECK EXTERNAL
/usr/local/bin/pkg-config
Check if script tests the correct version
Testing build with cmake
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Elektra 0.9.11 found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/cirrus-ci-build/examples/codegen/menu/build
[ 25%] Generating genelektra.c, genelektra.h, genelektra.mount.sh
[ 50%] Building C object CMakeFiles/application.dir/tmp/cirrus-ci-build/examples/codegen/menu/src/application.c.o
[ 75%] Building C object CMakeFiles/application.dir/genelektra.c.o
[100%] Linking C executable application
[100%] Built target application
Mountpoint spec:/sw/example/menu/#0/current does not exist
Mountpoint /sw/example/menu/#0/current does not exist
Did not find any key
Did not find any key
no menu found
Create a new key user:/sw/example/menu/#0/current/menu/#0/name with string "Main Menu"
Create a new key user:/sw/example/menu/#0/current/menu/#1/name with string "Menu 1"
Create a new key user:/sw/example/menu/#0/current/menu/#2/name with string "Menu 2"
Create a new key user:/sw/example/menu/#0/current/menu/#3/name with string "Menu 2.1"
Create a new key user:/sw/example/menu/#0/current/menu/#4/name with string "Menu 2.2"
Create a new key user:/sw/example/menu/#0/current/menu/#1/command with string "echo "Hello from Menu 1""
Create a new key user:/sw/example/menu/#0/current/menu/#2/command with string "echo "Hello from Menu 2""
Create a new key user:/sw/example/menu/#0/current/menu/#3/command with string "echo "Hello from Menu 2.1""
Create a new key user:/sw/example/menu/#0/current/menu/#4/command with string "echo "Hello from Menu 2.2""
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#0 with string "@/menu/#1"
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#1 with string "@/menu/#2"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#0 with string "@/menu/#3"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#1 with string "@/menu/#4"
Create a new key user:/sw/example/menu/#0/current/main with string "@/menu/#0"
Main Menu:
  [1] Menu 1
  [2] Menu 2
Please select what to do (Ctrl-D = quit): 
Mountpoint spec:/sw/example/menu/#0/current does not exist
Mountpoint /sw/example/menu/#0/current does not exist
Did not find any key
Did not find any key
no menu found
Create a new key user:/sw/example/menu/#0/current/menu/#0/name with string "Main Menu"
Create a new key user:/sw/example/menu/#0/current/menu/#1/name with string "Menu 1"
Create a new key user:/sw/example/menu/#0/current/menu/#2/name with string "Menu 2"
Create a new key user:/sw/example/menu/#0/current/menu/#3/name with string "Menu 2.1"
Create a new key user:/sw/example/menu/#0/current/menu/#4/name with string "Menu 2.2"
Create a new key user:/sw/example/menu/#0/current/menu/#1/command with string "echo "Hello from Menu 1""
Create a new key user:/sw/example/menu/#0/current/menu/#2/command with string "echo "Hello from Menu 2""
Create a new key user:/sw/example/menu/#0/current/menu/#3/command with string "echo "Hello from Menu 2.1""
Create a new key user:/sw/example/menu/#0/current/menu/#4/command with string "echo "Hello from Menu 2.2""
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#0 with string "@/menu/#1"
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#1 with string "@/menu/#2"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#0 with string "@/menu/#3"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#1 with string "@/menu/#4"
Create a new key user:/sw/example/menu/#0/current/main with string "@/menu/#0"
Main Menu:
  [1] Menu 1
  [2] Menu 2
Please select what to do (Ctrl-D = quit): 
Testing build with pkgconfig
/usr/local/bin/kdb gen -F ni=../spec.ini highlevel spec:/sw/example/menu/#0/current genelektra
gcc ../src/application.c genelektra.c -std=c99 `pkg-config --cflags --libs elektra-codegen` -I. -o application -Wl,-rpath `pkg-config --variable=libdir elektra-codegen`
/bin/sh: gcc: not found
*** Error code 127
Stop.
make: stopped in /tmp/cirrus-ci-build/examples/codegen/menu/pkgconfig
error: could not build pkgconfig project
Mountpoint spec:/sw/example/menu/#0/current does not exist
Mountpoint /sw/example/menu/#0/current does not exist
Did not find any key
Did not find any key
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
error: application could not read default config (spec)
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
error: application didn't read empty menu correctly
Create a new key user:/sw/example/menu/#0/current/menu/#0/name with string "Main Menu"
Create a new key user:/sw/example/menu/#0/current/menu/#1/name with string "Menu 1"
Create a new key user:/sw/example/menu/#0/current/menu/#2/name with string "Menu 2"
Create a new key user:/sw/example/menu/#0/current/menu/#3/name with string "Menu 2.1"
Create a new key user:/sw/example/menu/#0/current/menu/#4/name with string "Menu 2.2"
Create a new key user:/sw/example/menu/#0/current/menu/#1/command with string "echo "Hello from Menu 1""
Create a new key user:/sw/example/menu/#0/current/menu/#2/command with string "echo "Hello from Menu 2""
Create a new key user:/sw/example/menu/#0/current/menu/#3/command with string "echo "Hello from Menu 2.1""
Create a new key user:/sw/example/menu/#0/current/menu/#4/command with string "echo "Hello from Menu 2.2""
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#0 with string "@/menu/#1"
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#1 with string "@/menu/#2"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#0 with string "@/menu/#3"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#1 with string "@/menu/#4"
Create a new key user:/sw/example/menu/#0/current/main with string "@/menu/#0"
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
error: application could not read test menu
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
--- /tmp/tmp.41tjdJLD	2022-10-12 21:04:29.139997000 +0000
+++ /tmp/tmp.GswOOl0A	2022-10-12 21:04:29.295504000 +0000
@@ -1,7 +0,0 @@
-Main Menu:
-
-  [1] Menu 1
-  [2] Menu 2
-
-Please select what to do (Ctrl-D = quit): 
-
error: application did not read test menu correctly
Mountpoint spec:/sw/example/menu/#0/current does not exist
Mountpoint /sw/example/menu/#0/current does not exist
Did not find any key
Did not find any key
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
error: application could not read default config (spec)
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
error: application didn't read empty menu correctly
Create a new key user:/sw/example/menu/#0/current/menu/#0/name with string "Main Menu"
Create a new key user:/sw/example/menu/#0/current/menu/#1/name with string "Menu 1"
Create a new key user:/sw/example/menu/#0/current/menu/#2/name with string "Menu 2"
Create a new key user:/sw/example/menu/#0/current/menu/#3/name with string "Menu 2.1"
Create a new key user:/sw/example/menu/#0/current/menu/#4/name with string "Menu 2.2"
Create a new key user:/sw/example/menu/#0/current/menu/#1/command with string "echo "Hello from Menu 1""
Create a new key user:/sw/example/menu/#0/current/menu/#2/command with string "echo "Hello from Menu 2""
Create a new key user:/sw/example/menu/#0/current/menu/#3/command with string "echo "Hello from Menu 2.1""
Create a new key user:/sw/example/menu/#0/current/menu/#4/command with string "echo "Hello from Menu 2.2""
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#0 with string "@/menu/#1"
Create a new key user:/sw/example/menu/#0/current/menu/#0/children/#1 with string "@/menu/#2"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#0 with string "@/menu/#3"
Create a new key user:/sw/example/menu/#0/current/menu/#2/children/#1 with string "@/menu/#4"
Create a new key user:/sw/example/menu/#0/current/main with string "@/menu/#0"
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
error: application could not read test menu
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_menu: ./application: not found
--- /tmp/tmp.g02YJu1K	2022-10-12 21:04:29.399863000 +0000
+++ /tmp/tmp.rCM8xDR8	2022-10-12 21:04:29.540818000 +0000
@@ -1,7 +0,0 @@
-Main Menu:
-
-  [1] Menu 1
-  [2] Menu 2
-
-Please select what to do (Ctrl-D = quit): 
-
error: application did not read test menu correctly
rm -f genelektra.c
rm -f genelektra.h
rm -f genelektra.mount.sh
rm -f application
check_external_example_codegen_menu RESULTS: 21 test(s) done 9 error(s).
error: check_external_example_codegen_menu
Running check_external_example_codegen_tree
ELEKTRA CHECK EXTERNAL CODEGEN TREE
/usr/local/bin/pkg-config
Check if script tests the correct version
Testing build with cmake
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Elektra 0.9.11 found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/cirrus-ci-build/examples/codegen/tree/build
[ 25%] Generating genelektra.c, genelektra.h, genelektra.mount.sh
[ 50%] Building C object CMakeFiles/application.dir/tmp/cirrus-ci-build/examples/codegen/tree/src/application.c.o
[ 75%] Building C object CMakeFiles/application.dir/genelektra.c.o
[100%] Linking C executable application
[100%] Built target application
Mountpoint spec:/sw/example/tree/#0/current does not exist
Mountpoint /sw/example/tree/#0/current does not exist
Did not find any key
Did not find any key
(empty)
Create a new key user:/sw/example/tree/#0/current/tree/root with string ""
Create a new key user:/sw/example/tree/#0/current/tree/root/text with string "root"
Create a new key user:/sw/example/tree/#0/current/tree/child1 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child1/text with string "child1"
Create a new key user:/sw/example/tree/#0/current/tree/child2 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child2/text with string "child2"
Create a new key user:/sw/example/tree/#0/current/tree/child4 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child4/text with string "child4"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/text with string "grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/leafA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafA/text with string "leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/text with string "grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/leafB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafB/text with string "leafB"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#0 with string "../../../child1"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#1 with string "../../../child2"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#3 with string "../../../child4"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#0 with string "../../../grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#1 with string "../../../grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/children/#0 with string "../../../leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/children/#0 with string "../../../leafB"
Create a new key user:/sw/example/tree/#0/current/root with string "../tree/root"
root
  child1
  child2
  (empty)
  child4
    grandchildA
      leafA
    grandchildB
      leafB
Mountpoint spec:/sw/example/tree/#0/current does not exist
Mountpoint /sw/example/tree/#0/current does not exist
Did not find any key
Did not find any key
(empty)
Create a new key user:/sw/example/tree/#0/current/tree/root with string ""
Create a new key user:/sw/example/tree/#0/current/tree/root/text with string "root"
Create a new key user:/sw/example/tree/#0/current/tree/child1 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child1/text with string "child1"
Create a new key user:/sw/example/tree/#0/current/tree/child2 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child2/text with string "child2"
Create a new key user:/sw/example/tree/#0/current/tree/child4 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child4/text with string "child4"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/text with string "grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/leafA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafA/text with string "leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/text with string "grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/leafB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafB/text with string "leafB"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#0 with string "../../../child1"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#1 with string "../../../child2"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#3 with string "../../../child4"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#0 with string "../../../grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#1 with string "../../../grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/children/#0 with string "../../../leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/children/#0 with string "../../../leafB"
Create a new key user:/sw/example/tree/#0/current/root with string "../tree/root"
root
  child1
  child2
  (empty)
  child4
    grandchildA
      leafA
    grandchildB
      leafB
Testing build with pkgconfig
/usr/local/bin/kdb gen -F ni=../spec.ini highlevel spec:/sw/example/tree/#0/current genelektra
gcc ../src/application.c genelektra.c -std=c99 `pkg-config --cflags --libs elektra-codegen` -I. -o application -Wl,-rpath `pkg-config --variable=libdir elektra-codegen`
/bin/sh: gcc: not found
*** Error code 127
Stop.
make: stopped in /tmp/cirrus-ci-build/examples/codegen/tree/pkgconfig
error: could not build pkgconfig project
Mountpoint spec:/sw/example/tree/#0/current does not exist
Mountpoint /sw/example/tree/#0/current does not exist
Did not find any key
Did not find any key
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application could not read default config (spec)
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application didn't read empty tree correctly
Create a new key user:/sw/example/tree/#0/current/tree/root with string ""
Create a new key user:/sw/example/tree/#0/current/tree/root/text with string "root"
Create a new key user:/sw/example/tree/#0/current/tree/child1 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child1/text with string "child1"
Create a new key user:/sw/example/tree/#0/current/tree/child2 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child2/text with string "child2"
Create a new key user:/sw/example/tree/#0/current/tree/child4 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child4/text with string "child4"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/text with string "grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/leafA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafA/text with string "leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/text with string "grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/leafB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafB/text with string "leafB"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#0 with string "../../../child1"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#1 with string "../../../child2"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#3 with string "../../../child4"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#0 with string "../../../grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#1 with string "../../../grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/children/#0 with string "../../../leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/children/#0 with string "../../../leafB"
Create a new key user:/sw/example/tree/#0/current/root with string "../tree/root"
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application could not read test tree
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application did not read test tree correctly
Mountpoint spec:/sw/example/tree/#0/current does not exist
Mountpoint /sw/example/tree/#0/current does not exist
Did not find any key
Did not find any key
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application could not read default config (spec)
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application didn't read empty tree correctly
Create a new key user:/sw/example/tree/#0/current/tree/root with string ""
Create a new key user:/sw/example/tree/#0/current/tree/root/text with string "root"
Create a new key user:/sw/example/tree/#0/current/tree/child1 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child1/text with string "child1"
Create a new key user:/sw/example/tree/#0/current/tree/child2 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child2/text with string "child2"
Create a new key user:/sw/example/tree/#0/current/tree/child4 with string ""
Create a new key user:/sw/example/tree/#0/current/tree/child4/text with string "child4"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/text with string "grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/leafA with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafA/text with string "leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/text with string "grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/leafB with string ""
Create a new key user:/sw/example/tree/#0/current/tree/leafB/text with string "leafB"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#0 with string "../../../child1"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#1 with string "../../../child2"
Create a new key user:/sw/example/tree/#0/current/tree/root/children/#3 with string "../../../child4"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#0 with string "../../../grandchildA"
Create a new key user:/sw/example/tree/#0/current/tree/child4/children/#1 with string "../../../grandchildB"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildA/children/#0 with string "../../../leafA"
Create a new key user:/sw/example/tree/#0/current/tree/grandchildB/children/#0 with string "../../../leafB"
Create a new key user:/sw/example/tree/#0/current/root with string "../tree/root"
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application could not read test tree
/usr/local/lib/elektra/tool_exec/check_external_example_codegen_tree: ./application: not found
error: application did not read test tree correctly
rm -f genelektra.c
rm -f genelektra.h
rm -f genelektra.mount.sh
rm -f application
check_external_example_codegen_tree RESULTS: 21 test(s) done 9 error(s).
error: check_external_example_codegen_tree
Running check_external_example_highlevel
ELEKTRA CHECK EXTERNAL HIGHLEVEL
/usr/local/bin/pkg-config
Check if script tests the correct version
Testing build with cmake
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Elektra 0.9.11 found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/cirrus-ci-build/examples/highlevel/build
[ 50%] Building C object CMakeFiles/application.dir/application.c.o
[100%] Linking C executable application
[100%] Built target application
Mountpoint spec:/sw/example/highlevel/#0/current does not exist
Mountpoint /sw/example/highlevel/#0/current does not exist
Did not find any key
Did not find any key
successfully read configuration
Create a new key user:/sw/example/highlevel/#0/current/mystring with string "Hello World"
Create a new key user:/sw/example/highlevel/#0/current/myint with string "29"
Create a new key user:/sw/example/highlevel/#0/current/mydouble with string "4.4242"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#0 with string "3.14"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#1 with string "15"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#2 with string "9265.359"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#3 with string "2.718282"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#4 with string "1.4142"
successfully read configuration
Create a new key user:/sw/example/highlevel/#0/current/print with string "1"
successfully read configuration
mystring: Hello World
myint: 29
mydouble: 4.424200
sizeof(myfloatarray): 5
myfloatarray[0]: 3.140000
myfloatarray[1]: 15.000000
myfloatarray[2]: 9265.359375
myfloatarray[3]: 2.718282
myfloatarray[4]: 1.414200
mystring: Hello World
myint: 29
mydouble: 4.424200
sizeof(myfloatarray): 5
myfloatarray[0]: 3.140000
myfloatarray[1]: 15.000000
myfloatarray[2]: 9265.359375
myfloatarray[3]: 2.718282
myfloatarray[4]: 1.414200
Mountpoint spec:/sw/example/highlevel/#0/current does not exist
Mountpoint /sw/example/highlevel/#0/current does not exist
Did not find any key
Did not find any key
successfully read configuration
Create a new key user:/sw/example/highlevel/#0/current/mystring with string "Hello World"
Create a new key user:/sw/example/highlevel/#0/current/myint with string "29"
Create a new key user:/sw/example/highlevel/#0/current/mydouble with string "4.4242"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#0 with string "3.14"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#1 with string "15"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#2 with string "9265.359"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#3 with string "2.718282"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#4 with string "1.4142"
successfully read configuration
Create a new key user:/sw/example/highlevel/#0/current/print with string "1"
successfully read configuration
mystring: Hello World
myint: 29
mydouble: 4.424200
sizeof(myfloatarray): 5
myfloatarray[0]: 3.140000
myfloatarray[1]: 15.000000
myfloatarray[2]: 9265.359375
myfloatarray[3]: 2.718282
myfloatarray[4]: 1.414200
mystring: Hello World
myint: 29
mydouble: 4.424200
sizeof(myfloatarray): 5
myfloatarray[0]: 3.140000
myfloatarray[1]: 15.000000
myfloatarray[2]: 9265.359375
myfloatarray[3]: 2.718282
myfloatarray[4]: 1.414200
Testing build with pkgconfig
gcc application.c `pkg-config --cflags --libs elektra-highlevel` -o application -Wl,-rpath `pkg-config --variable=libdir elektra-highlevel`
/bin/sh: gcc: not found
*** Error code 127
Stop.
make: stopped in /tmp/cirrus-ci-build/examples/highlevel/pkgconfig
error: could not build pkgconfig project
Mountpoint spec:/sw/example/highlevel/#0/current does not exist
Mountpoint /sw/example/highlevel/#0/current does not exist
Did not find any key
Did not find any key
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application could not read default config (spec)
Create a new key user:/sw/example/highlevel/#0/current/mystring with string "Hello World"
Create a new key user:/sw/example/highlevel/#0/current/myint with string "29"
Create a new key user:/sw/example/highlevel/#0/current/mydouble with string "4.4242"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#0 with string "3.14"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#1 with string "15"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#2 with string "9265.359"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#3 with string "2.718282"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#4 with string "1.4142"
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application could not read changed config
Create a new key user:/sw/example/highlevel/#0/current/print with string "1"
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application could not read changed config
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print mystring
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myint
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print mydouble
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print size of myfloatarray
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[0]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[1]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[2]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[3]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[4]
Mountpoint spec:/sw/example/highlevel/#0/current does not exist
Mountpoint /sw/example/highlevel/#0/current does not exist
Did not find any key
Did not find any key
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application could not read default config (spec)
Create a new key user:/sw/example/highlevel/#0/current/mystring with string "Hello World"
Create a new key user:/sw/example/highlevel/#0/current/myint with string "29"
Create a new key user:/sw/example/highlevel/#0/current/mydouble with string "4.4242"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#0 with string "3.14"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#1 with string "15"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#2 with string "9265.359"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#3 with string "2.718282"
Create a new key user:/sw/example/highlevel/#0/current/myfloatarray/#4 with string "1.4142"
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application could not read changed config
Create a new key user:/sw/example/highlevel/#0/current/print with string "1"
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application could not read changed config
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print mystring
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myint
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print mydouble
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print size of myfloatarray
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[0]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[1]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[2]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[3]
/usr/local/lib/elektra/tool_exec/check_external_example_highlevel: ./application: not found
error: application did not print myfloatarray[4]
rm: application: No such file or directory
check_external_example_highlevel RESULTS: 53 test(s) done 25 error(s).
error: check_external_example_highlevel

and

Following test cases failed: 
check_external_example
check_external_example_codegen_econf
check_external_example_codegen_menu
check_external_example_codegen_tree
check_external_example_highlevel

But I am not able why this problem only exist on this branch and not on the master. I cannot see anything related to the xfconf plugin. The only problem seems to be the missing gcc command.

eiskasten avatar Oct 19 '22 20:10 eiskasten

I don't think this really can be related to xfconf. If you look at the logs of the "main" step for the failing "FreeBSD 13" job on Cirrus you can see that the xfconf plugin isn't even included:

-- Could NOT find Xfconf (missing: XFCONF_INCLUDE_DIR) 
-- Exclude plugin xfconf because libxfconf not found

This doesn't answer why the job fails, but I'm pretty sure it is not related to xfconf. Interestingly, AFAICT gcc is not installed as part of the install_script in the Cirrus config

https://github.com/ElektraInitiative/libelektra/blob/cf4b6f303432dbfdcb9cc222c84f41045962b211/.cirrus.yml#L49-L62

Maybe just adding it will fix this. It doesn't explain why it works on master, but if it works it doesn't really matter.

Even better would be to use the same compiler in the tests that we use to actually compile Elektra (so clang in this case). You should be able to use the CMAKE_C_COMPILER from CMake to find the compiler that is used. The test testscr_check_gen already uses this (via e.g. tests/shell/gen/highlevel/simple.check.sh).

An easy way to keep the scripts also working as an example would be using $(CC) in the Makefiles and setting the CC env-var from the test scripts to the value of CMAKE_C_COMPILER.

kodebach avatar Oct 19 '22 21:10 kodebach

This doesn't answer why the job fails, but I'm pretty sure it is not related to xfconf. Interestingly, AFAICT gcc is not installed as part of the install_script in the Cirrus config

https://github.com/ElektraInitiative/libelektra/blob/cf4b6f303432dbfdcb9cc222c84f41045962b211/.cirrus.yml#L49-L62

Maybe just adding it will fix this. It doesn't explain why it works on master, but if it works it doesn't really matter.

Sadly, this does not work because FreeBSD installs the gcc binary as gcc12 but the gcc binary is required in the path. So, I have to get your second option to work. I already tinkered around with that but I was not able to get it to work. Just adding -DCMAKE_C_COMPILER="@CMAKE_C_COMPILER@ to the cmake commands in

  • tests/shell/external/example.sh
  • tests/shell/external/example_codegen_econf.sh
  • tests/shell/external/example_codegen_econf.sh
  • tests/shell/external/example_codegen_menu.sh
  • tests/shell/external/example_codegen_tree.sh
  • tests/shell/external/example_highlevel.sh

does not make FreeBSD to use clang instead of gcc.

eiskasten avatar Nov 01 '22 19:11 eiskasten

I looked at this again, and I think we just need to replace gcc with $(CC) in these palces:

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/external/pkgconfig/Makefile#L2

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/highlevel/pkgconfig/Makefile#L2

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/codegen/econf/pkgconfig/Makefile#L4

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/codegen/tree/pkgconfig/Makefile#L4

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/codegen/menu/pkgconfig/Makefile#L4

kodebach avatar Nov 02 '22 11:11 kodebach

I looked at this again, and I think we just need to replace gcc with $(CC) in these palces:

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/external/pkgconfig/Makefile#L2

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/highlevel/pkgconfig/Makefile#L2

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/codegen/econf/pkgconfig/Makefile#L4

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/codegen/tree/pkgconfig/Makefile#L4

https://github.com/ElektraInitiative/libelektra/blob/2c8a630bb0ad6cb51342d1d1795f762bd4bfff5c/examples/codegen/menu/pkgconfig/Makefile#L4

Replacing the gcc in these files works. Thank you very much!

eiskasten avatar Nov 03 '22 17:11 eiskasten

I am now able to build this plugin on FreeBSD systems too. Unfortunately, I am not able to pass tests related to the plugin, the CI still fails on all FreeBSD machines. However, I am able to reproduce the problem on my local FreeBSD machine:

If I run ./bin/testmod_xfconf within the build directory, the output of the FreeBSD machine is:

XFCONF     TESTS
==================

test basics
There are 10 warnings
#0/configfile: 
#0/description: Plugin Misbehavior
#0/file: /home/richi/libelektra/src/libs/elektra/plugin.c
#0/line: 103
#0/module: kdb
#0/mountpoint: /
#0/number: C01330
#0/reason: Open of plugin returned unsuccessfully: xfconf. Reason contains plugin, see other warnings for details

/home/richi/libelektra/src/plugins/xfconf/testmod_xfconf.c:23: error in test_basics: warnings in kdbOpen for plugin xfconf
/home/richi/libelektra/src/plugins/xfconf/testmod_xfconf.c:23: fatal in test_basics: could not open xfconf plugin

where the mentioned line 23 says: succeed_if (plugin->kdbOpen (plugin, parentKey) == ELEKTRA_PLUGIN_STATUS_SUCCESS, "call to kdbOpen was not successful"); .

Which tells me there happens something strange during the kdbOpen but what can that be?

However, this does not happen on linux machines, they just print:

XFCONF     TESTS
==================

test basics

testmod_xfconf Results: 11 Tests done — 0 errors.

I have checked if any library is missing but ldd ./bin/testmod_xfconf is able to locate everything. Do you have a clue or a tip, how I can debug this?

eiskasten avatar Nov 17 '22 17:11 eiskasten

Do you have a clue or a tip, how I can debug this?

There is only one path in through which elektraXfconfOpen can fail. That is, if xfconf_init returns zero/false. Could easily be that the behaviour of this function is different on Linux and FreeBSD.

kodebach avatar Nov 17 '22 18:11 kodebach

Thank you, I added this call. Now I know that it is a dbus related problem: Cannot spawn a message bus without a machine-id: Unable to load /var/lib/dbus/machine-id or /etc/machine-id: Failed to open file “/var/lib/dbus/machine-id”: No such file or directory. I will investiagate on this.

eiskasten avatar Nov 18 '22 09:11 eiskasten

The error message in this line says:

application.c `pkg-config --cflags --libs elektra` -o application -Wl,-rpath `pkg-config --variable=libdir elektra`
/bin/sh: application.c: command not found
make: *** [application] Error 127

So I would assume that the CC environment variable is not set and $(CC) application.c becomes just application.c.

Try setting it in the CI config file to the same value that is used for CMAKE_C_COMPILER.

kodebach avatar Nov 23 '22 10:11 kodebach

The error message in this line says:

application.c `pkg-config --cflags --libs elektra` -o application -Wl,-rpath `pkg-config --variable=libdir elektra`
/bin/sh: application.c: command not found
make: *** [application] Error 127

So I would assume that the CC environment variable is not set and $(CC) application.c becomes just application.c.

Try setting it in the CI config file to the same value that is used for CMAKE_C_COMPILER.

Thank you, I already figured it out. It was due to the missing realpath command. It works now.

eiskasten avatar Nov 23 '22 10:11 eiskasten

jenkins build libelektra please

eiskasten avatar Nov 28 '22 23:11 eiskasten

jenkins build libelektra please

eiskasten avatar Nov 29 '22 09:11 eiskasten

jenkins build libelektra please

eiskasten avatar Dec 17 '22 16:12 eiskasten