Subject: [PATCH] gnu: esmini: Update to 2.37.11.
From: Liliana Marie Prikler <[email-masked]>
To: [email-masked]
Date: Sat, 15 Jun 2024 23:55:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/simulation.scm (esmini): Update to 2.37.11.
[arguments]<#:configure-flags>: Add “-DUSE_IMPLOT=FALSE”.
<#:phases>: Adjust accordingly.
* gnu/packages/patches/esmini-use-pkgconfig.patch: Update accordingly.
* gnu/packages/patches/esmini-no-clutter-log.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
---
 gnu/local.mk                                  |   1 -
 .../patches/esmini-no-clutter-log.patch       |  30 -
 .../patches/esmini-use-pkgconfig.patch        | 694 +++++-------------
 gnu/packages/simulation.scm                   |  31 +-
 4 files changed, 214 insertions(+), 542 deletions(-)
 delete mode 100644 gnu/packages/patches/esmini-no-clutter-log.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 83b7402b09..37bd031fb8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1175,7 +1175,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ergodox-firmware-fix-json-target.patch	\
   %D%/packages/patches/ergodox-firmware-fix-numpad.patch	\
   %D%/packages/patches/erlang-man-path.patch			\
-  %D%/packages/patches/esmini-no-clutter-log.patch		\
   %D%/packages/patches/esmini-use-pkgconfig.patch		\
   %D%/packages/patches/esmtp-add-lesmtp.patch		\
   %D%/packages/patches/eudev-rules-directory.patch		\
diff --git a/gnu/packages/patches/esmini-no-clutter-log.patch b/gnu/packages/patches/esmini-no-clutter-log.patch
deleted file mode 100644
index 0920244f78..0000000000
--- a/gnu/packages/patches/esmini-no-clutter-log.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Don't clutter /tmp with logs.
-
----
- EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp | 10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp b/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp
-index 56c655dc..2750f5a6 100644
---- a/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp
-+++ b/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp
-@@ -1013,14 +1013,8 @@ void Logger::OpenLogfile(std::string filename)
- 		file_.open(filename.c_str());
- 		if (file_.fail())
- 		{
--			const char* filename_tmp = std::tmpnam(NULL);
--			printf("Cannot open log file: %s in working directory. Trying system tmp-file: %s\n",
--				SE_Env::Inst().GetLogFilePath().c_str(), filename_tmp);
--			file_.open(filename_tmp);
--			if (file_.fail())
--			{
--				printf("Also failed to open log file: %s. Continue without logfile, still logging to console.\n", filename_tmp);
--			}
-+			printf("Cannot open log file: %s in working directory. Continuing without logfile, still logging to console.\n",
-+				filename.c_str());
- 		}
- 	}
- #endif
--- 
-2.38.1
-
diff --git a/gnu/packages/patches/esmini-use-pkgconfig.patch b/gnu/packages/patches/esmini-use-pkgconfig.patch
index 73e1b50015..7f7dafbc55 100644
--- a/gnu/packages/patches/esmini-use-pkgconfig.patch
+++ b/gnu/packages/patches/esmini-use-pkgconfig.patch
@@ -1,461 +1,153 @@
 Find dependencies via pkg-config.
 
 ---
- CMakeLists.txt                                |  16 +-
- .../Applications/esmini-dyn/CMakeLists.txt    |   5 +-
- .../Applications/esmini/CMakeLists.txt        |   1 +
- EnvironmentSimulator/CMakeLists.txt           | 296 +-----------------
- .../Modules/Controllers/ControllerSumo.cpp    |   1 -
- .../Modules/RoadManager/CMakeLists.txt        |   8 +-
- .../Modules/ScenarioEngine/CMakeLists.txt     |  15 +-
- 7 files changed, 23 insertions(+), 319 deletions(-)
+ CMakeLists.txt                                | 72 +++----------------
+ .../Applications/esmini/main.cpp              |  2 +
+ EnvironmentSimulator/CMakeLists.txt           |  3 -
+ .../Modules/Controllers/ControllerSumo.cpp    |  1 -
+ .../Modules/RoadManager/CMakeLists.txt        |  7 +-
+ .../Modules/ScenarioEngine/CMakeLists.txt     | 17 +----
+ 6 files changed, 16 insertions(+), 86 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 156d9448..10ec48f9 100644
+index aec4cf55..c9689b44 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -8,6 +8,7 @@ else()
-   cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
+@@ -13,6 +13,8 @@ else()
+         FATAL_ERROR)
  endif()
  
 +include(FindPkgConfig)
++
+ # ############################# Project generate options ###########################################################
  
- project (EnvironmentSimulator)
- 
-@@ -33,15 +34,10 @@ else ()
-   set (LINUX false)
- endif ()
+ project(
+@@ -138,75 +140,26 @@ set_special_build_flags()
+ include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/utils/get_subdirectories.cmake)
+ include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/utils/set_folder.cmake)
  
--if (LINUX OR APPLE OR MINGW OR MSVC)
--  set(INSTALL_DIRECTORY "${CMAKE_HOME_DIRECTORY}/bin")
--else ()
--  message(FATAL_ERROR "Unrecognized platform therefore there isn't an installation directory. Stopping the cmake process.")
--endif ()
+-# ############################### Downloading cloud packages #########################################################
 -
