Update Simgear and Flightgear ports to 2017.3.1

This commit is contained in:
Ganael LAPLANCHE 2017-09-29 16:06:29 +00:00
parent 488300b39c
commit 250805c259
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=450910
15 changed files with 42 additions and 255 deletions

View File

@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= simgear
PORTVERSION= 2017.1.3
PORTREVISION= 8
PORTVERSION= 2017.3.1
CATEGORIES= devel games
MASTER_SITES= SF/flightgear/release-${PORTVERSION:R}

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1491386012
SHA256 (simgear-2017.1.3.tar.bz2) = 85304d985b4fc0dc00d9f7603b02d096e3c24ca4c98adc18dc9af1e2d0e3c310
SIZE (simgear-2017.1.3.tar.bz2) = 1235062
TIMESTAMP = 1506362997
SHA256 (simgear-2017.3.1.tar.bz2) = 0ee08550b737b249dcc91590ec0cb9c5dc9080998f6ba66a7d7209cdfce6e1f4
SIZE (simgear-2017.3.1.tar.bz2) = 1302704

View File

@ -1,27 +0,0 @@
--- simgear/scene/material/Effect.cxx.orig 2017-04-04 09:24:44.000000000 +0200
+++ simgear/scene/material/Effect.cxx 2017-07-16 21:55:10.888904000 +0200
@@ -32,7 +32,7 @@
#include <map>
#include <queue>
#include <utility>
-#include <boost/tr1/unordered_map.hpp>
+#include <unordered_map>
#include <boost/bind.hpp>
#include <boost/foreach.hpp>
@@ -832,13 +832,13 @@
// XXX Should these be protected by a mutex? Probably
-typedef tr1::unordered_map<ProgramKey, ref_ptr<Program>,
+typedef std::unordered_map<ProgramKey, ref_ptr<Program>,
boost::hash<ProgramKey>, ProgramKey::EqualTo>
ProgramMap;
ProgramMap programMap;
ProgramMap resolvedProgramMap; // map with resolved shader file names
-typedef tr1::unordered_map<ShaderKey, ref_ptr<Shader>, boost::hash<ShaderKey> >
+typedef std::unordered_map<ShaderKey, ref_ptr<Shader>, boost::hash<ShaderKey> >
ShaderMap;
ShaderMap shaderMap;

View File

