openbmc / bmcweb

A do everything Redfish, KVM, GUI, and DBus webserver for OpenBMC
Apache License 2.0
156 stars 131 forks source link

subprojects dependencies (boost/boost-url/sdbus++) never found on centos 8 #171

Closed frsauvage closed 3 years ago

frsauvage commented 3 years ago

Hi,

I cannot figure out how to install bmcweb on a centos 8. I found a new meson.build with an explicit boost >= 1.73 compatibility so question : is bmcweb now compatible with boost >= 1.73 (as well as crow ?) ??

So I tried to put boost -1.73) and boost-url (from wrap file) in subprojects :

boost

-->download/untar file
./bootstrap.sh
./b2
--> OK

boost-url

cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/gcc.cmake
--> OK

image

sdbusplus dependency = libsystemd and I installed it:

image

I cannot build crow on Centos8.

Best regards, .. Francine

williamspatrick commented 3 years ago

sdbusplus (https://github.com/openbmc/sdbusplus) appears to be a dependency and automatic subproject of bmcweb. That project also needs boost but seems to not be finding it with this recursive setup you have. We may need a boost.wrap in that project also? Generally, sdbusplus treats boost as an optional dependency but I think that bmcweb requires the boost components of it.

edtanous commented 3 years ago

I cannot figure out how to install bmcweb on a centos 8.

This isn't a use case that I've heard of, and in general bmcweb only supports installation on a bmc through Yocto.

With that said, can you talk a little about your use case, and maybe we can suggest an easier solution for you.

frsauvage commented 3 years ago

Thank a lot for all your answer @edtanous : Use case. I need to develop extensions/plugins/add-ons on bmcweb and it would be much easier if I can do it on centos8. I am used to develop/debug with Visual code, with completion help. As it does not compile, I have no completion, and no debug mode. Some extensions are not os-dependant. Like zeroconf, I cant develop an extension and test it directly on centos8 before installing it through yocto on a target environment. It would be an easy way to decrease development life-cycle. @williamspatrick : I cannot figure out why sdbus++.wrap and boost.wrap do not work. I agree with you, it should be automatic. I just clone bmcweb git.

Best regards, ..Francine

edtanous commented 3 years ago

Thank a lot for all your answer @edtanous : Use case. I need to develop extensions/plugins/add-ons on bmcweb and it would be much easier if I can do it on centos8.

Considering bmcweb is intended for use on bmcs, rmcs, and other yocto driven builds, it's unlikely we'd be able to support centos8 properly. With that said if this is something you're interested in (turning bmcweb into a general purpose redfish application) feel free to push a design doc with what you're looking for.

I am used to develop/debug with Visual code, with completion help. As it does not compile, I have no completion, and no debug mode.

I use vs code as well. Use devtool modify bmcweb to put bmcweb in yocto modification mode, then point vs code at the compile_commands.json in build/workspace/bmcweb/oe-workdir/bmcweb-/compile_commands.json After that, autocomplete works great.

Regardless, to send patches to upstream, you'll need to test in a more realistic environment. I'd recommend qemu if you don't have a real system to load it on.

Some extensions are not os-dependant. Like zeroconf,

Zeroconf in bmcweb would be an odd addition to bmcweb. Do you have a use case you're hoping to use it for?

I cant develop an extension and test it directly on centos8 before installing it through yocto on a target environment. It would be an easy way to decrease development life-cycle.

Agreed; This is precisely what the docker container is for, and why bmcweb boots without needing to be installed. Your question specifically asked about installation, so I assumed you were using it, but bmcweb works fine when run out of docker, which significantly decreases the build/test cycles.

If the above doesn't meet your use case, please let us know, but keep in mind, you're doing something relatively out of the ordinary.

frsauvage commented 3 years ago
I use vs code as well. Use devtool modify bmcweb to put bmcweb in yocto modification mode, then point vs code at the compile_commands.json in build/workspace/bmcweb/oe-workdir/bmcweb-/compile_commands.json
After that, autocomplete works great.

OK, I will try that way, thank a lot @edtanous I close it, I am border line, I know.