Browse Source

sumo: Update to 1.3.1

Converted to CMake for simplicity.

Added upstream patch to use sleep_for instead of deprecated usleep.

Added patch to fix compilation with musl.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
lilik-openwrt-22.03
Rosen Penev 5 years ago
parent
commit
a9abe60ef4
4 changed files with 106 additions and 27 deletions
  1. +7
    -13
      utils/sumo/Makefile
  2. +73
    -0
      utils/sumo/patches/010-usleep.patch
  3. +26
    -0
      utils/sumo/patches/020-strerror.patch
  4. +0
    -14
      utils/sumo/patches/100-configure_fix.patch

+ 7
- 13
utils/sumo/Makefile View File

@ -8,29 +8,29 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=sumo
PKG_VERSION:=1.1.0
PKG_VERSION:=1.3.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-src-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/sumo
PKG_HASH:=68630b6879a3331683443e8044cb0a81e5919f9e4cfb80722933da85b84e542e
PKG_HASH:=dd089814499cc8d21ea90ab506adbb01e7fda9d9685d9d90a1a41cc3fe680505
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
PKG_LICENSE:=GPL-3.0
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING
CMAKE_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/sumo
SECTION:=utils
CATEGORY:=Utilities
TITLE:=SUMO - Simulation of Urban MObility
URL:=https://sumo.dlr.de/
DEPENDS:=+libxerces-c
DEPENDS:=+libxerces-c +zlib
endef
define Package/sumo/description
@ -42,15 +42,9 @@ define Package/sumo/description
various APIs to remotely control the simulation.
endef
CONFIGURE_ARGS += \
--with-xerces=$(STAGING_DIR)/usr \
--disable-debug \
--disable-dependency-tracking \
--disable-silent-rules
define Package/sumo/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{activitygen,dfrouter,duarouter,emissionsDrivingCycle,emissionsMap,jtrrouter,marouter,netconvert,netgenerate,od2trips,polyconvert,TraCITestClient} $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{activitygen,dfrouter,duarouter,emissionsDrivingCycle,emissionsMap,jtrrouter,marouter,netconvert,netgenerate,od2trips,polyconvert} $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sumo $(1)/usr/bin/sumo-bin
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) files/sumo.sh $(1)/usr/sbin/sumo


+ 73
- 0
utils/sumo/patches/010-usleep.patch View File

@ -0,0 +1,73 @@
From d35215b50bfea42c8a1d884c65fda1dee8b62d50 Mon Sep 17 00:00:00 2001
From: Michael Behrisch <michael.behrisch@dlr.de>
Date: Fri, 4 Oct 2019 11:41:29 +0200
Subject: [PATCH] removing usleep, refs #12, fix #6133
---
src/utils/foxtools/FXSingleEventThread.cpp | 9 +++------
src/utils/iodevices/OutputDevice_Network.cpp | 17 ++++-------------
2 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/src/utils/foxtools/FXSingleEventThread.cpp b/src/utils/foxtools/FXSingleEventThread.cpp
index 4b12fb920f..f545c18439 100644
--- a/src/utils/foxtools/FXSingleEventThread.cpp
+++ b/src/utils/foxtools/FXSingleEventThread.cpp
@@ -35,6 +35,8 @@
#else
#include <process.h>
#endif
+#include <chrono>
+#include <thread>
#ifndef WIN32
# define PIPE_READ 0
@@ -137,12 +139,7 @@ FXSingleEventThread::onThreadEvent(FXObject*, FXSelector, void*) {
void
FXSingleEventThread::sleep(long ms) {
-#ifdef WIN32
- Sleep(ms);
-#else
- long long us = ms * 1000;
- usleep(us);
-#endif
+ std::this_thread::sleep_for(std::chrono::milliseconds(ms));
}
diff --git a/src/utils/iodevices/OutputDevice_Network.cpp b/src/utils/iodevices/OutputDevice_Network.cpp
index 2c20ce96aa..6bde32e1e6 100644
--- a/src/utils/iodevices/OutputDevice_Network.cpp
+++ b/src/utils/iodevices/OutputDevice_Network.cpp
@@ -21,15 +21,10 @@
// ==========================================================================
// included modules
// ==========================================================================
-#include <config.h> // #ifdef _MSC_VER
+#include <config.h>
-#ifdef WIN32
-#define NOMINMAX
-#include <windows.h>
-#undef NOMINMAX
-#else
-#include <unistd.h>
-#endif
+#include <thread>
+#include <chrono>
#include <vector>
#include "OutputDevice_Network.h"
#include "foreign/tcpip/socket.h"
@@ -57,11 +52,7 @@ OutputDevice_Network::OutputDevice_Network(const std::string& host,
if (wait == 9000) {
throw IOError(toString(e.what()) + " (host: " + host + ", port: " + toString(port) + ")");
}
-#ifdef WIN32
- Sleep(wait);
-#else
- usleep(wait * 1000);
-#endif
+ std::this_thread::sleep_for(std::chrono::milliseconds(wait));
}
}
myFilename = host + ":" + toString(port);

+ 26
- 0
utils/sumo/patches/020-strerror.patch View File

@ -0,0 +1,26 @@
--- a/src/foreign/zstr/strict_fstream.hpp
+++ b/src/foreign/zstr/strict_fstream.hpp
@@ -33,17 +33,17 @@ static std::string strerror()
{
buff = "Unknown error";
}
-#elif __APPLE__ || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
+#elif defined(__GLIBC__)
+// GNU-specific strerror_r()
+ auto p = strerror_r(errno, &buff[0], buff.size());
+ std::string tmp(p, std::strlen(p));
+ std::swap(buff, tmp);
+#else
// XSI-compliant strerror_r()
if (strerror_r(errno, &buff[0], buff.size()) != 0)
{
buff = "Unknown error";
}
-#else
-// GNU-specific strerror_r()
- auto p = strerror_r(errno, &buff[0], buff.size());
- std::string tmp(p, std::strlen(p));
- std::swap(buff, tmp);
#endif
buff.resize(buff.find('\0'));
return buff;

+ 0
- 14
utils/sumo/patches/100-configure_fix.patch View File

@ -1,14 +0,0 @@
--- a/configure.ac
+++ b/configure.ac
@@ -87,11 +87,6 @@ dnl - - - - - - - - - - - - - - - - - -
case "$host" in
x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux*)
dnl Make sure we are on architecture that supports SIMD
- if test x$CXX = xclang++; then
- CXXFLAGS="-msse2 $CXXFLAGS"
- else
- CXXFLAGS="-msse2 -mfpmath=sse $CXXFLAGS"
- fi
;;
*-cygwin*)
AC_DEFINE([HAVE_CYGWIN], [1], [Define if compiling under cygwin])

Loading…
Cancel
Save