- set(INSTALL_DIRECTORY_CODE_EXAMPLES "${CMAKE_HOME_DIRECTORY}/code-examples-bin")
- 
--set(PUGIXML_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/pugixml")
-+find_package(pugixml)
-+
- set(EXPR_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/expr")
- if(MSVC)
-     set(DIRENT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/dirent/win")
-@@ -61,10 +57,14 @@ set(ENABLE_SANITIZERS False CACHE BOOL "Enable sanitizers (Only valid for Linux
+-include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/cloud/set_cloud_links.cmake)
+-set_cloud_links()
+-
+-include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/cloud/download.cmake)
+-
+-message(STATUS "Downloading dependencies...")
+-
+-download(
+-    osg
+-    ${EXTERNALS_OSG_PATH}
+-    ${EXTERNALS_OSG_OS_SPECIFIC_PATH}
+-    "${OSG_PACKAGE_URL}")
+-
+-download(
+-    osi
+-    ${EXTERNALS_OSI_PATH}
+-    ${EXTERNALS_OSI_OS_SPECIFIC_PATH}
+-    "${OSI_PACKAGE_URL}")
+-
+-download(
+-    sumo
+-    ${EXTERNALS_SUMO_PATH}
+-    ${EXTERNALS_SUMO_OS_SPECIFIC_PATH}
+-    "${SUMO_PACKAGE_URL}")
+-
+-download(
+-    implot
+-    ${EXTERNALS_IMPLOT_PATH}
+-    ${EXTERNALS_IMPLOT_OS_SPECIFIC_PATH}
+-    "${IMPLOT_PACKAGE_URL}")
+-
+-download(
+-    models
+-    ${RESOURCES_PATH}
+-    ${MODELS_PATH}
+-    "${MODELS_PACKAGE_URL}")
+-
+-if(NOT
+-   (APPLE
+-    OR MINGW))
+-    download(
+-        googletest
+-        ${EXTERNALS_GOOGLETEST_PATH}
+-        ${EXTERNALS_GOOGLETEST_OS_SPECIFIC_PATH}
+-        ${GTEST_PACKAGE_URL})
+-endif()
+-
+ # ############################### Loading external packages ##########################################################
  
+ if(USE_GTEST)
+-    include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/external/gtest.cmake)
+-    set_gtest_libs()
++    find_package(GTest REQUIRED)
+ endif()
  
- if (USE_OSG)
+ if(USE_OSG)
+-    include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/external/osg.cmake)
+-    set_osg_libs()
 +  pkg_check_modules(OSG REQUIRED openscenegraph osgdb_jpeg osgdb_osg
 +                                 osgdb_serializers_osg
 +                                 osgdb_serializers_osgsim)
-   add_definitions(-D_USE_OSG)
- endif (USE_OSG)
- 
- if (USE_OSI)
-+  find_package(open_simulation_interface REQUIRED)
-   add_definitions(-D_USE_OSI)
- endif (USE_OSI)
+ endif()
  
-@@ -73,6 +73,7 @@ if (USE_SUMO)
- endif (USE_SUMO)
+ if(USE_OSI)
+-    include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/external/osi.cmake)
+-    set_osi_libs()
++    find_package(open_simulation_interface REQUIRED)
++    set(EXTERNALS_OSI_INCLUDES "${OPEN_SIMULATION_INTERFACE_INCLUDE_DIRS}")
++    set(OSI_LIBRARIES open_simulation_interface::open_simulation_interface)
+ endif()
  
- if (USE_GTEST)
-+  find_package(GTest REQUIRED)
-   add_definitions(-D_USE_GTEST)
- endif (USE_GTEST)
+ if(USE_SUMO)
+-    include(${CMAKE_CURRENT_SOURCE_DIR}/support/cmake/external/sumo.cmake)
+-    set_sumo_libs()
++    set ( SUMO_LIBRARIES sumocpp tracicpp )
+ endif()
  