@ -1,20 +0,0 @@
--- simgear/scene/material/Effect.hxx.orig 2017-04-04 09:24:44.000000000 +0200
+++ simgear/scene/material/Effect.hxx 2017-07-16 21:55:33.247324000 +0200
@@ -19,7 +19,7 @@
#include <vector>
#include <string>
-#include <boost/tr1/unordered_map.hpp>
+#include <unordered_map>
#include <boost/functional/hash.hpp>
@@ -127,7 +127,7 @@
bool operator()(const Key& lhs, const Key& rhs) const;
};
};
- typedef std::tr1::unordered_map<Key, osg::observer_ptr<Effect>,
+ typedef std::unordered_map<Key, osg::observer_ptr<Effect>,
boost::hash<Key>, Key::EqualTo> Cache;
Cache* getCache()
{

View File

@ -61,6 +61,8 @@ include/simgear/constants.h
include/simgear/debug/BufferedLogCallback.hxx
include/simgear/debug/debug_types.h
include/simgear/debug/logstream.hxx
include/simgear/embedded_resources/EmbeddedResource.hxx
include/simgear/embedded_resources/EmbeddedResourceManager.hxx
include/simgear/environment/metar.hxx
include/simgear/environment/precipitation.hxx
include/simgear/ephemeris/celestialBody.hxx
@ -86,6 +88,8 @@ include/simgear/io/HTTPMemoryRequest.hxx
include/simgear/io/HTTPRepository.hxx
include/simgear/io/HTTPRequest.hxx
include/simgear/io/iochannel.hxx
include/simgear/io/iostreams/CharArrayStream.hxx
include/simgear/io/iostreams/zlibstream.hxx
include/simgear/io/lowlevel.hxx
include/simgear/io/raw_socket.hxx
include/simgear/io/sg_binobj.hxx
@ -136,6 +140,7 @@ include/simgear/misc/ListDiff.hxx
include/simgear/misc/ResourceManager.hxx
include/simgear/misc/SVGpreserveAspectRatio.hxx
include/simgear/misc/SimpleMarkdown.hxx
include/simgear/misc/argparse.hxx
include/simgear/misc/interpolator.hxx
include/simgear/misc/make_new.hxx
include/simgear/misc/sg_dir.hxx
@ -145,6 +150,7 @@ include/simgear/misc/stdint.hxx
include/simgear/misc/stopwatch.hxx
include/simgear/misc/strutils.hxx
include/simgear/misc/tabbed_values.hxx
include/simgear/misc/test_macros.hxx
include/simgear/misc/texcoord.hxx
include/simgear/nasal/cppbind/Ghost.hxx
include/simgear/nasal/cppbind/NasalCallContext.hxx
@ -273,6 +279,7 @@ include/simgear/scene/util/SGSceneFeatures.hxx
include/simgear/scene/util/SGSceneUserData.hxx
include/simgear/scene/util/SGStateAttributeVisitor.hxx
include/simgear/scene/util/SGTextureStateAttributeVisitor.hxx
include/simgear/scene/util/SGTransientModelData.hxx
include/simgear/scene/util/SGUpdateVisitor.hxx
include/simgear/scene/util/SplicingVisitor.hxx
include/simgear/scene/util/StateAttributeFactory.hxx

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= flightgear-data
PORTVERSION= 2017.1.3
PORTVERSION= 2017.3.1
CATEGORIES= games
MASTER_SITES= SF/flightgear/release-${PORTVERSION:R}
DISTNAME= FlightGear-${PORTVERSION}-data

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1491386357
SHA256 (FlightGear-2017.1.3-data.tar.bz2) = bf35d9a15be9e7bd1c286eee879251e0907a3fb5cca4e7d1fdfbe67690345365
SIZE (FlightGear-2017.1.3-data.tar.bz2) = 1460527272
TIMESTAMP = 1506363053
SHA256 (FlightGear-2017.3.1-data.tar.bz2) = df08b06e88a29a9f80f29186afd54d278636a663281a1b68e8f484bbb403d898
SIZE (FlightGear-2017.3.1-data.tar.bz2) = 1560855079

View File

@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= flightgear
PORTVERSION= 2017.1.3
PORTREVISION= 9
PORTVERSION= 2017.3.1
CATEGORIES= games
MASTER_SITES= SF/flightgear/release-${PORTVERSION:R}
@ -48,7 +47,7 @@ DBUS_CMAKE_ON= -DUSE_DBUS:BOOL=ON
DBUS_CMAKE_OFF= -DUSE_DBUS:BOOL=OFF
QT5_CMAKE_ON= -DENABLE_QT:BOOL=ON
QT5_CMAKE_OFF= -DENABLE_QT:BOOL=OFF
QT5_USE= QT5=core,buildtools,gui,qmake,widgets
QT5_USE= QT5=core,buildtools,gui,qmake,qml,widgets
.include <bsd.port.pre.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1491386247
SHA256 (flightgear-2017.1.3.tar.bz2) = 3d7cb2b4b1d60b80b0613222b1fc7b6db665eddaf68d7080c07cdedcb544b0ad
SIZE (flightgear-2017.1.3.tar.bz2) = 8056402
TIMESTAMP = 1506363097
SHA256 (flightgear-2017.3.1.tar.bz2) = 6f2e1d992e2f202b8f9c918c9fb19124ef06824ea0e767e2f4dff6ba43728ccd
SIZE (flightgear-2017.3.1.tar.bz2) = 8098283

View File

@ -1,129 +0,0 @@
Backport of commits 0ba2ac31 and 1ad2bf44
Fixes CVE-2017-13709.
--- src/Main/fg_init.cxx.orig
+++ src/Main/fg_init.cxx
@@ -1090,7 +1090,12 @@ void fgStartNewReset()
fgInitGeneral(); // all of this?
flightgear::Options::sharedInstance()->processOptions();
-
+
+ // Rebuild the lists of allowed paths for cases where a path comes from an
+ // untrusted source, such as the global property tree (this uses $FG_HOME
+ // and other paths set by Options::processOptions()).
+ fgInitAllowedPaths();
+
// PRESERVED properties over-write state from options, intentionally
if ( copyProperties(preserved, globals->get_props()) ) {
SG_LOG( SG_GENERAL, SG_INFO, "Preserved state restored successfully" );
--- src/Main/main.cxx.orig
+++ src/Main/main.cxx
@@ -536,7 +536,12 @@ int fgMainInit( int argc, char **argv )
} else if (configResult == flightgear::FG_OPTIONS_EXIT) {
return EXIT_SUCCESS;
}
-
+
+ // Set the lists of allowed paths for cases where a path comes from an
+ // untrusted source, such as the global property tree (this uses $FG_HOME
+ // and other paths set by Options::processOptions()).
+ fgInitAllowedPaths();
+
// Initialize the Window/Graphics environment.
fgOSInit(&argc, argv);
_bootstrap_OSInit++;
--- src/Scripting/NasalSys.cxx.orig
+++ src/Scripting/NasalSys.cxx
@@ -909,10 +909,6 @@ void FGNasalSys::init()
.member("simulatedTime", &TimerObj::isSimTime, &f_timerObj_setSimTime)
.member("isRunning", &TimerObj::isRunning);
-
- // Set allowed paths for Nasal I/O
- fgInitAllowedPaths();
-
// Now load the various source files in the Nasal directory
simgear::Dir nasalDir(SGPath(globals->get_fg_root(), "Nasal"));
loadScriptDirectory(nasalDir);
--- src/Main/logger.cxx.orig
+++ src/Main/logger.cxx
@@ -9,12 +9,17 @@
#include "logger.hxx"
-#include <fstream>
+#include <ios>
#include <string>
+#include <cstdlib>
#include <simgear/debug/logstream.hxx>
+#include <simgear/io/iostreams/sgstream.hxx>
+#include <simgear/misc/sg_path.hxx>
#include "fg_props.hxx"
+#include "globals.hxx"
+#include "util.hxx"
using std::string;
using std::endl;
@@ -59,6 +64,25 @@ FGLogger::init ()
child->setStringValue("filename", filename.c_str());
}
+ // Security: the path comes from the global Property Tree; it *must* be
+ // validated before we overwrite the file.
+ const SGPath authorizedPath = fgValidatePath(SGPath::fromUtf8(filename),
+ /* write */ true);
+
+ if (authorizedPath.isNull()) {
+ const string propertyPath = child->getChild("filename")
+ ->getPath(/* simplify */ true);
+ const string msg =
+ "The FGLogger logging system, via the '" + propertyPath + "' property, "
+ "was asked to write to '" + filename + "', however this path is not "
+ "authorized for writing anymore for security reasons. " +
+ "Please choose another location, for instance in the $FG_HOME/Export "
+ "folder (" + (globals->get_fg_home() / "Export").utf8Str() + ").";
+
+ SG_LOG(SG_GENERAL, SG_ALERT, msg);
+ exit(EXIT_FAILURE);
+ }
+
string delimiter = child->getStringValue("delimiter");
if (delimiter.empty()) {
delimiter = ",";
@@ -68,7 +92,8 @@ FGLogger::init ()
log.interval_ms = child->getLongValue("interval-ms");
log.last_time_ms = globals->get_sim_time_sec() * 1000;
log.delimiter = delimiter.c_str()[0];
- log.output = new std::ofstream(filename.c_str());
+ // Security: use the return value of fgValidatePath()
+ log.output = new sg_ofstream(authorizedPath, std::ios_base::out);
if (!log.output) {
SG_LOG(SG_GENERAL, SG_ALERT, "Cannot write log to " << filename);
continue;
--- src/Main/logger.hxx.orig
+++ src/Main/logger.hxx
@@ -6,10 +6,10 @@
#ifndef __LOGGER_HXX
#define __LOGGER_HXX 1
-#include <iosfwd>
#include <vector>
#include <simgear/compiler.h>
+#include <simgear/io/iostreams/sgstream.hxx>
#include <simgear/structure/subsystem_mgr.hxx>
#include <simgear/props/props.hxx>
@@ -39,7 +39,7 @@ private:
Log ();
virtual ~Log ();
std::vector<SGPropertyNode_ptr> nodes;
- std::ostream * output;
+ sg_ofstream * output;
long interval_ms;
double last_time_ms;
char delimiter;

View File

@ -1,28 +0,0 @@
Fix for CVE-2017-8921 (backport of commit faf872e7)
--- src/Autopilot/route_mgr.cxx.orig
+++ src/Autopilot/route_mgr.cxx
@@ -74,7 +74,22 @@ static bool commandSaveFlightPlan(const SGPropertyNode* arg)
{
FGRouteMgr* self = (FGRouteMgr*) globals->get_subsystem("route-manager");
SGPath path = SGPath::fromUtf8(arg->getStringValue("path"));
- return self->saveRoute(path);
+ SGPath authorizedPath = fgValidatePath(path, true /* write */);
+
+ if (!authorizedPath.isNull()) {
+ return self->saveRoute(authorizedPath);
+ } else {
+ std::string msg =
+ "The route manager was asked to write the flightplan to '" +
+ path.utf8Str() + "', but this path is not authorized for writing. " +
+ "Please choose another location, for instance in the $FG_HOME/Export "
+ "folder (" + (globals->get_fg_home() / "Export").utf8Str() + ").";
+
+ SG_LOG(SG_AUTOPILOT, SG_ALERT, msg);
+ modalMessageBox("FlightGear", "Unable to write to the specified file",
+ msg);
+ return false;
+ }
}
static bool commandActivateFlightPlan(const SGPropertyNode* arg)

View File

@ -1,11 +0,0 @@
--- CMakeLists.txt.orig 2017-06-30 11:44:05.757902000 +0200
+++ CMakeLists.txt 2017-06-30 11:49:07.188128000 +0200
@@ -226,7 +226,7 @@
if(EVENT_INPUT)
if(APPLE)
add_definitions(-DWITH_EVENTINPUT)
- elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD")
if(NOT UDEV_FOUND)
message(WARNING "UDev not found, event input is disabled!")
set(EVENT_INPUT 0)

View File

@ -1,13 +0,0 @@
--- src/Main/CMakeLists.txt.orig 2017-02-22 17:29:45.000000000 +0000
+++ src/Main/CMakeLists.txt 2017-02-28 12:42:12.797102000 +0000
@@ -157,6 +157,10 @@
target_link_libraries(fgfs Qt5::Widgets fglauncher)
endif()
+if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+ target_link_libraries(fgfs execinfo)
+endif()
+
if (APPLE)
install(TARGETS fgfs BUNDLE DESTINATION .)
else()

View File

@ -1,11 +0,0 @@
--- utils/fgpanel/CMakeLists.txt.orig 2017-03-03 06:18:49.698586000 +0000
+++ utils/fgpanel/CMakeLists.txt 2017-03-03 06:24:25.570507000 +0000
@@ -19,7 +19,7 @@
)
include_directories(
- /usr/include/freetype2
+ ${FREETYPE_INCLUDE_DIRS}
${PNG_INCLUDE_DIR}
)

View File

@ -14,8 +14,29 @@ bin/js_server
bin/metar
bin/yasim
bin/yasim-proptest
man/it/man1/GPSsmooth.1.gz
man/it/man1/JSBSim.1.gz
man/it/man1/MIDGsmooth.1.gz
man/it/man1/UGsmooth.1.gz
man/it/man1/fgcom.1.gz
man/it/man1/fgelev.1.gz
man/it/man1/fgfs.1.gz
man/it/man1/fgjs.1.gz
man/it/man1/fgpanel.1.gz
man/it/man1/fgviewer.1.gz
man/it/man1/js_demo.1.gz
man/it/man1/metar.1.gz
man/it/man5/fgfsrc.5.gz
man/man1/GPSsmooth.1.gz
man/man1/JSBSim.1.gz
man/man1/MIDGsmooth.1.gz
man/man1/UGsmooth.1.gz
man/man1/fgcom.1.gz
man/man1/fgelev.1.gz
man/man1/fgfs.1.gz
man/man1/fgjs.1.gz
man/man1/fgpanel.1.gz
man/man1/fgviewer.1.gz
man/man1/js_demo.1.gz
man/man1/terrasync.1.gz
man/man1/metar.1.gz
man/man5/fgfsrc.5.gz