Git Product home page Git Product logo

google / earthenterprise Goto Github PK

View Code? Open in Web Editor NEW
2.6K 199.0 880.0 359.41 MB

Google Earth Enterprise - Open Source

License: Apache License 2.0

Python 13.19% HTML 15.71% CSS 1.61% JavaScript 7.31% Java 0.04% Makefile 0.02% Shell 1.21% Perl 1.80% C 0.66% C++ 58.13% QMake 0.02% Prolog 0.01% PLpgSQL 0.07% Groovy 0.14% SWIG 0.01% Raku 0.03% Jinja 0.05% kvlang 0.01%
earth 2d-map earth-enterprise 3d-globe fusion imagery gis c-plus-plus javascript python

earthenterprise's Introduction

Important!

The google/earthenterprise repository is being archived. Please read the Open GEE Archive Announcement.

Earth Enterprise Chat on Slack build

Earth Enterprise is the open source release of Google Earth Enterprise, a geospatial application which provides the ability to build and host custom 3D globes and 2D maps. Earth Enterprise does not provide a private version of Google imagery that's currently available in Google Maps or Earth.

The application suite consists of three core components:

  • Fusion - imports and fuses imagery, vector and terrain source data in to a single flyable 3D globe or 2D map.
  • Server - Apache or Tornado-based server which hosts the private globes built by Fusion.
  • Client - the Google Earth Enterprise Client (EC) and Google Maps Javascript API V3 used to view 3D globes and 2D maps, respectively.

flow

Releases

Release 5.3.8

Release 5.3.7

Release 5.3.6

More information

Building

Earth Enterprise Fusion & Server currently run on 64-bit versions of the following operating systems:

  • CentOS 6
  • CentOS 7
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Ubuntu 16.04 LTS

Refer to the BUILD.md file for instructions on building from source on one of these platforms.

Installation

Refer to the Install Instructions for instructions on installing Fusion or Earth Server. Please note that you must have a successful build of the source before proceeding with the install.

earthenterprise's People

Contributors

arjntc1 avatar asmitaw avatar avnishb avatar bradh avatar husf-dsheremata avatar tst-ahernandez avatar tst-basilhuffman avatar tst-blaird avatar tst-ccamp avatar tst-cjeffries avatar tst-dsugar avatar tst-emillergalow avatar tst-hrajamoney avatar tst-jblair avatar tst-jcupp avatar tst-jhaight avatar tst-jkent avatar tst-jlarocco avatar tst-kfreiheit avatar tst-lsavoie avatar tst-mbiancalana avatar tst-mswartz avatar tst-nfarah avatar tst-nfarah-zz avatar tst-nrichman avatar tst-ppenev avatar tst-rwildes avatar tst-sbayard avatar tst-twilk avatar vimal-raghubir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

earthenterprise's Issues

Fusion Pro support for JPEG 2000

In the commercial versions of Fusion Pro support for JPEG 2000 came from proprietary libraries compiled with a custom version of GDAL. These libraries will not be used in the GEE OSS version. This task is to find an open source replacement library that can restore this functionality.

Untrack *.jpg files from git-lfs

JPG files are currently tracked in the git-lfs configuration. This not really necessary as the vast majority of them are less that 100KB and all are under 1MB.

Removing them from LFS will remove over half of the files tracked in LFS. This will greatly speed up the cloning process and will make it less likely for LFS to receive an error while cloning due to timeouts, network instability, or excessive API calls.

Add multithreaded capability to gecombineterrain

This executable is single-threaded only. Determine where multi-threading could benefit this process. Similarly these updates should be applied to any single-threaded processes used in the workflow.

Remove scons temp files from repo

The config.log file and .sconf_temp directory are inadvertently checked into the repo, but they are generated by the scons build. This may cause the config operation of the scons build to not work correctly. Also, where possible the config step should be forced in case a system setting has changed.

SConstruct file found

getting this error scons: *** No SConstruct file found.
File "/usr/lib/scons/SCons/Script/Main.py", line 923, in _main

encapsulation failure results in build failures from hyperactive warnings.

