Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package SimGear for openSUSE:Factory checked in at 2021-03-02 12:29:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/SimGear (Old) and /work/SRC/openSUSE:Factory/.SimGear.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "SimGear" Tue Mar 2 12:29:50 2021 rev:21 rq:867732 version:2020.3.6 Changes: -------- --- /work/SRC/openSUSE:Factory/SimGear/SimGear.changes 2021-01-13 18:31:32.238075611 +0100 +++ /work/SRC/openSUSE:Factory/.SimGear.new.2378/SimGear.changes 2021-03-02 12:32:43.271676405 +0100 @@ -1,0 +2,7 @@ +Thu Jan 28 18:59:04 UTC 2021 - Stefan Br??ns <[email protected]> + +- Update to 2020.3.6 + * http://wiki.flightgear.org/Changelog_2020.3#2020.3.6 +- Drop upstream boost-1.75-fix.patch + +------------------------------------------------------------------- Old: ---- boost-1.75-fix.patch simgear-2020.3.5.tar.bz2 New: ---- simgear-2020.3.6.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ SimGear.spec ++++++ --- /var/tmp/diff_new_pack.XQVwm2/_old 2021-03-02 12:32:44.455677226 +0100 +++ /var/tmp/diff_new_pack.XQVwm2/_new 2021-03-02 12:32:44.455677226 +0100 @@ -20,10 +20,10 @@ # in our requirements, i.e. the same version we have built against %define openscenegraph_version %(rpm -qa --nosignature --nodigest libOpenSceneGraph\*-devel | sed 's/.*-devel-\\(.*\\)-.*/\\1/') -%define libname libSimGearCore-2020_3_5 +%define libname libSimGearCore-2020_3_6 %define main_version 2020.3 Name: SimGear -Version: %{main_version}.5 +Version: %{main_version}.6 Release: 0 Summary: Simulator Construction Gear # https://sourceforge.net/p/flightgear/codetickets/1940/ @@ -32,8 +32,6 @@ URL: https://www.flightgear.org/ Source0: https://sourceforge.net/projects/flightgear/files/release-%{main_version}/simgear-%{version}.tar.bz2 Source99: SimGear-rpmlintrc -# PATCH-FIX-UPSTREAM -- https://github.com/FlightGear/simgear/commit/39d616a0d591d9df.patch -Patch0: boost-1.75-fix.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: libOpenSceneGraph-devel ++++++ simgear-2020.3.5.tar.bz2 -> simgear-2020.3.6.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/environment/metar.cxx new/simgear-2020.3.6/simgear/environment/metar.cxx --- old/simgear-2020.3.5/simgear/environment/metar.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/environment/metar.cxx 2021-01-23 19:01:02.000000000 +0100 @@ -46,6 +46,7 @@ #include <sstream> #include <simgear/debug/logstream.hxx> +#include <simgear/math/sg_random.h> #include <simgear/structure/exception.hxx> #include "metar.hxx" @@ -1068,9 +1069,12 @@ return false; m += i; - if (!strncmp(m, "///", 3)) // vis not measurable (e.g. because of heavy snowing) + if (!strncmp(m, "///", 3)) { // vis not measurable (e.g. because of heavy snowing) m += 3, i = -1; - else if (scanBoundary(&m)) { + sg_srandom_time(); + // randomize the base height to avoid the black sky issue + i = 50 + static_cast<int>(sg_random() * 250.0); // range [5,000, 30,000] + } else if (scanBoundary(&m)) { _m = m; return true; // ignore single OVC/BKN/... } else if (!scanNumber(&m, &i, 3)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/io/sg_binobj.cxx new/simgear-2020.3.6/simgear/io/sg_binobj.cxx --- old/simgear-2020.3.5/simgear/io/sg_binobj.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/io/sg_binobj.cxx 2021-01-23 19:01:02.000000000 +0100 @@ -566,8 +566,10 @@ sgReadUInt( fp, &header ); if (sgReadError()) { + int code = 0; + const char* gzErrorString = gzerror(fp, &code); gzclose(fp); - throw sg_io_exception("Unable to read BTG header: " + simgear::strutils::error_string(errno), sg_location(file)); + throw sg_io_exception("Unable to read BTG header: " + string{gzErrorString} + ", code =" + std::to_string(code), sg_location(file)); } if ( ((header & 0xFF000000) >> 24) == 'S' && diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/package/Root.cxx new/simgear-2020.3.6/simgear/package/Root.cxx --- old/simgear-2020.3.5/simgear/package/Root.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/package/Root.cxx 2021-01-23 19:01:02.000000000 +0100 @@ -133,7 +133,9 @@ void fireRefreshStatus(CatalogRef catalog, Delegate::StatusCode status) { - for (auto d : delegates) { + // take a copy of delegates since firing this can modify the data + const auto currentDelegates = delegates; + for (auto d : currentDelegates) { d->catalogRefreshed(catalog, status); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/props/props.cxx new/simgear-2020.3.6/simgear/props/props.cxx --- old/simgear-2020.3.5/simgear/props/props.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/props/props.cxx 2021-01-23 19:01:02.000000000 +0100 @@ -566,23 +566,15 @@ } } #else -template<typename Range> -SGPropertyNode* -find_node (SGPropertyNode * current, - const Range& path, - bool create, - int last_index = -1) -{ +template <typename Range> +SGPropertyNode *find_node(SGPropertyNode *current, const Range &path, + bool create, int last_index = -1) { using namespace boost; - typedef split_iterator<typename range_result_iterator<Range>::type> - PathSplitIterator; - - PathSplitIterator itr - = make_split_iterator(path, first_finder("/", is_equal())); + auto itr = make_split_iterator(path, first_finder("/", is_equal())); if (*path.begin() == '/') return find_node_aux(current->getRootNode(), itr, create, last_index); - else - return find_node_aux(current, itr, create, last_index); + else + return find_node_aux(current, itr, create, last_index); } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/scene/material/Effect.cxx new/simgear-2020.3.6/simgear/scene/material/Effect.cxx --- old/simgear-2020.3.5/simgear/scene/material/Effect.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/scene/material/Effect.cxx 2021-01-23 19:01:03.000000000 +0100 @@ -76,7 +76,7 @@ #include <simgear/structure/SGExpression.hxx> #include <simgear/props/props_io.hxx> #include <simgear/props/vectorPropTemplates.hxx> - +#include <simgear/debug/ErrorReportingCallback.hxx> #include <simgear/io/iostreams/sgstream.hxx> namespace simgear @@ -928,7 +928,8 @@ // FIXME orig: const string& shaderName = shaderKey.first; string shaderName = shaderKey.first; Shader::Type stype = (Shader::Type)shaderKey.second; - if (getPropertyRoot()->getBoolValue("/sim/version/compositor-support", false) && + const bool compositorEnabled = getPropertyRoot()->getBoolValue("/sim/version/compositor-support", false); + if (compositorEnabled && shaderName.substr(0, shaderName.find("/")) == "Shaders") { shaderName = "Compositor/" + shaderName; } @@ -936,7 +937,9 @@ if (fileName.empty()) { SG_LOG(SG_INPUT, SG_ALERT, "Could not locate shader" << shaderName); - + if (!compositorEnabled) { + reportError("Missing shader", shaderName); + } throw BuilderException(string("couldn't find shader ") + shaderName); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/scene/material/TextureBuilder.cxx new/simgear-2020.3.6/simgear/scene/material/TextureBuilder.cxx --- old/simgear-2020.3.5/simgear/scene/material/TextureBuilder.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/scene/material/TextureBuilder.cxx 2021-01-23 19:01:03.000000000 +0100 @@ -273,11 +273,19 @@ options->setLoadOriginHint(SGReaderWriterOptions::LoadOriginHint::ORIGIN_EFFECTS_NORMALIZED); else options->setLoadOriginHint(SGReaderWriterOptions::LoadOriginHint::ORIGIN_EFFECTS); -#if OSG_VERSION_LESS_THAN(3,4,2) - result = osgDB::readImageFile(imageName, options); -#else - result = osgDB::readRefImageFile(imageName, options); -#endif + + try { + #if OSG_VERSION_LESS_THAN(3,4,2) + result = osgDB::readImageFile(imageName, options); + #else + result = osgDB::readRefImageFile(imageName, options); + #endif + } catch (std::bad_alloc& ba) { + SG_LOG(SG_GL, SG_ALERT, "Bad allocation loading:" << imageName); + // todo: report low memory warning + return false; + } + options->setLoadOriginHint(origLOH); osg::ref_ptr<osg::Image> image; if (result.success()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/scene/model/animation.cxx new/simgear-2020.3.6/simgear/scene/model/animation.cxx --- old/simgear-2020.3.5/simgear/scene/model/animation.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/scene/model/animation.cxx 2021-01-23 19:01:03.000000000 +0100 @@ -1135,16 +1135,8 @@ double intPart; double rot = modf(rotation, &intPart); double angle = rot * 2.0 * osg::PI; - const SGVec3d& sgcenter = transform->getCenter(); - const SGVec3d& sgaxis = transform->getAxis(); - Matrixd mat = Matrixd::translate(-sgcenter[0], -sgcenter[1], -sgcenter[2]) - * Matrixd::rotate(angle, sgaxis[0], sgaxis[1], sgaxis[2]) - * Matrixd::translate(sgcenter[0], sgcenter[1], sgcenter[2]) - * *cv->getModelViewMatrix(); - ref_ptr<RefMatrix> refmat = new RefMatrix(mat); - cv->pushModelViewMatrix(refmat.get(), transform->getReferenceFrame()); + transform->setAngleRad(angle); traverse(transform, nv); - cv->popModelViewMatrix(); } else { traverse(transform, nv); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/scene/tgdb/SGBuildingBin.cxx new/simgear-2020.3.6/simgear/scene/tgdb/SGBuildingBin.cxx --- old/simgear-2020.3.5/simgear/scene/tgdb/SGBuildingBin.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/scene/tgdb/SGBuildingBin.cxx 2021-01-23 19:01:03.000000000 +0100 @@ -441,6 +441,10 @@ if (hash_pos != std::string::npos) line.resize(hash_pos); + if (line.empty()) { + continue; // skip blank lines + } + // and process further std::stringstream in(line); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear/scene/tgdb/SGOceanTile.cxx new/simgear-2020.3.6/simgear/scene/tgdb/SGOceanTile.cxx --- old/simgear-2020.3.5/simgear/scene/tgdb/SGOceanTile.cxx 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear/scene/tgdb/SGOceanTile.cxx 2021-01-23 19:01:03.000000000 +0100 @@ -41,6 +41,7 @@ #include <simgear/scene/material/EffectGeode.hxx> #include <simgear/scene/material/mat.hxx> #include <simgear/scene/material/matlib.hxx> +#include <simgear/scene/model/BoundingVolumeBuildVisitor.hxx> #include <simgear/scene/util/OsgMath.hxx> #include <simgear/scene/util/VectorArrayAdapter.hxx> #include <simgear/scene/util/SGNodeMasks.hxx> @@ -340,5 +341,10 @@ transform->addChild(geode); transform->setNodeMask( ~(simgear::CASTSHADOW_BIT | simgear::MODELLIGHT_BIT) ); + // Create a BVH at this point. This is normally provided by the file loader, but as we create the + // geometry programmatically, no file loader is involved. + BoundingVolumeBuildVisitor bvhBuilder(false); + transform->accept(bvhBuilder); + return transform; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.5/simgear-version new/simgear-2020.3.6/simgear-version --- old/simgear-2020.3.5/simgear-version 2020-12-18 12:42:37.000000000 +0100 +++ new/simgear-2020.3.6/simgear-version 2021-01-23 19:01:02.000000000 +0100 @@ -1 +1 @@ -2020.3.5 +2020.3.6