-@@ -90,5 +91,4 @@ if( NOT EXISTS "test/OSC-ALKS-scenarios/.git" )
+ if(USE_IMPLOT)
+@@ -229,10 +182,7 @@ if(NOT
  endif()
  
  # Add variables to global scope, e.g. when esmini is used as submodule
--set(PUGIXML_INCLUDE_DIR ${PUGIXML_INCLUDE_DIR} CACHE INTERNAL "")
- set(EXPR_INCLUDE_DIR ${EXPR_INCLUDE_DIR} CACHE INTERNAL "")
-diff --git a/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt b/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt
-index 83d89420..e15062d3 100644
---- a/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt
-+++ b/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt
-@@ -1,7 +1,7 @@
- 
- include_directories (
-   ${SCENARIOENGINE_DLL_INCLUDE_DIR}
--  ${COMMON_MINI_INCLUDE_DIR}  
-+  ${COMMON_MINI_INCLUDE_DIR}
-   ${OSI_INCLUDE_DIR}
- )
- 
-@@ -19,11 +19,12 @@ link_directories( ${OSI_DIR}/lib )
- add_executable ( ${TARGET} ${SOURCES} ${INCLUDES} )
- 
- 
--target_link_libraries ( 
-+target_link_libraries (
- 	${TARGET}
- 	esminiLib
- 	CommonMini
- 	${TIME_LIB}
-+        pugixml::pugixml
-   project_options
- )
- 
-diff --git a/EnvironmentSimulator/Applications/esmini/CMakeLists.txt b/EnvironmentSimulator/Applications/esmini/CMakeLists.txt
-index 6890c26a..a088ebdc 100644
---- a/EnvironmentSimulator/Applications/esmini/CMakeLists.txt
-+++ b/EnvironmentSimulator/Applications/esmini/CMakeLists.txt
-@@ -44,6 +44,7 @@ target_link_libraries (
- 	${sumo_libs}
- 	${TIME_LIB}
-     ${SOCK_LIB}
-+    pugixml::pugixml
-     project_options
- )
+-set(EXTERNALS_PUGIXML_PATH
+-    ${EXTERNALS_PUGIXML_PATH}
+-    CACHE INTERNAL
+-          "")
++find_package(pugixml)
+ set(EXTERNALS_EXPR_PATH
+     ${EXTERNALS_EXPR_PATH}
+     CACHE INTERNAL
+diff --git a/EnvironmentSimulator/Applications/esmini/main.cpp b/EnvironmentSimulator/Applications/esmini/main.cpp
+index 84f38c7f..943c42c8 100644
+--- a/EnvironmentSimulator/Applications/esmini/main.cpp
++++ b/EnvironmentSimulator/Applications/esmini/main.cpp
+@@ -13,7 +13,9 @@
+ #include "playerbase.hpp"
+ #include "CommonMini.cpp"
+ #include "OSCParameterDistribution.hpp"
++#if _USE_IMPLOT
+ #include "Plot.hpp"
++#endif
+ #include <osgViewer/ViewerEventHandlers>
+ #include <signal.h>
  
 diff --git a/EnvironmentSimulator/CMakeLists.txt b/EnvironmentSimulator/CMakeLists.txt
-index 157e8fe0..e771231a 100644
+index 87e1dd98..3db513a0 100644
 --- a/EnvironmentSimulator/CMakeLists.txt
 +++ b/EnvironmentSimulator/CMakeLists.txt
-@@ -1,7 +1,3 @@
--
--set ( FILE_STORAGE "esmini" ) # "dropbox", "google", "esmini"  (limited GB/Day)
--set ( MODEL_STORAGE "esmini" ) # "dropbox", "google", "esmini"  (limited GB/Day)
--
- set ( VIEWER_BASE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/ViewerBase" )
- set ( PLAYER_BASE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/PlayerBase" )
- set ( ROADMANAGER_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/RoadManager" )
-@@ -17,88 +13,12 @@ set ( CONTROLLERS_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/Controllers")
- 
- # OpenSceneGraph package adapted for this project
- set ( OSG_VERSION "osg161" )
--set ( OSG_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/OpenSceneGraph" )
--set ( OSI_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/OSI" )
--set ( SUMO_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/SUMO" )
- 
- # GoogleTest package
- set ( GTEST_VERSION "1.10.1" )
--set ( GTEST_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/googletest" )
- 
- set( CMAKE_VERBOSE_MAKEFILE true )
- 
--if ( ${FILE_STORAGE} STREQUAL "dropbox" )
--    if (APPLE)
--        set ( OSG_PACKAGE_URL https://www.dropbox.com/s/d0czj6b89p9jyvv/OpenSceneGraph_mac.7z?dl=1 )
--        set ( OSI_PACKAGE_URL https://www.dropbox.com/s/m62v19gp0m73dte/osi_mac.7z?dl=1 )
--        set ( SUMO_PACKAGE_URL https://www.dropbox.com/s/0x8kwztk7nmacs1/sumo_mac.7z?dl=1 )
--    elseif (LINUX)
--        set ( OSG_PACKAGE_URL https://www.dropbox.com/s/4ug0gmkgdavzyb4/osg_linux_glibc_2_31_gcc_7_5_0.7z?dl=1 )
--        set ( OSI_PACKAGE_URL https://dl.dropboxusercontent.com/s/kwtdg0c1c8pawa1/osi_linux.7z?dl=1 )
--        set ( SUMO_PACKAGE_URL https://dl.dropboxusercontent.com/s/gfwtqd3gf76f86a/sumo_linux.7z?dl=1 )
--        set ( GTEST_PACKAGE_URL https://dl.dropboxusercontent.com/s/si7jsjjsy5bpoym/googletest_linux.7z?dl=1 )
--    elseif (MSVC)
--        set ( OSG_PACKAGE_URL https://dl.dropboxusercontent.com/s/e95hnoo782p40uc/OpenSceneGraph_v10.7z?dl=1 )
--        set ( OSI_PACKAGE_URL https://dl.dropboxusercontent.com/s/an58ckp2qfx5069/osi_v10.7z?dl=1 )
--        set ( SUMO_PACKAGE_URL https://dl.dropboxusercontent.com/s/5jtpnnd61wonxuh/sumo_v10.7z?dl=1 )
--        set ( GTEST_PACKAGE_URL https://dl.dropboxusercontent.com/s/aaiehwzc6woqbc6/googletest_v10.7z?dl=1 )
--    elseif (MINGW)
--        message("MinGW, enforcing slimmed esmini")
--    else ()
--        message ("Unsupported configuration")
--    endif ()
--elseif ( ${FILE_STORAGE} STREQUAL "google" )
--    if (APPLE)
--        set ( OSG_PACKAGE_URL https://drive.google.com/u/1/uc?id=1mfn_vrcXBoFBekR_t8RXTWB4sD59JD7p&export=download )
--        set ( OSI_PACKAGE_URL https://drive.google.com/u/1/uc?id=1UVzO8cPQaDU9KVn9v2v8Suj0uUw1dzYI&export=download )
--        set ( SUMO_PACKAGE_URL https://drive.google.com/u/1/uc?id=1FAve0-MlJPv6lUZy0HvriZI7xstLAzvX&export=download )
--    elseif (LINUX)
--        set ( OSG_PACKAGE_URL https://drive.google.com/u/1/uc?id=1Ya1bLp_0-qqlhs67WAwbGW7l37wqP3o2&export=download )
--        set ( OSI_PACKAGE_URL https://drive.google.com/u/1/uc?id=1Q8O9YciIC0BPEszIKtQ2UW9KcVRZS4iB&export=download )
--        set ( SUMO_PACKAGE_URL https://drive.google.com/u/1/uc?id=1m4znxNIXapP0D-l21oIm2l7L5ti-JbZH&export=download )
--        set ( GTEST_PACKAGE_URL https://drive.google.com/u/1/uc?id=1Hyr9eJX2GmgpYwZhx14xOoXlZ2j-FY_p&export=download )
--    elseif (MSVC)
--        set ( OSG_PACKAGE_URL https://drive.google.com/u/1/uc?id=1RTag0aUn_pJPK697j0-E72ABW10wZvOm&export=download )
--        set ( OSI_PACKAGE_URL https://drive.google.com/u/1/uc?id=1pcQcVHUESOk2Wmi-zUA7uzdxxE6iwRJx&export=download )
--        set ( SUMO_PACKAGE_URL https://drive.google.com/u/1/uc?id=18PhbSLyvs0IGWTAY3YBoYzpVnMFPbOuR&export=download )
--        set ( GTEST_PACKAGE_URL https://drive.google.com/u/1/uc?id=1So-3gtrmEdW9RhEvVQisj1QFksHM_otU&export=download )
--    elseif (MINGW)
--        message("MinGW, enforcing slimmed esmini")
--    else ()
--        message ("Unsupported configuration")
--    endif ()
--elseif ( ${FILE_STORAGE} STREQUAL "esmini" )
--    if (APPLE)
--        set ( OSG_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/OpenSceneGraph_mac.7z )
--        set ( OSI_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osi_mac.7z )
--        set ( SUMO_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/sumo_mac.7z )
--    elseif (LINUX)
--        set ( OSG_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osg_linux_glibc_2_31_gcc_7_5_0.7z )
--        set ( OSI_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osi_linux.7z )
--        set ( SUMO_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/sumo_linux.7z )
--        set ( GTEST_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/googletest_linux.7z )
--    elseif (MSVC)
--        set ( OSG_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/OpenSceneGraph_v10.7z )
--        set ( OSI_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osi_v10.7z )
--        set ( SUMO_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/sumo_v10.7z )
--        set ( GTEST_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/googletest_v10.7z )
--    elseif (MINGW)
--        message("MinGW, enforcing slimmed esmini")
--    else ()
--        message ("Unsupported configuration")
--    endif ()
--else ()
--    Message("Unknown storage type: " ${FILE_STORAGE})
--endif()
--
--if ( ${MODEL_STORAGE} STREQUAL "dropbox" )
--    set ( MODELS_PACKAGE_URL https://dl.dropboxusercontent.com/s/5gk8bvgzqiaaoco/models.7z?dl=0 )
--elseif ( ${MODEL_STORAGE} STREQUAL "google" )
--    set ( MODELS_PACKAGE_URL https://drive.google.com/u/1/uc?id=1c3cqRzwY41gWXbg0rmugQkL5I_5L6DH_&export=download )
--elseif ( ${MODEL_STORAGE} STREQUAL "esmini" )
--    set ( MODELS_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD779364751/models/models.7z )
--endif()
--
- if (APPLE)
-   set ( EXT_DIR_NAME "mac" )
-   set ( TIME_LIB "" )
-@@ -127,21 +47,8 @@ set ( OSI_DIR "${OSI_BASE_DIR}/${EXT_DIR_NAME}" )
- set ( SUMO_DIR "${SUMO_BASE_DIR}/${EXT_DIR_NAME}" )
- set ( GTEST_DIR "${GTEST_BASE_DIR}/${EXT_DIR_NAME}" )
- 
--set ( OSG_INCLUDE_DIR
--    "${OSG_DIR}/build/include"
--    "${OSG_DIR}/include"
--)
--set ( OSG_LIBRARIES_PATH
--    "${OSG_DIR}/lib"
--    "${OSG_DIR}/lib/osgPlugins-3.6.5"
--)
--
- set ( OSI_INCLUDE_DIR "${OSI_DIR}/include" )
--if (DYN_PROTOBUF)
--  set ( OSI_LIBRARIES_PATH "${OSI_DIR}/lib-dyn" )
--else ()
--  set ( OSI_LIBRARIES_PATH "${OSI_DIR}/lib" )
--endif (DYN_PROTOBUF)
-+set ( OSI_LIBRARIES_PATH "${OSI_DIR}/lib" )
- 
- set ( SUMO_INCLUDE_DIR "${SUMO_DIR}/include" )
- set ( SUMO_LIBRARIES_PATH "${SUMO_DIR}/lib" )
-@@ -153,74 +60,6 @@ link_directories(${OSG_LIBRARIES_PATH} ${OSI_LIBRARIES_PATH} ${SUMO_LIBRARIES_PA
- 
- if(APPLE)
-   SET(CMAKE_CXX_FLAGS "${CXX_STD_FLAG} -std=c++14 -pthread -fPIC -flto -DGL_SILENCE_DEPRECATION -Wl,-dead_strip")
--  
--  set ( OSG_LIBRARIES
--    osg
--    osgViewer
--    osgDB
--    osgdb_serializers_osgsim
--    osgdb_serializers_osg
--    osgGA
--    osgText
--    osgSim
--    osgdb_osg
--    osgdb_jpeg
--    osgUtil
--    osgAnimation
--    osg
--    OpenThreads
--    jpeg
--    "-framework OpenGL"
--    "-framework Cocoa"
--    dl
--    z
--  )
--
--  if (DYN_PROTOBUF)
--    set ( OSI_LIBRARIES
--      open_simulation_interface
--      protobuf
--    )
--  else ()
--    set ( OSI_LIBRARIES
--      open_simulation_interface_pic
--      protobuf
--    )
--  endif (DYN_PROTOBUF)
--
--
--  set ( SUMO_LIBRARIES
--    optimized libsumostatic debug libsumostaticd
--    optimized netload debug netloadd
--    optimized traciserver debug traciserverd
--    optimized libsumostatic debug libsumostaticd
--    optimized utils_vehicle debug utils_vehicled
--    optimized utils_distribution debug utils_distributiond
--    optimized utils_shapes debug utils_shapesd
--    optimized utils_options debug utils_optionsd
--    optimized utils_xml debug utils_xmld
--    optimized utils_geom debug utils_geomd
--    optimized utils_common debug utils_commond
--    optimized utils_iodevices debug utils_iodevicesd
--    optimized utils_traction_wire debug utils_traction_wired
--    optimized utils_emissions debug utils_emissionsd
--    optimized microsim_engine debug microsim_engined
--    optimized microsim_lcmodels debug microsim_lcmodelsd
--    optimized microsim_devices debug microsim_devicesd
--    optimized microsim_trigger debug microsim_triggerd
--    optimized microsim_output debug microsim_outputd
--    optimized microsim_transportables debug microsim_transportablesd
--    optimized microsim_actions debug microsim_actionsd
--    optimized microsim_traffic_lights debug microsim_traffic_lightsd
--    optimized microsim debug microsimd
--    optimized mesosim debug mesosimd
--    optimized foreign_phemlight debug foreign_phemlightd
--    optimized foreign_tcpip debug foreign_tcpipd
--    optimized microsim_cfmodels debug microsim_cfmodelsd
--    optimized zlibstatic debug zlibstaticd
--    optimized xerces-c_3 debug xerces-c_3D
--    "-framework CoreServices"
--  )
- 
- elseif(LINUX)
- 
-@@ -251,82 +90,8 @@ elseif(LINUX)
-     SET(CMAKE_CXX_FLAGS "${CXX_STD_FLAG} -pthread -fPIC -Wl,-strip-all")
-   endif()
- 
--  set ( OSG_LIBRARIES
--    optimized osg debug osgd
--    optimized osgViewer debug osgViewerd
--    optimized osgDB debug osgDBd
--    optimized osgdb_serializers_osgsim debug osgdb_serializers_osgsimd
--    optimized osgdb_serializers_osg debug osgdb_serializers_osgd
--    optimized osgGA debug osgGAd
--    optimized osgText debug osgTextd
--    optimized osgSim debug osgSimd
--    optimized osgdb_osg debug osgdb_osgd
--    optimized osgdb_jpeg debug osgdb_jpegd
--    optimized osgUtil debug osgUtild
--    optimized osgAnimation debug osgAnimationd
--    optimized osg debug osgd
--    optimized OpenThreads debug OpenThreadsd
--    optimized jpeg debug jpegd
--
--    GL
--    X11
--    Xrandr
--    dl
--    z
--    Xinerama
--    fontconfig
--  )
--
--  if (DYN_PROTOBUF)
--    set ( OSI_LIBRARIES
--      optimized open_simulation_interface debug open_simulation_interfaced
--      optimized protobuf debug protobufd
--    )
--  else ()
--    set ( OSI_LIBRARIES
--      optimized open_simulation_interface_pic debug open_simulation_interface_picd
--      optimized protobuf debug protobufd
--    )
--  endif (DYN_PROTOBUF)
--
--  set ( SUMO_LIBRARIES
--    optimized libsumostatic debug libsumostaticd
--    optimized netload debug netloadd
--    optimized traciserver debug traciserverd
--    optimized libsumostatic debug libsumostaticd
--    optimized utils_vehicle debug utils_vehicled
--    optimized utils_distribution debug utils_distributiond
--    optimized utils_shapes debug utils_shapesd
--    optimized utils_options debug utils_optionsd
--    optimized utils_xml debug utils_xmld
--    optimized utils_geom debug utils_geomd
--    optimized utils_common debug utils_commond
--    optimized utils_iodevices debug utils_iodevicesd
--    optimized utils_traction_wire debug utils_traction_wired
--    optimized utils_emissions debug utils_emissionsd
--    optimized microsim_engine debug microsim_engined
--    optimized microsim_lcmodels debug microsim_lcmodelsd
--    optimized microsim_devices debug microsim_devicesd
--    optimized microsim_trigger debug microsim_triggerd
--    optimized microsim_output debug microsim_outputd
--    optimized microsim_transportables debug microsim_transportablesd
--    optimized microsim_actions debug microsim_actionsd
--    optimized microsim_traffic_lights debug microsim_traffic_lightsd
--    optimized microsim debug microsimd
--    optimized mesosim debug mesosimd
--    optimized foreign_phemlight debug foreign_phemlightd
--    optimized foreign_tcpip debug foreign_tcpipd
--    optimized microsim_cfmodels debug microsim_cfmodelsd
--    optimized zlibstatic debug zlibstaticd
--    optimized xerces-c_3 debug xerces-c_3D
--  )
--
--  set (GTEST_LIBRARIES
--    optimized gmock debug gmockd
--    optimized gmock_main debug gmock_maind
--    optimized gtest debug gtestd
--    optimized gtest_main debug gtest_maind
--  )
-+  set ( OSI_LIBRARIES open_simulation_interface::open_simulation_interface )
-+  set ( SUMO_LIBRARIES sumocpp tracicpp )
- 
- elseif(MSVC)
- 
-@@ -510,61 +275,6 @@ FOREACH(subdir ${SUBDIRS})
-     endif ()
- ENDFOREACH()
- 
--
--#
--# Download library and content binary packets
--#
--
--function (download_and_extract url target_folder target_filename)
--    message (STATUS "downloading ${target_filename} ...")
--    file (DOWNLOAD ${url} ${target_folder}/${target_filename} STATUS DOWNLOAD_STATUS)
--
--    if(DOWNLOAD_STATUS AND NOT DOWNLOAD_STATUS EQUAL 0)
--        message(FATAL_ERROR "FAILED to download ${target_filename} (Status: ${DOWNLOAD_STATUS})")
--    endif()
--
--    execute_process (COMMAND sleep 1)  # allow for file to be completely flushed
--
--    message (STATUS "extracting ${target_filename} ... ")
--    execute_process (COMMAND ${CMAKE_COMMAND} -E tar xfz ${target_filename} WORKING_DIRECTORY ${target_folder} RESULT_VARIABLE STATUS)
--
--    if(STATUS AND NOT STATUS EQUAL 0)
--        message(FATAL_ERROR "FAILED to unpack ${target_filename}")
--    endif()
--
--    file (REMOVE ${target_folder}/${target_filename})
--endfunction (download_and_extract)
--
--# download OpenSceneGraph
--set ( OSG_PACKAGE_FILENAME "osg.7z" )
--if (DEFINED OSG_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${OSG_DIR} ))
--    download_and_extract( ${OSG_PACKAGE_URL} ${OSG_BASE_DIR} ${OSG_PACKAGE_FILENAME} )
--endif()
--
--# download OSI
--set ( OSI_PACKAGE_FILENAME "osi.7z" )
--if (DEFINED OSI_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${OSI_DIR} ))
--    download_and_extract( ${OSI_PACKAGE_URL} ${OSI_BASE_DIR} ${OSI_PACKAGE_FILENAME} )
--endif()
--
--# download SUMO
--set ( SUMO_PACKAGE_FILENAME "sumo.7z" )
--if (DEFINED SUMO_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${SUMO_DIR} ))
--  download_and_extract( ${SUMO_PACKAGE_URL} ${SUMO_BASE_DIR} ${SUMO_PACKAGE_FILENAME} )
--endif()
--
--# download googletest
--if(NOT (APPLE OR MINGW))  # not available for Mac yet
--  set ( GTEST_PACKAGE_FILENAME "googletest.7z" )
--  if (DEFINED GTEST_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${GTEST_DIR} ))
--      download_and_extract( ${GTEST_PACKAGE_URL} ${GTEST_BASE_DIR} ${GTEST_PACKAGE_FILENAME} )
--  endif()
--endif()
--
--if (DEFINED MODELS_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${MODELS_DIR} ))
--    download_and_extract(${MODELS_PACKAGE_URL} ${MODELS_BASE_DIR} ${MODELS_PACKAGE_FILENAME})
--endif()
--
- add_subdirectory(Applications/odrplot)
- add_subdirectory(Applications/replayer)
- 
+@@ -57,9 +57,6 @@ set_folder(
+ set_folder(
+     ScenarioEngine
+     ${ModulesFolder})
+-set_folder(
+-    Externals
+-    ${ModulesFolder})
+ set_folder(
+     RoadManager
+     ${ModulesFolder})
 diff --git a/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp b/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp
-index 4c701d94..cb5de5bb 100644
+index 92b40c90..764d2d3b 100644
 --- a/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp
 +++ b/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp
 @@ -16,7 +16,6 @@
@@ -467,75 +159,95 @@ index 4c701d94..cb5de5bb 100644
  #include <libsumo/Vehicle.h>
  #include <libsumo/TraCIDefs.h>
 diff --git a/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt b/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt
-index e4fad5f1..32d7a79c 100644
+index afb77338..b8beba48 100644
 --- a/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt
 +++ b/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt
-@@ -2,7 +2,7 @@
- include_directories (
-   ${PUGIXML_INCLUDE_DIR}
-   ${COMMON_MINI_INCLUDE_DIR}
--  ${ROADMANAGER_INCLUDE_DIR}  
-+  ${ROADMANAGER_INCLUDE_DIR}
+@@ -20,9 +20,6 @@ set(SOURCES
+     odrSpiral.cpp
+     LaneIndependentRouter.cpp)
+ 
+-set(SRC_ADDITIONAL
+-    ${EXTERNALS_PUGIXML_PATH}/pugixml.cpp)
+-
+ source_group(
+     "External Libraries"
+     FILES ${SRC_ADDITIONAL})
+@@ -44,6 +41,7 @@ add_library(
+ target_link_libraries(
+     ${TARGET}
+     PRIVATE CommonMini
++            pugixml
+             # project_options
  )
  
- set ( SOURCES
-@@ -11,8 +11,6 @@ set ( SOURCES
-   LaneIndependentRouter.cpp
- )
- 
--set ( SRC_ADDITIONAL ../../../externals/pugixml/pugixml.cpp)
--
- SOURCE_GROUP("External Libraries" FILES ${SRC_ADDITIONAL})
+@@ -54,8 +52,7 @@ target_include_directories(
+ target_include_directories(
+     ${TARGET}
+     SYSTEM
+-    PUBLIC ${EXTERNALS_PUGIXML_PATH}
+-           ${ROAD_MANAGER_PATH})
++    PUBLIC ${ROAD_MANAGER_PATH})
  
- set ( INCLUDES
-@@ -25,6 +23,6 @@ if(MSVC)
- 	add_definitions("/wd4482")
- endif()
- 
--add_library ( RoadManager STATIC ${SOURCES} ${SRC_ADDITIONAL} ${INCLUDES} )
-+add_library ( RoadManager STATIC ${SOURCES} ${INCLUDES} )
- 
--target_link_libraries ( RoadManager CommonMini project_options)
-\ No newline at end of file
-+target_link_libraries ( RoadManager CommonMini pugixml::pugixml project_options)
+ disable_static_analysis(${TARGET})
+ disable_iwyu(${TARGET})
 diff --git a/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt b/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt
-index aec86ad6..86da77c1 100644
+index 5089dfc1..4b95a071 100644
 --- a/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt
 +++ b/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt
-@@ -5,7 +5,7 @@ include_directories (
-   ${ROADMANAGER_INCLUDE_DIR}
-   ${COMMON_MINI_INCLUDE_DIR}
-   ${CONTROLLERS_INCLUDE_DIR}
--  ${REPLAY_INCLUDE_DIR}  
-+  ${REPLAY_INCLUDE_DIR}
-   ${RDB_INCLUDE_DIR}
-   ${OSI_INCLUDE_DIR}
-   ${SUMO_INCLUDE_DIR}
-@@ -20,20 +20,15 @@ if (NOT USE_OSI)
-     list(REMOVE_ITEM SRC_SOURCEFILES "${CMAKE_CURRENT_LIST_DIR}/SourceFiles/OSIReporter.cpp")
- endif (NOT USE_OSI)
- 
--set ( SRC_ADDITIONAL ../../../externals/pugixml/pugixml.cpp )
--
- SOURCE_GROUP(OSCTypeDefs FILES ${SRC_OSCTYPEDEFS})
- SOURCE_GROUP("Source Files" FILES ${SRC_SOURCEFILES})
- SOURCE_GROUP("External Libraries" FILES ${SRC_ADDITIONAL})
- 
--add_library ( ScenarioEngine STATIC 
--  ${SRC_OSCTYPEDEFS} 
--  ${SRC_SOURCEFILES} 
--  ${SRC_ADDITIONAL} 
-+add_library ( ScenarioEngine STATIC
-+  ${SRC_OSCTYPEDEFS}
-+  ${SRC_SOURCEFILES}
- )
- 
- add_definitions(-D_CRT_SECURE_NO_WARNINGS)
- 
--target_link_libraries(ScenarioEngine PRIVATE project_options)
--
--	
-+target_link_libraries(ScenarioEngine PRIVATE pugixml::pugixml project_options)
+@@ -3,9 +3,6 @@
+ set(TARGET
+     ScenarioEngine)
+ 
+-set(EXTERNAL_TARGET
+-    Externals)
+-
+ # ############################### Loading desired rules ##############################################################
+ 
+ include(${CMAKE_SOURCE_DIR}/support/cmake/rule/disable_static_analysis.cmake)
+@@ -40,26 +37,15 @@ endif(
+     NOT
+     USE_OSI)
+ 
+-set(SRC_ADDITIONAL
+-    ${EXTERNALS_PUGIXML_PATH}/pugixml.cpp)
+-
+ source_group(
+     OSCTypeDefs
+     FILES ${SRC_OSCTYPEDEFS})
+ source_group(
+     "Source Files"
+     FILES ${SRC_SOURCEFILES})
+-source_group(
+-    "External Libraries"
+-    FILES ${SRC_ADDITIONAL})
+ 
+ # ############################### Creating library ###################################################################
+ 
+-add_library(
+-    ${EXTERNAL_TARGET}
+-    STATIC
+-    ${SRC_ADDITIONAL})
+-
+ add_library(
+     ${TARGET}
+     STATIC
+@@ -68,7 +54,7 @@ add_library(
+ 
+ target_link_libraries(
+     ${TARGET}
+-    PRIVATE project_options)
++    PRIVATE project_options pugixml)
+ 
+ target_include_directories(
+     ${TARGET}
+@@ -84,7 +70,6 @@ target_include_directories(
+     PUBLIC ${ROAD_MANAGER_PATH}
+            ${EXTERNALS_OSI_INCLUDES}
+            ${EXTERNALS_SUMO_INCLUDES}
+-           ${EXTERNALS_PUGIXML_PATH}
+            ${EXTERNALS_EXPR_PATH})
+ 
+ target_link_libraries(
 -- 
-2.38.1
+2.45.1
 
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index d5fc1e3d17..4fa2e93d81 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -495,15 +495,14 @@ (define-public python-open-simulation-interface
 (define-public esmini
   (package
     (name "esmini")
-    (version "2.27.1")
+    (version "2.37.11")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/esmini/esmini")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
-              (patches (search-patches "esmini-use-pkgconfig.patch"
-                                       "esmini-no-clutter-log.patch"))
+              (patches (search-patches "esmini-use-pkgconfig.patch"))
               (modules '((guix build utils) (ice-9 ftw)))
               (snippet
                #~(with-directory-excursion "externals"
@@ -513,29 +512,21 @@ (define-public esmini
                     (scandir "."))))
               (sha256
                (base32
-                "07ccydz7kxy5jc52f8fmxg4nkr1spshfnpzcv0wgd5lqz9ghjahz"))))
+                "07pwa34nf0b4ihb9fn1pvfi0b39hd8r630nfa6v3a17dsy66a730"))))
     (build-system cmake-build-system)
     (arguments
      (list
-      #:configure-flags #~(list "-DDYN_PROTOBUF=TRUE")
+      #:configure-flags
+      #~(list "-DDYN_PROTOBUF=TRUE"
+              ;; Missing implot package
+              "-DUSE_IMPLOT=FALSE")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'fix-cmake
             (lambda* (#:key inputs outputs #:allow-other-keys)
-              (substitute* "CMakeLists.txt"
-                (("\\$\\{CMAKE_HOME_DIRECTORY\\}/bin")
-                 (string-append (assoc-ref outputs "out") "/bin")))
-              (substitute* "EnvironmentSimulator/CMakeLists.txt"
-                (("\\$\\{OSI_DIR\\}/(include|lib)(-dyn)?" all what)
-                 (search-input-directory
-                  inputs
-                  (string-append what "/osi"
-                                 #$(version-major
-                                    (package-version
-                                     (this-package-input
-                                      "open-simulation-interface"))))))
-                (("\\$\\{SUMO_BASE_DIR\\}/\\$\\{EXT_DIR_NAME\\}")
-                 #$(this-package-input "sumo")))))
+              (substitute* "support/cmake/common/locations.cmake"
+                (("\\$\\{CMAKE_SOURCE_DIR\\}/bin")
+                 (string-append (assoc-ref outputs "out") "/bin")))))
           (replace 'check
             (lambda* (#:key tests? #:allow-other-keys)
               (with-directory-excursion "EnvironmentSimulator/Unittest/"
@@ -549,7 +540,7 @@ (define-public esmini
                    (lambda (f)
                      (rename-file f (string-append out "/lib/"
                                                    (basename f))))
-                   (find-files "." "\\.so$")))))))))
+                   (find-files "." "\\.(a|so)$")))))))))
     (inputs (list mesa
                   openscenegraph `(,openscenegraph "pluginlib")
                   open-simulation-interface

base-commit: 2195f70936b7aeec123d4e95345f1007d3a7bb06
-- 
2.45.1