Following Mano Marks' docker recipe, I started a build on Ubuntu 16.04.2 LTS. It looks like the build goes to some effort to use a back-dated GCC, but then falls back to a native G++ in the fusion dir. Unfortunately, it uses -Wall -Werror which is a basically toxic combination in the wild. New warnings get added to GCC All The Time and making all warnings into errors means the build fails for some non-trivial number of version combinations.

The fatal cases all happen in fusion/ and are the (quite benign) "defined, but not used" variety:

fusion/gepublish/PublisherClient.cpp:107:6: error: 'void {anonymous}::AppendMultiPartStringsParam(const string&, const std::vector<std::__cxx11::basic_string >&, std::__cxx11::string*)' defined but not used [-Werror=unused-function]
void AppendMultiPartStringsParam(const std::string &param_prefix,
^
cc1plus: all warnings being treated as errors
scons: *** [NATIVE-OPT-x86_64/fusion/gepublish/PublisherClient.os] Error 1
fusion/gepublish/geserveradmin.cpp:245:6: error: 'void {anonymous}::CreateApacheFile(std::__cxx11::string, std::__cxx11::string)' defined but not used [-Werror=unused-function]
void CreateApacheFile(std::string path, std::string data) {
^
cc1plus: all warnings being treated as errors
scons: *** [NATIVE-OPT-x86_64/fusion/gepublish/geserveradmin.o] Error 1
fusion/gecrawler/comparevector.cpp:34:6: error: 'bool {anonymous}::CompareDataHeaders(const etDataHeader&, const etDataHeader&)' declared 'static' but never defined [-Werror=unused-function]
bool CompareDataHeaders(const etDataHeader& header_a,
^
fusion/gecrawler/comparevector.cpp:36:6: error: 'bool {anonymous}::ComparePolyLinePackets(etPolyLinePacketData*, etPolyLinePacketData*)' declared 'static' but never defined [-Werror=unused-function]
bool ComparePolyLinePackets(etPolyLinePacketData* pak_a,
^
fusion/gecrawler/comparevector.cpp:38:6: error: 'bool {anonymous}::CompareStreetPackets(etStreetPacketData*, etStreetPacketData*)' declared 'static' but never defined [-Werror=unused-function]
bool CompareStreetPackets(etStreetPacketData* pak_a,
^
fusion/gecrawler/comparevector.cpp:40:6: error: 'bool {anonymous}::CompareLandmarkPackets(etLandmarkPacketData*, etLandmarkPacketData*)' declared 'static' but never defined [-Werror=unused-function]
bool CompareLandmarkPackets(etLandmarkPacketData* pak_a,
^
fusion/gecrawler/comparevector.cpp:42:6: error: 'bool {anonymous}::ComparePolygonPackets(etPolygonPacketData*, etPolygonPacketData*)' declared 'static' but never defined [-Werror=unused-function]
bool ComparePolygonPackets(etPolygonPacketData* pak_a,
^
cc1plus: all warnings being treated as errors
fusion/dbmanifest/dbmanifest.cpp:70:6: error: 'void {anonymous}::AddStringToProto(const string&, keyhole::dbroot::StringIdOrValueProto*)' defined but not used [-Werror=unused-function]
void AddStringToProto(const std::string& str,
^
cc1plus: all warnings being treated as errors
g++ -o NATIVE-OPT-x86_64/fusion/gemaptilegen/Generator.o -c -O2 -pipe -pthread -Wall -Werror -Wno-parentheses -Wno-error=unused-result -Wno-error=unused-local-typedefs -Wno-error=unused-but-set-variable -I/usr/include/libpng12 -D_LARGEFILE64_SOURCE -DQT_THREAD_SUPPORT -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -D_REENTRANT -DGUNIT_NO_GOOGLE3 -DKH_MAX_NUM_JOBS_COEFF=16 -DSK_RELEASE -DGR_RELEASE -DSkDebugf="(void)" -DSK_R32_SHIFT=16 -DSK_G32_SHIFT=8 -DSK_B32_SHIFT=0 -DSK_A32_SHIFT=24 -DSK_SCALAR_IS_FLOAT -DSkUserConfig_DEFINED -I/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/config -I/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core -I/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/effects -I/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/images -I/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/lazy -INATIVE-OPT-x86_64/include -INATIVE-OPT-x86_64 -I. -INATIVE-OPT-x86_64/common -Icommon -Icommon/khmisc -Ikeyhole -INATIVE-OPT-x86_64/fusion -Ifusion -Ifusion/gst fusion/gemaptilegen/Generator.cpp
scons: building associated VariantDir targets: NATIVE-OPT-x86_64
scons: *** [NATIVE-OPT-x86_64/fusion/gecrawler/comparevector.os] Error 1
scons: *** [NATIVE-OPT-x86_64/fusion/dbmanifest/dbmanifest.os] Error 1
In file included from /googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkFixed.h:13:0,
from /googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkScalar.h:13,
from /googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkColor.h:13,
from fusion/gst/maprender/Renderer.h:21,
from ./fusion/gemaptilegen/Generator.h:29,
from fusion/gemaptilegen/Generator.cpp:16:
/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkPath.h: In static member function 'static bool SkPath::IsInverseFillType(SkPath::FillType)':
/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkPath.h:531:58: warning: typedef 'fill_type_mismatch' locally defined but not used [-Wunused-local-typedefs]
SK_COMPILE_ASSERT(3 == kInverseEvenOdd_FillType, fill_type_mismatch);
^
/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkTypes.h:130:43: note: in definition of macro 'SK_COMPILE_ASSERT'
typedef SkCompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
^
/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkPath.h: In static member function 'static SkPath::FillType SkPath::ConvertToNonInverseFillType(SkPath::FillType)':
/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkPath.h:547:58: warning: typedef 'fill_type_mismatch' locally defined but not used [-Wunused-local-typedefs]
SK_COMPILE_ASSERT(3 == kInverseEvenOdd_FillType, fill_type_mismatch);
^
/googleclient/geo/earth_enterprise/src/NATIVE-OPT-x86_64/third_party/skia/include/core/SkTypes.h:130:43: note: in definition of macro 'SK_COMPILE_ASSERT'
typedef SkCompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
^
fusion/gemaptilegen/Generator.cpp: At global scope:
fusion/gemaptilegen/Generator.cpp:36:6: error: 'void {anonymous}::WritePngFileDebug(char*, uint, const string&)' defined but not used [-Werror=unused-function]
void WritePngFileDebug(char* pixel_buffer, uint tile_size,

Google basemap fails to load in 2D Mercator Maps

Known Issue: The Google basemap fails to load in 2D Mercator databases built with "Use Google Basemap" option. The browser console will show a NoApiKeys error.

Reason: Loading the public Google Maps API JS V3 now requires a valid API key as a key parameter. See this page for more information.

Workaround: Obtain an API key and include it in: /opt/google/gehttpd/htdocs/maps/maps_google.html

Package Portable Server for Ubuntu

As a user, I would like to be able to install Portable Server from a Debian package, or from an APT repository.

AC:

  • Add a build script that produces a Debian package with Portable Server for the architecture you are building on. (64-bit x86 should be supported.)
  • The package should add a service that could be added to a run-level.
  • The service should be configurable from files under .
  • A non-root user should be able to start the server from the command line, without running the system service.

Update version number in About of GEE Fusion

Need to figure out next version number to use.
Based on all the changes that have occurred, it's been suggested that we go to 5.2.0

Update version in the repo and make sure it shows up in about box for Fusion

Also create release notes for the new release and add them to the docs.

Add check to scons build to make sure git-lfs is installed

Many people have attempted to clone the repo without first installing git-lfs. The error that they receive upon building is confusing ("gzip: stdin: not in gzip format"). It would be better if scons would perform the check to make sure the repo was successfully cloned and print out a helpful error message and direct the developer on how to fix the problem.

Ensure GEE Portable Cutter Job Completes

Cutter workflow is handled in the browser. This will cause the cutter job to fail if the network connection fails or the user closes the browser, leaving the data in a state of limbo. The workflow can either be moved to the server (preferable but probably a bigger change) or allow the browser to reconnect and recover a job if it becomes disconnected.

Allow cuts to finish even if the browser window is closed or network connection is lost. This is very beneficial for large larger cuts. Eliminates "orphan" cuts than never finish, which could fill up disk space if not manually cleared out.

GEE Portable Server - add HTTPS support

Portable server currently needs to be run in unsecure HTTP. The Tornado webserver used by Portable Server has support for HTTPS. The code needs to be updated to enable the service and to add configuration to point to the server certificate.

Users may be using software that expects or requires HTTPS connections. Also, if Portable Server is run as a Server over a network connection HTTPS is often preferred or required on the network.

Simplify build process for portable builds on Linux

The current process for building portable files involves flattening several files into a tar and transferring to another server via HTTP to kick off an external build. This setup works well for a small team with a permanent build setup, but would be confusing for an open source contributor. The build scripts should be consolidated and simplified so they can be run directly from the repo, respectively on a Linux, Mac, or Windows system. Also, update build instructions on how to build portable on the above 3 platforms.

Scons build creates temporary directories named “0”

The build creates “0” directories in the root (Google_Earth_Enterprise_Open_Sourcing/googleclient/geo/earth_enterprise) directory and src subdirectory. This is likely caused by moving to a new version of scons during the open sourcing process.

Additional info from Kevin:
In SConstruct line #80 ARGUMENTS.get('installdir', 0) CHANGED to: ARGUMENTS.get('installdir', '.')
For some reason it seems it was working ok before with the zero value. I think the newer scons does the right thing and is more strict.

RHEL 7 build may fail with libpng library errors

Depending on the packages installed, the SConscripts may not properly include the libpng12 include directory or the correct .so file. It should work with only libpng12-devel package installed, and not necessarily the libpng-devel package.

The mod_wsgi-app runs with system python, while it should run with bundled version

mod_wsgi-app runs with a system python interpreter, while it should run with the python from sandbox for bundled_3rd_libs-build-option.

Error when starting push service:
[Thu Mar 23 19:02:08 2017] [error] mod_wsgi (pid=1965): Exception occurred processing WSGI script '/opt/google/gehttpd/wsgi-bin/serve/push/stream/stream_push_app.wsgi'.
[Thu Mar 23 19:02:08 2017] [error] Traceback (most recent call last):
[Thu Mar 23 19:02:08 2017] [error] File "/opt/google/gehttpd/wsgi-bin/serve/push/stream/stream_push_app.wsgi", line 1, in
[Thu Mar 23 19:02:08 2017] [error] from serve.push.stream.stream_push_app import application
[Thu Mar 23 19:02:08 2017] [error] File "earth_enterprise/src/server/wsgi/serve/push/stream/stream_push_app.py", line 15, in
[Thu Mar 23 19:02:08 2017] [error] File "earth_enterprise/src/server/wsgi/serve/push/stream/stream_push_servlet.py", line 8, in
[Thu Mar 23 19:02:08 2017] [error] File "/opt/google/gepython/Python-2.7.5/lib/python2.7/site-packages/psycopg2/init.py", line 67, in
[Thu Mar 23 19:02:08 2017] [error] from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
[Thu Mar 23 19:02:08 2017] [error] ImportError: /opt/google/gepython/Python-2.7.5/lib/python2.7/site-packages/psycopg2/_psycopg.so: undefined symbol: PyUnicodeUCS2_Decode

Publish module fails to run due to missing dependency in RHEL 7

After doing a build and deploy using Andrei’s script, the Apache Publish module does not work. (So far I have only seen this on RHEL 7) This error in the GEE error log (/opt/google/gehttpd/logs/error_log):

[Thu Mar 23 20:04:02 2017] [error] [client 10.240.0.3]   File "/opt/google/gehttpd/wsgi-bin/serve/publish/publish_app.wsgi", line 1, in <module>
...
[Thu Mar 23 20:04:02 2017] [error] [client 10.240.0.3]     import psycopg2  # NO LINT. third party package should be before own ones.
[Thu Mar 23 20:04:02 2017] [error] [client 10.240.0.3] ImportError: No module named psycopg2

Improve FileUnpacker Handling of Invalid Files

As a Portable globe user, I want the portable globe server to not hang, and, preferably, warn me of potential data corruption, when I try to run it on a composite globe (archive) file which has undergone data corruption.

Currently, the FileUnpacker::FileUnpacker class constructor reads the archive file index into a hash table. If data corruption occurs, such as changing the offset of the file index, an incorrect number of files will be read with incorrect path lengths and paths, as well as offsets. If the incorrect number of files read is on the order of millions or billions, the constructor can hang for a very long time.

Some possible remedies to consider:

  • Report an error and stop when an attempt is made to read past the end of the input file.
  • Issue a warning, if the number of files in the index is untypically large (e.g. millions of files).
  • Issue a warning, if a file path length in the index is untypically large. (I think Windows has a limit of 260 characters, and many Linux and Mac OS file systems don't go above 4096.)
  • Possibly, add a checksum for the number of files, or the first several kilobytes of the file index chunk (including the number of files, and the first few paths).

Restore support for MrSID imagery in Fusion Pro

In the commercial versions of Fusion Pro support for MrSID came from proprietary libraries compiled with a custom version of GDAL. There is no open source replacement library that can restore this functionality. Instead, users would be responsible for acquiring a proprietary license to install and use when building GDAL.

Consider updating scons scripts to check for libraries that provide MrSID support and automatically compile GDAL with it included.

Several fusion gtest unit tests fail on RHEL 7.3

Running the unit tests on RHEL 7.3 results in several failed tests. Investigate failures and correct as needed or create follow-up issues.

Test failures:

Running dbroot_generator_tests ...         FAILED
----------
[==========] Running 6 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 5 tests from Test_dbrootgen
[ RUN      ] Test_dbrootgen.Vector1
Fusion Warning:	XML file does not exist: fusion/testdata/dbroot/vector1/config.xml
Fusion Warning:	Unable to read fusion/testdata/dbroot/vector1/config.xml
unknown file: Failure
C++ exception with description "Unable to load config file fusion/testdata/dbroot/vector1/config.xml" thrown in the test body.
[  FAILED  ] Test_dbrootgen.Vector1 (4 ms)
[ RUN      ] Test_dbrootgen.ImageryTest1
Fusion Warning:	XML file does not exist: fusion/testdata/dbroot/imagery1/config.xml
Fusion Warning:	Unable to read fusion/testdata/dbroot/imagery1/config.xml
unknown file: Failure
C++ exception with description "Unable to load config file fusion/testdata/dbroot/imagery1/config.xml" thrown in the test body.
[  FAILED  ] Test_dbrootgen.ImageryTest1 (0 ms)
[ RUN      ] Test_dbrootgen.TerrainTest1
Fusion Warning:	XML file does not exist: fusion/testdata/dbroot/terrain1/config.xml
Fusion Warning:	Unable to read fusion/testdata/dbroot/terrain1/config.xml
unknown file: Failure
C++ exception with description "Unable to load config file fusion/testdata/dbroot/terrain1/config.xml" thrown in the test body.
[  FAILED  ] Test_dbrootgen.TerrainTest1 (1 ms)
[ RUN      ] Test_dbrootgen.ProtoFormatTest1
Fusion Warning:	XML file does not exist: fusion/testdata/dbroot/vector1/config.xml
Fusion Warning:	Unable to read fusion/testdata/dbroot/vector1/config.xml
unknown file: Failure
C++ exception with description "Unable to load config file fusion/testdata/dbroot/vector1/config.xml" thrown in the test body.
[  FAILED  ] Test_dbrootgen.ProtoFormatTest1 (0 ms)
[ RUN      ] Test_dbrootgen.EncodedFormatTest1
Fusion Warning:	XML file does not exist: fusion/testdata/dbroot/vector1/config.xml
Fusion Warning:	Unable to read fusion/testdata/dbroot/vector1/config.xml
unknown file: Failure
C++ exception with description "Unable to load config file fusion/testdata/dbroot/vector1/config.xml" thrown in the test body.
[  FAILED  ] Test_dbrootgen.EncodedFormatTest1 (0 ms)
[----------] 5 tests from Test_dbrootgen (5 ms total)

[----------] 1 test from Test_dbroot_combiner
[ RUN      ] Test_dbroot_combiner.CombinerTest1
Fusion Warning:	Unable to opendir(fusion/testdata/dbroot/combined1): No such file or directory
Fusion Warning:	Unable to get file info for fusion/testdata/dbroot/combined1/combined: No such file or directory
fusion/dbroot/dbroot_generator_tests.cc:234: Failure
Value of: khFilesEqual(output_file, golden_file)
  Actual: false
Expected: true
[  FAILED  ] Test_dbroot_combiner.CombinerTest1 (3 ms)
[----------] 1 test from Test_dbroot_combiner (3 ms total)

[----------] Global test environment tear-down
[==========] 6 tests from 2 test cases ran. (8 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 6 tests, listed below:
[  FAILED  ] Test_dbrootgen.Vector1
[  FAILED  ] Test_dbrootgen.ImageryTest1
[  FAILED  ] Test_dbrootgen.TerrainTest1
[  FAILED  ] Test_dbrootgen.ProtoFormatTest1
[  FAILED  ] Test_dbrootgen.EncodedFormatTest1
[  FAILED  ] Test_dbroot_combiner.CombinerTest1

 6 FAILED TESTS
...
Running geImageWriter_unittest ...         FAILED
----------
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from geImageWriterTest
[ RUN      ] geImageWriterTest.ImageWriterBasicTest
ERROR 4: fusion/testdata/testmask.tif: No such file or directory
----------
...
Running idl_tests ...                      FAILED
----------
[==========] Running 10 tests from 1 test case.
[----------] Global test environment set-up.
common/khxml/idl_tests.cc:39: Failure
Value of: khDirExists(source_dir_)
  Actual: false
Expected: true
[----------] Global test environment tear-down
[==========] 10 tests from 1 test case ran. (0 ms total)
[  PASSED  ] 10 tests.
[  FAILED  ] 0 tests, listed below:

 0 FAILED TESTS
----------
Running polygontoqtnodes_unittest ... (Seems to hang)
...
Running polymask_unittest ...              FAILED
----------
[==========] Running 10 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 10 tests from PolyMaskTest
[ RUN      ] PolyMaskTest.GoldStandardTest
[       OK ] PolyMaskTest.GoldStandardTest (1 ms)
[ RUN      ] PolyMaskTest.GeodataPreservationTest
ERROR 4: fusion/testdata/i3SF15-meter.tif: No such file or directory
ERROR 4: fusion/testdata/i3SF15-meter.tif: No such file or directory
Fusion Fatal:	Unable to open fusion/testdata/i3SF15-meter.tif. Exception: fusion/testdata/i3SF15-meter.tif: Unable to open. Even GDALOpen failed!
----------

Move tutorial files out of repo

Many contributors have difficulty with git lfs. Accordingly, the tutorial files need to be removed from the main earthenterprise repo and will be hosted elsewhere. The goal is to get the size of the repo down small enough that we no longer have to rely on git-lfs.

AC:

  1. Tutorial files are removed from the main repo
  2. Write follow-on tickets to further reduce the size of the repo and remove git-lfs requirement

Create script that a developer can use to clone repo

The script can perform several helpful steps

  1. Write scripts for all platforms to install dependencies for OpenGEE (git lfs, set up yum repos, install libraries)
  2. Expected workflow - user installs git (but not git lfs), user clones the repo, user runs the script which sets up git lfs, pulls lfs files, and does the other steps
  3. Script should work on all platforms (one script per platform is acceptable)
  4. Update build documentation to reference new scripts
  5. Focus on getting something basic that works

Users would be able to set all of this up with a single command line they can paste from the build instructions page

error occurs when building the third party library

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
scons: *** Error 2
scons: *** [NATIVE-DBG-x86_64/third_party/libjs/.extract_libjs] Error 2
scons: internal stack trace:
File "/usr/lib/scons/SCons/Job.py", line 271, in run
task.execute()
File "/usr/lib/scons/SCons/Script/Main.py", line 188, in execute
SCons.Taskmaster.OutOfDateTask.execute(self)
File "/usr/lib/scons/SCons/Taskmaster.py", line 248, in execute
self.targets[0].build()
File "/usr/lib/scons/SCons/Node/init.py", line 739, in build
self.get_executor()(self, **kw)
File "/usr/lib/scons/SCons/Executor.py", line 396, in call
return _do_execute_map[self._do_execute](self, target, kw)
File "/usr/lib/scons/SCons/Executor.py", line 130, in execute_action_list
raise status
scons: building terminated because of errors.

Fusion UI and geserveradmin get segmentation fault if they cannot contact Publish module

Reproduction steps:

  1. Build a database in fusion
  2. Try to push through the UI (or)
  3. On command line enter: geserveradmin --adddb /gevol/assets/Databases/Basic.kdatabase/gedb.kda/ver004/gedb
  4. In both cases a segmentation fault occurs

[ccamp@gee-oss-rhel tests]$ geserveradmin --adddb /gevol/assets/Databases/Basic.kdatabase/gedb.kda/ver004/gedb
Registering database: /gevol/assets/Databases/Basic.kdatabase/gedb.kda/ver004/gedb ...
[2017-03-28 23:08:20] Warning: No status message returned from
request: http://gee-oss-rhel/geserve/StreamPush?Cmd=Ping&Host=gee-oss-rhel.c.portableglobes.google.com.internal
Segmentation fault

Simplify build process for portable builds on Windows

This is the Windows counterpart of #14.

As a GEE Open Source developer, I want to be able to build Portable globe with a single command in a single-developer Windows environment (in addition to Linux and Mac OS).

Some current problems to be fixed include:

  • A FileUnpacker build_lib script for Windows which has hard-coded paths to the Python installation directory (which can be different for different users, but is discoverable from Python).
  • A failure to import _glc_unpacker in my Windows 10 environment. (SWIG problem?)

Package Portable Server for Windows

As a user, I would like to be able to install Portable Server from a Windows installer.

Considerations:

  • The package may require other software to be installed (such as Python, Tornado, etc.)
  • The installer may check for the existence of required software, and give prompts to the user.
  • The installer may add a service that could be started on start-up.
  • The installer may add items to the Filer Explorer context menu for <.glb> and <.glm> files to be served by a user instance of Portable Server.

AC:

  • Add a build script that produces a Windows installer for Portable Server for the architecture you are building on. (64-bit x86 should be supported.)
  • The service should be configurable from files under the user's AppData.
  • A user without administrative privileges should be able to start the server from the command line.
  • The installer should work on recent versions of Windows (10?, to be clarified).

Package Portable Server for Red Hat OSes

As a user, I would like to be able to install Portable Server from a Red Hat package, or from an EPEL repository.

AC:

  • Add a build script that produces a Red Hat package with Portable Server for the architecture you are building on. (64-bit x86 should be supported.)
  • The package should add a service that could be added to a run-level.
  • The service should be configurable from files under .
  • A non-root user should be able to start the server from the command line, without running the system service.
  • The package should install on recent versions of RHEL (to be clarified).

Bug in Portable UI when canceling

Portable cutter presents an error to the user whenever a cut is canceled, regardless of whether the cut is successfully canceled

This error message is misleading as the action proceeds correctly#

Clarify status of installation scripts on GitHub README.md

The README.md file at the top level of the repo does not reflect the current state of the installation scripts and when they're expected. It also specifies support for several OSes that haven't been tested. This should be updated to reflect the current status of the project.

I've gotten several issues created with users asking for installation instructions. I've been explaining the status and closing them as duplicates.

This should probably be added to the FAQ as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.