<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/OpenBmc/bmcweb.git/include/google, branch master</title>
<subtitle>A do everything Redfish, KVM, GUI, and DBus webserver for OpenBMC (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/'/>
<updated>2025-06-27T20:20:39+00:00</updated>
<entry>
<title>Rearrange features</title>
<updated>2025-06-27T20:20:39+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>etanous@nvidia.com</email>
</author>
<published>2024-09-23T21:51:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=3b28fa2b201513be89807dfb76b47b3ca7ee3f9b'/>
<id>urn:sha1:3b28fa2b201513be89807dfb76b47b3ca7ee3f9b</id>
<content type='text'>
The backends are different things compared to generic code.  Today,
these are all included in the /include folder, but it's not very clear
what options control which backends, or how things map together.  This
also means that we can't separate ownership between the various
companies.

This commit is a proposal to try to create a features folder,
separated by the code for the various backends, to make interacting
with this easier.  It takes the form

features/&lt;option name&gt;/files.hpp
features/&lt;option name&gt;/files_test.hpp

Note, redfish-core was already at top level, and contains lots of code,
so to prevent lots of conflicts, it's simply symlinked into that folder
to make clear that it is a backend, but not to move the implementation
and cause code conflicts.

Tested: Unit tests pass.  Code compiles.

Change-Id: Idcc80ffcfd99c876734ee41d53f894ca5583fed5
Signed-off-by: Ed Tanous &lt;etanous@nvidia.com&gt;
</content>
</entry>
<entry>
<title>Add async_method_call to utility</title>
<updated>2025-04-10T19:52:32+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>etanous@nvidia.com</email>
</author>
<published>2025-02-14T23:16:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=177612aaa0633cf9d5aef0b763a43135cf552d9b'/>
<id>urn:sha1:177612aaa0633cf9d5aef0b763a43135cf552d9b</id>
<content type='text'>
Adding async_method_call in dbus utility gives us a place where we can
intercept method call requests from dbus to potentially add
logging/caching.

An example of logging is in the later commit:
https://gerrit.openbmc.org/c/openbmc/bmcweb/+/78265/

We already do this for setProperty, this moves the method calls to
follow a similar pattern.

Tested: Redfish service validator passes.

Change-Id: I6d2c96e2b6b6a023ed2138106a55faebca161592
Signed-off-by: Ed Tanous &lt;etanous@nvidia.com&gt;
</content>
</entry>
<entry>
<title>clang-format: update latest spec and reformat</title>
<updated>2025-02-04T20:09:52+00:00</updated>
<author>
<name>Patrick Williams</name>
<email>patrick@stwcx.xyz</email>
</author>
<published>2025-02-03T19:29:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=504af5a0568171b72caf13234cc81380b261fa21'/>
<id>urn:sha1:504af5a0568171b72caf13234cc81380b261fa21</id>
<content type='text'>
Copy the latest format file from the docs repository and apply.

Change-Id: I2f0b9d0fb6e01ed36a2f34c750ba52de3b6d15d1
Signed-off-by: Patrick Williams &lt;patrick@stwcx.xyz&gt;
</content>
</entry>
<entry>
<title>Fix includes</title>
<updated>2025-01-31T18:11:36+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>etanous@nvidia.com</email>
</author>
<published>2025-01-28T23:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=d78572018fc2022091ff8b8eb5a7fef2172ba3d6'/>
<id>urn:sha1:d78572018fc2022091ff8b8eb5a7fef2172ba3d6</id>
<content type='text'>
Clang-tidy misc-include-cleaner appears to now be enforcing
significantly more headers than previously.  That is overall a good
thing, but forces us to fix some issues.  This commit is largely just
taking the clang-recommended fixes and checking them in.  Subsequent
patches will fix the more unique issues.

Note, that a number of new ignores are added into the .clang-tidy file.
These can be cleaned up over time as they're understood.  The majority
are places where boost includes a impl/x.hpp and x.hpp, but expects you
to use the later.  include-cleaner opts for the impl, but it isn't clear
why.

Change-Id: Id3fdd7ee6df6c33b2fd35626898523048dd51bfb
Signed-off-by: Ed Tanous &lt;etanous@nvidia.com&gt;
Signed-off-by: Gunnar Mills &lt;gmills@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>Use SPDX identifiers</title>
<updated>2025-01-20T18:44:54+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>etanous@nvidia.com</email>
</author>
<published>2024-09-10T20:50:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=40e9b92ec19acffb46f83a6e55b18974da5d708e'/>
<id>urn:sha1:40e9b92ec19acffb46f83a6e55b18974da5d708e</id>
<content type='text'>
SPDX identifiers are simpler, and reduce the amount of cruft we have in
code files.  They are recommended by linux foundation, and therefore we
should do as they allow.

This patchset does not intend to modify any intent on any existing
copyrights or licenses, only to standardize their inclusion.

[1] https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects

Change-Id: I935c7c0156caa78fc368c929cebd0f068031e830
Signed-off-by: Ed Tanous &lt;etanous@nvidia.com&gt;
</content>
</entry>
<entry>
<title>clang-format: re-format for clang-18</title>
<updated>2024-08-17T00:19:54+00:00</updated>
<author>
<name>Patrick Williams</name>
<email>patrick@stwcx.xyz</email>
</author>
<published>2024-08-16T19:22:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=bd79bce8c3f1deb1fb2773868b9ece25233cf27b'/>
<id>urn:sha1:bd79bce8c3f1deb1fb2773868b9ece25233cf27b</id>
<content type='text'>
clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version.  The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: Iceec1dc95b6c908ec6c21fb40093de9dd18bf11a
Signed-off-by: Patrick Williams &lt;patrick@stwcx.xyz&gt;
</content>
</entry>
<entry>
<title>Fix moves/forward</title>
<updated>2024-04-07T18:09:42+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>ed@tanous.net</email>
</author>
<published>2024-03-27T23:31:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=8cb2c024c4625e2fe2f0b107a865faffcd4bb770'/>
<id>urn:sha1:8cb2c024c4625e2fe2f0b107a865faffcd4bb770</id>
<content type='text'>
Clang has new checks for std::move/std::forward correctness, which
catches quite a few "wrong" things where we were making copies of
callback handlers.

Unfortunately, the lambda syntax of

callback{std::forward&lt;Callback&gt;(callback)}

in a capture confuses it, so change usages to
callback = std::forward&lt;Callback&gt;(callback)

to be consistent.

Tested: Redfish service validator passes.

Change-Id: I7a111ec00cf78ecb7d5f5b102c786c1c14d74384
Signed-off-by: Ed Tanous &lt;ed@tanous.net&gt;
</content>
</entry>
<entry>
<title>clang-format: copy latest and re-format</title>
<updated>2023-10-24T18:17:16+00:00</updated>
<author>
<name>Patrick Williams</name>
<email>patrick@stwcx.xyz</email>
</author>
<published>2023-10-20T16:20:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=5a39f77a17fa28911c87caea1e2903c059e7ec41'/>
<id>urn:sha1:5a39f77a17fa28911c87caea1e2903c059e7ec41</id>
<content type='text'>
clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: I2f9540cf0d545a2da4d6289fc87b754f684bc9a7
Signed-off-by: Patrick Williams &lt;patrick@stwcx.xyz&gt;
</content>
</entry>
<entry>
<title>Replace logging with std::format</title>
<updated>2023-07-19T22:38:41+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>ed@tanous.net</email>
</author>
<published>2023-07-18T00:06:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=62598e31d0988d589506d5091bd38f72d61faf5e'/>
<id>urn:sha1:62598e31d0988d589506d5091bd38f72d61faf5e</id>
<content type='text'>
std::format is a much more modern logging solution, and gives us a lot
more flexibility, and better compile times when doing logging.

Unfortunately, given its level of compile time checks, it needs to be a
method, instead of the stream style logging we had before.  This
requires a pretty substantial change.  Fortunately, this change can be
largely automated, via the script included in this commit under
scripts/replace_logs.py.  This is to aid people in moving their
patchsets over to the new form in the short period where old patches
will be based on the old logging.  The intention is that this script
eventually goes away.

The old style logging (stream based) looked like.

BMCWEB_LOG_DEBUG &lt;&lt; "Foo " &lt;&lt; foo;

The new equivalent of the above would be:
BMCWEB_LOG_DEBUG("Foo {}", foo);

In the course of doing this, this also cleans up several ignored linter
errors, including macro usage, and array to pointer deconstruction.

Note, This patchset does remove the timestamp from the log message.  In
practice, this was duplicated between journald and bmcweb, and there's
no need for both to exist.

One design decision of note is the addition of logPtr.  Because the
compiler can't disambiguate between const char* and const MyThing*, it's
necessary to add an explicit cast to void*.  This is identical to how
fmt handled it.

Tested:  compiled with logging meson_option enabled, and launched bmcweb

Saw the usual logging, similar to what was present before:
```
[Error include/webassets.hpp:60] Unable to find or open /usr/share/www/ static file hosting disabled
[Debug include/persistent_data.hpp:133] Restored Session Timeout: 1800
[Debug redfish-core/include/event_service_manager.hpp:671] Old eventService config not exist
[Info src/webserver_main.cpp:59] Starting webserver on port 18080
[Error redfish-core/include/event_service_manager.hpp:1301] inotify_add_watch failed for redfish log file.
[Info src/webserver_main.cpp:137] Start Hostname Monitor Service...
```
Signed-off-by: Ed Tanous &lt;ed@tanous.net&gt;

Change-Id: I86a46aa2454be7fe80df608cb7e5573ca4029ec8
</content>
</entry>
<entry>
<title>Boost::urls::format</title>
<updated>2023-05-16T16:05:33+00:00</updated>
<author>
<name>Ed Tanous</name>
<email>edtanous@google.com</email>
</author>
<published>2023-04-24T22:28:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=ef4c65b741724d724452a3a0efe8dff0d450514a'/>
<id>urn:sha1:ef4c65b741724d724452a3a0efe8dff0d450514a</id>
<content type='text'>
Boost 1.82 dropped a lovely new toy, boost::urls::format, which is a lot
like our urlFromPieces method, but better in that it makes the resulting
uris more readable, and allows doing things like fragments in a single
line instead of multiple.  We should prefer it in some cases.

Tested:
Redfish service validator passes.
Spot checks of URLs work as expected.
Unit tests pass.

Signed-off-by: Ed Tanous &lt;edtanous@google.com&gt;
Change-Id: Ia7b38f0a95771c862507e7d5b4aa68aa1c98403c
</content>
</entry>
</feed>
