config_host/config_buildconfig.h.in |    9 +++++++++
 configure.ac                        |   20 ++++++++++++++++++++
 desktop/source/lib/init.cxx         |    8 ++++++--
 3 files changed, 35 insertions(+), 2 deletions(-)

New commits:
commit 93b4928dddf9cdd55450450995fefe324d771221
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Sun Nov 12 10:30:19 2023 +0300
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Mon Nov 13 10:57:02 2023 +0100

    Re-introduce build config to version info reported by LOK
    
    ... as an opt-in --with-buildconfig-recorded configure option.
    This allows to have the data in the admin console, as implemented in
    commit cbfac11330882c7d0a817b6c37a08b2ace2b66f4 (Send build config
    (configure options) in LOKit version info JSON, 2022-11-07), when
    reprobuilds are not required. The default is no build config, which
    is compatible with reprobuilds.
    
    This reverts commit 389def871853c885289627452f40b3ae0a8dabc8.
    
    Change-Id: I7f0be489a1c82268d0ca38cb761843c9d432a14b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159344
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de>

diff --git a/config_host/config_buildconfig.h.in 
b/config_host/config_buildconfig.h.in
new file mode 100644
index 000000000000..a3b531e34e07
--- /dev/null
+++ b/config_host/config_buildconfig.h.in
@@ -0,0 +1,9 @@
+/* Options passed to configure script */
+
+#ifndef CONFIG_BUILDCONFIG_H
+#define CONFIG_BUILDCONFIG_H
+
+#define BUILDCONFIG ""
+#define BUILDCONFIG_RECORDED 0
+
+#endif
diff --git a/configure.ac b/configure.ac
index 303f143df198..0234537eb02b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2862,6 +2862,25 @@ AC_ARG_WITH(coredumpctl,
         [Use coredumpctl (together with systemd-run) to retrieve core dumps of 
crashing test
         processes.]))
 
+AC_ARG_WITH(buildconfig-recorded,
+    AS_HELP_STRING([--with-buildconfig-recorded],
+        [Put build config into version info reported by LOK. Incompatible with 
reproducible builds.]),
+)
+
+AC_MSG_CHECKING([whether to record build config])
+if test -z "$with_buildconfig_recorded"; then
+    with_buildconfig_recorded=no
+fi
+if test "$with_buildconfig_recorded" = no; then
+    AC_MSG_RESULT([no])
+else
+    AC_MSG_RESULT([yes])
+    # replace backslashes, to get a valid c++ string
+    config_args=$(echo $ac_configure_args | tr '\\' '/')
+    AC_DEFINE_UNQUOTED([BUILDCONFIG],[["$config_args"]],[Options passed to 
configure script])
+    AC_DEFINE([BUILDCONFIG_RECORDED],[1],[Options passed to configure script])
+fi
+
 dnl ===================================================================
 dnl Do we want to use pre-build binary tarball for recompile
 dnl ===================================================================
@@ -15070,6 +15089,7 @@ AC_CONFIG_FILES([config_host.mk
                  
vs-code.code-workspace.template:.vscode/vs-code-template.code-workspace.in])
 
 AC_CONFIG_HEADERS([config_host/config_atspi.h])
+AC_CONFIG_HEADERS([config_host/config_buildconfig.h])
 AC_CONFIG_HEADERS([config_host/config_buildid.h])
 AC_CONFIG_HEADERS([config_host/config_box2d.h])
 AC_CONFIG_HEADERS([config_host/config_clang.h])
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 3283cf7731e5..3ee743d4aada 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -12,6 +12,7 @@
 #include <svx/sdr/contact/viewcontact.hxx>
 #include <svx/svdpage.hxx>
 #include <svx/svdpagv.hxx>
+#include <config_buildconfig.h>
 #include <config_cairo_rgba.h>
 #include <config_features.h>
 
@@ -7242,8 +7243,11 @@ static char* lo_getVersionInfo(SAL_UNUSED_PARAMETER 
LibreOfficeKit* /*pThis*/)
         "\"ProductName\": \"%PRODUCTNAME\", "
         "\"ProductVersion\": \"%PRODUCTVERSION\", "
         "\"ProductExtension\": \"%PRODUCTEXTENSION\", "
-        "\"BuildId\": \"%BUILDID\" "
-        "}"_ustr));
+        "\"BuildId\": \"%BUILDID\""
+#if BUILDCONFIG_RECORDED
+        ", \"BuildConfig\": \"" BUILDCONFIG "\""
+#endif
+        " }"_ustr));
 }
 
 static void aBasicErrorFunc(const OUString& rError, const OUString& rAction)

Reply via email to