Compare commits

..

13 Commits

Author SHA1 Message Date
Automatic Release Builder
12fce0f5e9 new version: 2018.3.5 2020-04-02 08:41:52 +01:00
James Turner
08633dad45 2018.3.5 release commits 2020-04-02 08:41:35 +01:00
James Turner
c0af026d3c Update FG & SG versions to pick up some fixes 2020-03-22 11:06:19 +00:00
James Turner
7e14b07a6b macOS: code-signing changes 2020-03-20 09:35:03 +00:00
James Turner
5d5e58e3b9 Update 2018.3 branch tags 2019-11-12 15:16:10 +00:00
James Turner
4e073285d9 Notarization support in macOS packaging scripts 2019-11-12 15:16:01 +00:00
James Turner
4adf49587b New version: 2018.3.4 2019-08-07 10:02:47 +01:00
Torsten Dreyer
414402268b New version: 2018.3.3 2019-07-28 22:45:07 +02:00
James Turner
8413bbac76 Update for 2018.3.2 2019-01-06 16:16:10 +00:00
James Turner
6c7fdbc0c6 Remove -j option to Cmake --build 2018-11-26 13:54:12 +00:00
James Turner
ffdd4f062f Use Cmake -build to compile 2018-10-23 12:10:01 +01:00
James Turner
bf5ec63ac3 Include the OSG .DDS loader plugin in Mac builds 2018-10-05 13:14:27 +01:00
Torsten Dreyer
83abaeeee2 set correct release-branch for submodules 2018-09-21 17:22:27 +02:00
33 changed files with 703 additions and 2085 deletions

2
.gitignore vendored
View File

@@ -1,6 +1,6 @@
dist
.DS_Store
install*/
install
3rdParty
3rdParty.x64
boost_1_44_0

8
.gitmodules vendored
View File

@@ -1,11 +1,11 @@
[submodule "simgear"]
path = simgear
url = ../simgear
branch = next
branch = release/2018.3
[submodule "flightgear"]
path = flightgear
url = ../flightgear
branch = next
branch = release/2018.3
[submodule "fgrun"]
path = fgrun
url = ../fgrun
@@ -13,7 +13,7 @@
[submodule "fgdata"]
path = fgdata
url = ../fgdata
branch = next
branch = release/2018.3
[submodule "windows-3rd-party"]
path = windows-3rd-party
url = ../windows-3rd-party
@@ -21,4 +21,4 @@
[submodule "getstart"]
path = getstart
url = ../getstart
branch = next
branch = release/2018.3

View File

@@ -85,8 +85,6 @@ Source: "{#ThirdPartyDir}\3rdParty\bin\libintl-8.dll"; DestDir: "{app}\bin"; Che
Source: "{#ThirdPartyDir}\3rdParty\bin\CrashRpt1403.dll"; DestDir: "{app}\bin"; Check: not Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty\bin\crashrpt_lang.ini"; DestDir: "{app}\bin"; Check: not Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty\bin\CrashSender1403.exe"; DestDir: "{app}\bin"; Check: not Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty\bin\dbus-1-3.dll"; DestDir: "{app}\bin"; Check: not Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty\bin\event_core.dll"; DestDir: "{app}\bin"; Check: not Is64BitInstallMode
; 64 bits install
Source: "{#InstallDir64}\bin\*.*"; DestDir: "{app}\bin"; Excludes: "{#ExcludedBinaries}"; Flags: ignoreversion recursesubdirs; Check: Is64BitInstallMode
@@ -101,8 +99,6 @@ Source: "{#ThirdPartyDir}\3rdParty.x64\bin\libintl-8.dll"; DestDir: "{app}\bin";
Source: "{#ThirdPartyDir}\3rdParty.x64\bin\CrashRpt1403.dll"; DestDir: "{app}\bin"; Check: Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty.x64\bin\crashrpt_lang.ini"; DestDir: "{app}\bin"; Check: Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty.x64\bin\CrashSender1403.exe"; DestDir: "{app}\bin"; Check: Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty.x64\bin\dbus-1-3.dll"; DestDir: "{app}\bin"; Check: Is64BitInstallMode
Source: "{#ThirdPartyDir}\3rdParty.x64\bin\event_core.dll"; DestDir: "{app}\bin"; Check: Is64BitInstallMode
; Include the base package
#if IncludeData == "TRUE"

View File

@@ -1,123 +1,96 @@
# Nasa2FGearthview
A bash-script to convert NASA satellite images to ready-to-use
textures for FG's EarthView using ImageMagick and normalmap
textures for FG's EarthView using ImageMagick.
You can get "normalmap" there:
https://github.com/planrich/normalmap
For info about FGearthview, see the forum thread:\
For info about FGearthview, see the forum thread:
https://forum.flightgear.org/viewtopic.php?f=6&t=15754
or this FG-wiki-page:\
or this FG-wiki-page:
http://wiki.flightgear.org/Earthview
### Caution!
Don't use this script on a server! It will most likely cause
Denial-of-service (DoS). When working on these huge images, the
harddisk throughput will cease occasionally and CPU / RAM usage will
spike tremendously! So, only use this script on your home desktop
computer, or if you don't mind several long server-outages...
------------------------------------
## About:
About:
This script runs on Linux (maybe Mac also?) in a Bash
(Bourne Again Shell) - Windows is not supported (by the nature of the
script). Maybe it works on windows as well, I don't know, feel free
to try, and please let me know! :)
This will download the raw images from http://visibleearth.nasa.gov -
their server is not very fast, so I provide an alternative download
location: https://musicchris.de/download/FG/EarthView/raw-data-NASA.7z
This one is much quicker! If you really want the images directly from
NASA, then provide "nasa" to the script (see below)
In the end you will have 8 world-textures in .png and .dds format.
Generally .dds is better in performance, but it won't work on some
graphics cards. If this is the case for you, then try the .png files.
For further information see:\
For further information see:
http://wiki.flightgear.org/index.php?title=DDS_Textures_in_FlightGear&redirect=no
If you also converted the clouds and the height maps, then you'll also
find 8 cloud- and 8 height textures (as well as their conversion to
normal maps) in the format .png. Because the .dds-format has trouble
with rendering heavy alpha images, which is because of it's
compression algorythm [1], I think it's useless to also build faulty
files. However, this is not entirely true! It is possible to switch
off the .dds/DXT compression. But this results in huge files and is
rather heavy on the GPU's RAM.
If you also converted the clouds, then you'll also find 8 cloud-
textures in the format .png. Because the .dds-format has trouble with
rendering heavy alpha images, which is because of it's compression
algorythm [1], I think it's useless to also build faulty files.
However, this is not entirely true! It is possible to switch off the
.dds/DXT compression. But this results in huge files and is rather
heavy on the GPU's RAM.
Buckaroo has created a nice overview on dds-compression:
[1] http://www.buckarooshangar.com/flightgear/tut_dds.html
------------------------------------
## Installation and usage:
Installation and usage:
Simply copy "convert.sh" into a folder of your liking and run it:
```shell
./convert.sh
```
$ ./convert.sh
This will show a help text, since you didn't specify any target(s).
Possible targets are:
* world
* clouds
* heights
* all
Additionally, there are some options you could specify (further
explained below):
* 1k | 2k | 4k | 8k | 16k
* download | no-download
* world
* clouds
* heights
* nasa
* no-download
* cleanup
* rebuild
* check
So your call could look sth like this:
```shell
./convert.sh world download alt cleanup 8k
```
$ ./convert.sh world no-download cleanup 8k
------------------------------------
## Requirements:
Requirements:
WARNING!
This script uses a *lot* disk space! In my last test run, which
generated all maps in all resolutions, the disk usage was about 330GB!
Beware!\
Also, I wouldn't recommend doing this on a SSD! While SSDs are
generally faster, they also get more wear-and-tear when write such
huge files. So this script might cause your SSD to die earlier as it
should. Generally speaking, this won't kill your SSD, but it might
cause it to die earlier. HDDs are much more robust in that respect.
This script uses a *lot* disk space! Make sure you have at least 90GB
available!
Also, this script will run for a *very long* time! It might be best to
let it run over night - your computer might become unresponsive from
time to time, due to the heavy CPU and memory load, which tends to
occur, when converting 54000x27000 images. ;-)
I also recommend to deactivate swapping!
```shell
sudo swapoff -a
```
$ sudo swapoff -a
To reactivate swapping do:
```shell
$ sudo swapon -a
```
This script relies on wget, ImageMagick and, for converting the height
maps to normal maps, on "normalmap". Some of these programs are easily
installed by your systems package-management-system.\ (On
Debian/Ubuntu this is "apt-get").
This script relies on wget and imagemagick. Both are easily installed
by your systems package-management-system.
(On Debian/Ubuntu this is "apt-get")
So, on Debian for instance, you only need to put the following into
the console:
```shell
sudo apt-get install wget imagemagick
```
$ sudo apt-get install wget imagemagick
Depending on your distro, the package names might differ slightly! Use
a search engine of your choice to find out, how the packages are named
@@ -125,92 +98,70 @@ in your distro!
You may want to check:
```shell
apt search imagemagick
```
$ apt search imagemagick
### IMPORTANT!
Check out your ```/etc/ImageMagick-6/policy.xml```
On some distros, there are limits set, which will cause IM to abort
the conversion of images larger than
[rediculously small images](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860763).
Edit and set to our needs:
* width: at least 55000
* height: at least 55000
* area: less than your free RAM
### Normalmap
For normalmap, you can download and compile it from
https://github.com/planrich/normalmap
You can install the binary into your system, or just copy it next to
convert.sh - both should work.
------------------------------------
## Targets:
Targets:
**world**\
Generates the world tiles, needed to run FG with EarthView.
You will find the results in output/[$resolution]/\*. Copy
these into $FGDATA/Models/Astro/\*. More about the installation
of these textures can be found here:
http://wiki.flightgear.org/Earthview#Customization
world
Generates the world tiles, needed to run FG with EarthView.
You will find the results in output/[$resolution]/*. Copy
these into $FGDATA/Models/Astro/*. More about the installation
of these textures can be found here:
http://wiki.flightgear.org/Earthview#Customization
**clouds**\
Generates the cloud tiles, needed to run FG with EarthView.
The locations are the same as the other textures mentioned
above. Note that clouds are only available with up to 8k
resolution, due to the available data at NASA.
clouds
Generates the cloud tiles, needed to run FG with EarthView.
The locations are the same as the other textures mentioned
above. Note that clouds are only available with up to 8k
resolution, due to the available data at NASA.
**heights**\
Generates the height tiles, which are then converted to the
normal maps needed to run FG with EarthView. The locations are
the same as the other textures mentioned above. Note that
heights are only available with up to 8k resolution, due to the
available data at NASA.
**all**\
Converts everything needed for a full-blown earthview texture
set. Does the same as:
```./convert.sh world clouds heights```
all
Converts everything needed for a full-blown earthview texture
set. Does the same as:
$ ./convert.sh world clouds
## Options:
Options:
**1k | 2k | 4k | 8k | 16k**\
Lets you specify a desired resolution of the textures.
Possible values are 1k, 2k, 4k, 8k and 16k. If nothing is
specified, the script will generate all of the resolutions.
16k is recommended only for earth textures, it will induce
oversampling from clouds and height maps.
1k | 2k | 4k | 8k | 16k
Lets you specify a desired resolution of the textures.
Possible values are 1k, 2k, 4k, 8k and 16k. If nothing is
specified, the script will generate all of the resolutions.
16k is only available for earth textures.
**download**\
Causes the script to download the needed data, this is the
default behavior (and can be omitted).
nasa
Causes the script to download directly from
http://visibleearth.nasa.gov . If omitted the script will
download from
https://musicchris.de/download/FG/EarthView/raw-data-NASA.7z
which is much faster!
Uses wget either way.
**no-download**\
Causes the script to skip the download function. If you
already have the source images, then you don't need to
re-download them. (About 2.4GB!)
If omitted, the script will download the source images from
the default location.
no-download
Causes the script to skip the download function. If you
already have the source images, then you don't need to
re-download them. (About 2.4GB!)
If omitted, the script will download the source images from
https://musicchris.de/download/FG/EarthView/raw-data-NASA.7z
**cleanup**\
Deletes the temporary files created during texture generation.
These can be found in tmp/
Note: if for some reason you later want some other resolution,
then it's good to have the data there. So only do this, when
you're quite sure that you're done.
Frees up a lot of disk-space! Which would have to be
regenerated if needed again.
cleanup
Deletes the temporary files created during texture generation.
These can be found in tmp/
Note: if for some reason you later want some other resolution,
then it's good to have the data there. So only do this, when
you're quite sure that you're done.
Frees up a lot of disk-space! Which would have to be
regenerated if needed again.
**rebuild**\
Deletes only the temporary files of the given target. So if
you call ```./convert.sh rebuild world``` the script will delete
all corresponding temp-files of the target world, which will
trigger a complete regeneration of the relevant (instead of
skipping existing files)
rebuild
Deletes only the temporary files of the given target. So if
you call './convert.sh rebuild world' the script will delete
all corresponding temp-files of the target world, which will
trigger a complete regeneration of the relevant (instead of
skipping existing files)
**check**\
Creates mosaics of the tiles, so you can look at them and see
if all went well.
check
Creates mosaics of the tiles, so you can look at them and see
if all went well.

File diff suppressed because it is too large Load Diff

View File

@@ -41,7 +41,7 @@ cp simgear-*.tar.bz2 ../output/.
#####################################################################################
echo "Starting on FlightGear"
cd ../fgBuild
cmake -DCMAKE_INSTALL_PREFIX:PATH=$WORKSPACE/dist -DSIMGEAR_SHARED:BOOL="ON" -DENABLE_SWIFT:BOOL=ON -DFG_BUILD_TYPE=Release ../flightgear
cmake -DCMAKE_INSTALL_PREFIX:PATH=$WORKSPACE/dist -DSIMGEAR_SHARED:BOOL="ON" -DFG_BUILD_TYPE=Release ../flightgear
# compile
make

View File

@@ -37,8 +37,7 @@ cmake ..\flightgear -G "Visual Studio 14" ^
-DBOOST_ROOT=%WORKSPACE%/windows-3rd-party ^
-DOSG_FSTREAM_EXPORT_FIXED=1 ^
-DCMAKE_PREFIX_PATH=%QT5SDK32%;%OSG32% ^
-DFG_BUILD_TYPE=%FGBUILDTYPE% ^
-DENABLE_SWIFT:BOOL=ON
-DFG_BUILD_TYPE=%FGBUILDTYPE%
cmake --build . --config RelWithDebInfo --target INSTALL
cd ..
@@ -63,8 +62,7 @@ cmake ..\flightgear -G "Visual Studio 14 Win64" ^
-DCMAKE_INSTALL_PREFIX:PATH=%WORKSPACE%/install/msvc140-64 ^
-DCMAKE_PREFIX_PATH=%QT5SDK64%;%OSG64% ^
-DOSG_FSTREAM_EXPORT_FIXED=1 ^
-DFG_BUILD_TYPE=%FGBUILDTYPE% ^
-DENABLE_SWIFT:BOOL=ON
-DFG_BUILD_TYPE=%FGBUILDTYPE%
cmake --build . --config RelWithDebInfo --target INSTALL
cd ..

View File

@@ -2,8 +2,7 @@
import argparse
import datetime
#import xml.etree.cElementTree as ET
import lxml.etree as ET
import xml.etree.cElementTree as ET
import os
import re
import sgprops
@@ -213,7 +212,7 @@ def append_author_nodes(node, info):
# traditional single author string
node.append( make_xml_leaf('author', info['author']) )
def make_aircraft_node(aircraftDirName, package, variants, downloadBase, mirrors):
def make_aircraft_node(aircraftDirName, package, variants, downloadBase):
#print "package:", package
#print "variants:", variants
package_node = ET.Element('package')
@@ -262,15 +261,9 @@ def make_aircraft_node(aircraftDirName, package, variants, downloadBase, mirrors
package_node.append( make_xml_leaf('dir', aircraftDirName) )
# primary URL is first
download_url = downloadBase + aircraftDirName + '.zip'
package_node.append( make_xml_leaf('url', download_url) )
for m in mirrors:
mu = m + aircraftDirName + '.zip'
package_node.append( make_xml_leaf('url', mu) )
if 'thumbnail' in package:
thumbnail_url = downloadBase + 'thumbnails/' + aircraftDirName + '_' + package['thumbnail']
package_node.append( make_xml_leaf('thumbnail', thumbnail_url) )

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<local-output>/home/fgaddon/output/Aircraft-trunk</local-output>
<download-url n="0">http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-trunk/</download-url>
<download-url n="1">http://ukmirror.flightgear.org/fgaddon/Aircraft-trunk/</download-url>
<thumbnail-url n="0">http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-trunk/thumbnails</thumbnail-url>
<thumbnail-url n="1">http://ukmirror.flightgear.org/fgaddon/Aircraft-trunk/thumbnails</thumbnail-url>
<scm>
<type>svn</type>
<path>/home/fgaddon/fgaddon-trunk/Aircraft</path>
<skip>NTPS</skip>
<skip>c172</skip>
<skip>tu134</skip>
</scm>
<include-dir>/home/fgaddon/fgdata</include-dir>
<include-dir>/home/fgaddon/fgaddon-trunk</include-dir>
<!-- <scm>
<type>git</type>
<update type="bool">false</update>
<path>/Users/jmt/FGFS/fgdata</path>
<url>git://git.code.sf.net/p/flightgear/fgdata</url>
</scm> -->
<upload n="0">
<enabled type="bool">true</enabled>
<type>rsync-ssh</type>
<remote>ibiblio:/public/mirrors/flightgear/ftp/Aircraft</remote>
</upload>
</PropertyList>

View File

@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<template>
<version n="0">2019.*</version>
<version n="1">2018.*</version>
<id>org.flightgear.fgaddon.trunk</id>
<license>GPL</license>
<url>http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-trunk/catalog.xml</url>
<name>FlightGear aircraft distribution from fgaddon</name>
<description>This hangar provides aircraft officially supported and maintained by the FlightGear project,
under a free-software license. It tracks latest aircraft developments in the FGaddon repository.</description>
<!-- <de>
<description>Auf Deutsch</description>
</de>
<fr>
<description>En Francais</description>
</fr> -->
</template>
</PropertyList>

View File

@@ -1,5 +0,0 @@
*/.svn/*
*.xcf
*.blend
*.psd
*~

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<local-output>/home/fgaddon/output/Aircraft</local-output>
<download-url n="0">http://mirrors.ibiblio.org/flightgear/ftp/Aircraft/</download-url>
<download-url n="1">http://ukmirror.flightgear.org/fgaddon/Aircraft/</download-url>
<thumbnail-url n="0">http://mirrors.ibiblio.org/flightgear/ftp/Aircraft/thumbnails</thumbnail-url>
<thumbnail-url n="1">http://ukmirror.flightgear.org/fgaddon/Aircraft/thumbnails</thumbnail-url>
<scm>
<type>svn</type>
<path>/home/fgaddon/fgaddon-legacy/Aircraft</path>
<skip>NTPS</skip>
<skip>c172</skip>
<skip>tu134</skip>
</scm>
<include-dir>/home/fgaddon/fgdata-legacy</include-dir>
<include-dir>/home/fgaddon/fgaddon-legacy</include-dir>
<upload n="0">
<enabled type="bool">true</enabled>
<type>rsync-ssh</type>
<remote>ibiblio:/public/mirrors/flightgear/ftp/Aircraft-legacy</remote>
</upload>
</PropertyList>

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<template>
<version n="0">3.4.*</version>
<version n="1">3.5.*</version>
<version n="2">3.6.*</version>
<version n="3">3.7.*</version>
<version n="5">2016.*.*</version>
<version n="6">2017.*.*</version>
<version n="7">2018.*.*</version>
<!-- the legacy catalog has to have this ID, becuase this is what older FG
clients expect -->
<id>org.flightgear.fgaddon</id>
<license>GPL</license>
<url>http://mirrors.ibiblio.org/flightgear/ftp/Aircraft/catalog.xml</url>
<name>FlightGear aircraft(legacy support)</name>
<description>This hangar provides aircraft officially supported and maintained by the
FlightGear project, under a free-software license. Aircraft are intended for
use with FlightGear versions 2018.2 and older.</description>
<!-- <alternate-version>
<version>2019.*</version>
<version>2018.4.*</version>
<url>http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-trunk/catalog.xml</url>
<id>org.flightgear.fgaddon.trunk</id>
</alternate-version>
<alternate-version>
<version>2018.3.*</version>
<url>http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-2018/catalog.xml</url>
<id>org.flightgear.fgaddon.stable_2018</id>
</alternate-version>
-->
</template>
</PropertyList>

View File

@@ -1,5 +0,0 @@
*/.svn/*
*.xcf
*.blend
*.psd
*~

View File

@@ -2,8 +2,7 @@
from xml.sax import make_parser, handler, expatreader
# ElementTree for writing
#import xml.etree.cElementTree as ET
import lxml.etree as ET
import xml.etree.cElementTree as ET
import re, os

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Template catalog - copy and modify for your site as required-->
<PropertyList>
<local-output>/home/fgaddon/output/Aircraft-2018</local-output>
<download-url n="0">http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-2018/</download-url>
<download-url n="1">http://ukmirror.flightgear.org/fgaddon/Aircraft-2018/</download-url>
<thumbnail-url n="0">http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-2018/thumbnails</thumbnail-url>
<thumbnail-url n="1">http://ukmirror.flightgear.org/official/Aircraft-2018/thumbnails</thumbnail-url>
<!-- share zips with the trunk catalog where possible -->
<share-output>/home/fgaddon/output/Aircraft</share-output>
<share-md5-sums>/home/fgaddon/fgmeta/catalog/fgaddon-catalog-ukmirror/md5sum.xml</share-md5-sums>
<scm>
<type>svn</type>
<path>/home/fgaddon/fgaddon-release-2018.3/Aircraft</path>
<skip>NTPS</skip>
<skip>c172</skip>
<skip>tu134</skip>
</scm>
<include-dir>/home/fgaddon/fgdata-release_2018.3</include-dir>
<include-dir>/home/fgaddon/fgaddon-release-2018.3</include-dir>
<upload n="0">
<enabled type="bool">true</enabled>
<type>rsync-ssh</type>
<remote>ibiblio:/public/mirrors/flightgear/ftp/Aircraft-2018</remote>
</upload>
</PropertyList>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<template>
<version n="0">2018.*</version>
<id>org.flightgear.fgaddon.stable_2018</id>
<license>GPL</license>
<url>http://mirrors.ibiblio.org/flightgear/ftp/Aircraft-2018/catalog.xml</url>
<name>FlightGear aircraft distribution for 2018.x versions</name>
<description>This hangar provides aircraft officially supported and maintained
by the FlightGear project, under a free-software license. These aircraft
are compatible with FlightGear versions from 2018.</description>
</template>
</PropertyList>

View File

@@ -1,5 +0,0 @@
*/.svn/*
*.xcf
*.blend
*.psd
*~

View File

@@ -24,13 +24,10 @@ parser.add_argument("--no-update",
action="store_true")
parser.add_argument("--clean", help="Force regeneration of all zip files",
action="store_true")
parser.add_argument("--quiet", help="Only print warnings and errors",
action="store_true")
parser.add_argument("dir", help="Catalog directory")
args = parser.parse_args()
includes = []
mirrors = [] # mirror base URLs
# xml node (robust) get text helper
def get_xml_text(e):
@@ -67,8 +64,7 @@ def scan_dir_for_change_date_mtime(path):
return maxsec
def make_aircraft_zip(repo_path, name, zip_file):
if (not args.quiet):
print "Updating:", name + '.zip'
print "Updating:", name + '.zip'
savedir = os.getcwd()
os.chdir(repo_path)
if os.path.exists(zip_file):
@@ -133,7 +129,6 @@ def process_aircraft_dir(name, repo_path):
global output_dir
global valid_zips
global previews_dir
global mirrors
aircraft_dir = os.path.join(repo_path, name)
if not os.path.isdir(aircraft_dir):
@@ -141,14 +136,12 @@ def process_aircraft_dir(name, repo_path):
(package, variants) = catalog.scan_aircraft_dir(aircraft_dir, includes)
if package == None:
if not args.quiet:
print "skipping:", name, "(no -set.xml files)"
print "skipping:", name, "(no -set.xml files)"
return
if not args.quiet:
print "%s:" % name,
print "%s:" % name,
package_node = catalog.make_aircraft_node(name, package, variants, download_base, mirrors)
package_node = catalog.make_aircraft_node(name, package, variants, download_base)
download_url = download_base + name + '.zip'
if 'thumbnail' in package:
@@ -175,13 +168,11 @@ def process_aircraft_dir(name, repo_path):
or dir_mtime > os.path.getmtime(zipfile) \
or args.clean:
# rebuild zip file
if not args.quiet:
print "updating:", zipfile
print "updating:", zipfile
make_aircraft_zip(repo_path, name, zipfile)
md5sum = get_md5sum(zipfile)
else:
if not args.quiet:
print "(no change)"
print "(no change)"
if md5sum == "":
md5sum = get_md5sum(zipfile)
filesize = os.path.getsize(zipfile)
@@ -195,18 +186,6 @@ def process_aircraft_dir(name, repo_path):
else:
md5sum_root.append( catalog.make_xml_leaf('aircraft_' + name, md5sum) )
# handle sharing
if share_md5sum_root != None:
sharedNode = share_md5sum_root.find(str('aircraft_' + name))
if node != None:
shared_md5 = get_xml_text(sharedNode)
if shared_md5 == md5sum:
if not args.quiet:
print "Sharing zip with share catalog for:",name
os.remove(zipfile)
os.symlink(os.path.join( share_output_dir, name + '.zip' ), zipfile)
# handle thumbnails
copy_thumbnails_for_package(package, variants, name, aircraft_dir, thumbnail_dir)
@@ -245,31 +224,11 @@ else:
md5sum_root = ET.Element('PropertyList')
md5sum_tree = ET.ElementTree(md5sum_root)
# share .zip files with other output dirs
share_output_dir = get_xml_text(config_node.find('share-output'))
share_md5_file = get_xml_text(config_node.find('share-md5-sums'))
if share_output_dir != '' and share_md5_file != '':
print 'Output shared with:', share_output_dir
share_md5sum_tree = ET.parse(share_md5_file, parser)
share_md5sum_root = share_md5sum_tree.getroot()
else:
share_md5sum_root = None
# SCM providers
scm_list = config_node.findall('scm')
upload_node = config_node.find('upload')
download_base = None
for i in config_node.findall("download-url"):
url = get_xml_text(i)
if not url.endswith('/'):
url += '/'
if download_base == None:
# download_base is the first entry
download_base = url
else:
mirrors.append(url)
download_base = get_xml_text(config_node.find('download-url'))
if not download_base.endswith('/'):
download_base += '/'
output_dir = get_xml_text(config_node.find('local-output'))
if output_dir == '':
@@ -341,8 +300,7 @@ for scm in scm_list:
names = os.listdir(repo_path)
for name in sorted(names, key=lambda s: s.lower()):
if name in skip_list:
if not args.quiet:
print "skipping:", name
print "skipping:", name
continue
# process each aircraft in turn

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
scratch-*/
vcpkg-git/

View File

@@ -46,10 +46,8 @@ IF NOT EXIST vcpkg-git/NUL (
)
cd %ROOT_DIR%
IF NOT EXIST openscenegraph-3.4-build/NUL (
mkdir openscenegraph-3.4-build
)
IF NOT EXIST openscenegraph-3.4-git/NUL (
mkdir openscenegraph-3.4-build
echo Downloading OpenSceneGraph . . .
git clone -b OpenSceneGraph-3.4 https://github.com/openscenegraph/OpenSceneGraph.git openscenegraph-3.4-git
) ELSE (
@@ -59,10 +57,8 @@ IF NOT EXIST openscenegraph-3.4-git/NUL (
)
cd %ROOT_DIR%
IF NOT EXIST simgear-build/NUL (
mkdir simgear-build
)
IF NOT EXIST simgear-git/NUL (
mkdir simgear-build
echo Downloading SimGear . . .
git clone -b next https://git.code.sf.net/p/flightgear/simgear simgear-git
) ELSE (
@@ -72,10 +68,8 @@ IF NOT EXIST simgear-git/NUL (
)
cd %ROOT_DIR%
IF NOT EXIST flightgear-build/NUL (
mkdir flightgear-build
)
IF NOT EXIST flightgear-git/NUL (
mkdir flightgear-build
echo Downloading FlightGear . . .
git clone -b next https://git.code.sf.net/p/flightgear/flightgear flightgear-git
) ELSE (
@@ -85,10 +79,8 @@ IF NOT EXIST flightgear-git/NUL (
)
cd %ROOT_DIR%
IF NOT EXIST terragear-build/NUL (
mkdir terragear-build
)
IF NOT EXIST terragear-git/NUL (
mkdir terragear-build
echo Downloading TerraGear . . .
git clone -b next https://git.code.sf.net/p/flightgear/terragear terragear-git
) ELSE (

View File

@@ -1,202 +0,0 @@
#!/bin/bash
# fg-from-scratch - Linux utility to download, compile, and stage TerraGear and its dependencies
# Copyright (C) 2018 Scott Giese (xDraconian) scttgs0@gmail.com
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
QT_SELECT=qt5
ROOT_DIR=${PWD}
PATH=${ROOT_DIR}/vcpkg-git/installed/x64-linux/bin:${PATH}
CMAKE_TOOLCHAIN="Ninja"
CHIPSET=$(gcc -march=native -Q --help=target | grep -- '-march=' | cut -f3)
QT5x64=$(qtpaths --install-prefix)
QT5x64_LIB=${QT5x64}/lib
QT5x64_CMAKE=${QT5x64_LIB}/cmake
QT5x64_PKGCONFIG=${QT5x64_LIB}/pkgconfig
export PKG_CONFIG_PATH=${ROOT_DIR}/scratch-install/lib64/pkgconfig:${ROOT_DIR}/vcpkg-git/installed/x64-linux/lib/pkgconfig:${QT5x64_PKGCONFIG}
echo ${QT5x64}
if [ ! -d "vcpkg-git" ]
then
echo Preparing to install external libraries via vcpkg . . .
git clone https://github.com/Microsoft/vcpkg.git vcpkg-git
echo Compiling vcpkg
cd vcpkg-git
./bootstrap-vcpkg.sh
echo Compiling external libraries . . .
./vcpkg install --triplet x64-linux boost cgal curl freeglut freetype glew jasper libxml2 openal-soft openssl plib sdl2 tiff zlib
else
echo Updating vcpkg . . .
cd vcpkg-git
PULL_RESULT=$(git pull)
if [ "${PULL_RESULT}" != "Already up to date." ]
then
echo Compiling vcpkg
./bootstrap-vcpkg.sh
fi
echo Updating external libraries . . .
./vcpkg update
./vcpkg upgrade --triplet x64-linux --no-dry-run
echo Compiling external libraries . . .
./vcpkg install --triplet x64-linux boost cgal curl freeglut freetype glew jasper libxml2 openal-soft openssl plib sdl2 tiff zlib
fi
cd ${ROOT_DIR}
if [ ! -d "scratch-source" ]
then
mkdir scratch-source
fi
if [ ! -d "scratch-build" ]
then
mkdir scratch-build
fi
if [ ! -d "scratch-install" ]
then
mkdir scratch-install
fi
if [ ! -d "scratch-build/openscenegraph-3.4" ]
then
mkdir scratch-build/openscenegraph-3.4
fi
if [ ! -d "scratch-source/openscenegraph-3.4-git" ]
then
echo Downloading OpenSceneGraph . . .
git clone -b OpenSceneGraph-3.4 https://github.com/openscenegraph/OpenSceneGraph.git scratch-source/openscenegraph-3.4-git
else
echo Updating OpenSceneGraph . . .
cd scratch-source/openscenegraph-3.4-git
git pull
fi
cd ${ROOT_DIR}
if [ ! -d "scratch-build/simgear" ]
then
mkdir scratch-build/simgear
fi
if [ ! -d "scratch-source/simgear-git" ]
then
echo Downloading SimGear . . .
git clone -b next https://git.code.sf.net/p/flightgear/simgear scratch-source/simgear-git
else
echo Updating SimGear . . .
cd scratch-source/simgear-git
git pull
fi
cd ${ROOT_DIR}
if [ ! -d "scratch-build/flightgear" ]
then
mkdir scratch-build/flightgear
fi
if [ ! -d "scratch-source/flightgear-git" ]
then
echo Downloading FlightGear . . .
git clone -b next https://git.code.sf.net/p/flightgear/flightgear scratch-source/flightgear-git
else
echo Updating FlightGear . . .
cd scratch-source/flightgear-git
git pull
fi
cd ${ROOT_DIR}
if [ ! -d "scratch-build/terragear" ]
then
mkdir scratch-build/terragear
fi
if [ ! -d "scratch-source/terragear-git" ]
then
echo Downloading TerraGear . . .
git clone -b next https://git.code.sf.net/p/flightgear/terragear scratch-source/terragear-git
else
echo Updating TerraGear . . .
cd scratch-source/terragear-git
git pull
fi
cd ${ROOT_DIR}
echo Compiling OpenSceneGraph . . .
cd scratch-build/openscenegraph-3.4
cmake ../../scratch-source/openscenegraph-3.4-git -G ${CMAKE_TOOLCHAIN} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${ROOT_DIR}/scratch-install \
-DCMAKE_PREFIX_PATH=${ROOT_DIR}/scratch-install/lib:${ROOT_DIR}/vcpkg-git/installed/x64-linux/lib:${QT5x64_LIB} \
-DCMAKE_CXX_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}" \
-DCMAKE_C_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}" \
-DBUILD_DOCUMENTATION:BOOL=1 \
-DBUILD_OSG_APPLICATIONS:BOOL=1 \
-DQt5Core_DIR=${QT5x64_CMAKE}/Qt5Core \
-DQt5Gui_DIR=${QT5x64_CMAKE}/Qt5Gui \
-DQt5OpenGL_DIR=${QT5x64_CMAKE}/Qt5OpenGL \
-DQt5Widgets_DIR=${QT5x64_CMAKE}/Qt5Widgets
cmake --build . --config Release --target install
cd ${ROOT_DIR}
echo Compiling SimGear . . .
cd scratch-build/simgear
cmake ../../scratch-source/simgear-git -G ${CMAKE_TOOLCHAIN} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${ROOT_DIR}/scratch-install \
-DCMAKE_PREFIX_PATH=${ROOT_DIR}/scratch-install/lib:${ROOT_DIR}/vcpkg-git/installed/x64-linux/lib:${QT5x64} \
-DCMAKE_CXX_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}" \
-DCMAKE_C_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}"
cmake --build . --config Release --target install
cd ${ROOT_DIR}
echo Compiling FlightGear . . .
cd scratch-build/flightgear
cmake ../../scratch-source/flightgear-git -G ${CMAKE_TOOLCHAIN} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${ROOT_DIR}/scratch-install \
-DCMAKE_PREFIX_PATH=${ROOT_DIR}/scratch-install/lib:${ROOT_DIR}/vcpkg-git/installed/x64-linux/lib:${QT5x64_LIB} \
-DCMAKE_CXX_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}" \
-DCMAKE_C_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}" \
-DOSG_FSTREAM_EXPORT_FIXED:BOOL=1 \
-DENABLE_JSBSIM:BOOL=1 \
-DENABLE_GPSSMOOTH:BOOL=1 \
-DENABLE_FGVIEWER:BOOL=1 \
-DENABLE_STGMERGE:BOOL=0 \
-DQt5Core_DIR=${QT5x64_CMAKE}/Qt5Core \
-DQt5Gui_DIR=${QT5x64_CMAKE}/Qt5Gui \
-DQt5LinguistTools_DIR=${QT5x64_CMAKE}/Qt5LinguistTools \
-DQt5Network_DIR=${QT5x64_CMAKE}/Qt5Network \
-DQt5Qml_DIR=${QT5x64_CMAKE}/Qt5Qml \
-DQt5Quick_DIR=${QT5x64_CMAKE}/Qt5Quick \
-DQt5Svg_DIR=${QT5x64_CMAKE}/Qt5Svg \
-DQt5Widgets_DIR=${QT5x64_CMAKE}/Qt5Widgets \
-DQt5_DIR=${QT5x64_CMAKE}/Qt5
cmake --build . --config Release --target install
cd ${ROOT_DIR}
echo Compiling TerraGear . . .
cd scratch-build/terragear
cmake ../../scratch-source/terragear-git -G ${CMAKE_TOOLCHAIN} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${ROOT_DIR}/scratch-install \
-DCMAKE_PREFIX_PATH=${ROOT_DIR}/scratch-install/lib:${ROOT_DIR}/vcpkg-git/installed/x64-linux/lib:${QT5x64_LIB} \
-DCMAKE_CXX_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}" \
-DCMAKE_C_FLAGS="-march=${CHIPSET} -mtune=${CHIPSET}"
cmake --build . --config Release --target install
cd ${ROOT_DIR}
echo All done!

2
fgdata

Submodule fgdata updated: dce80cbf83...7ffa7fafa3

View File

@@ -23,16 +23,15 @@ echo "Starting on SimGear"
pushd sgBuild
cmake -DCMAKE_INSTALL_PREFIX:PATH=$WORKSPACE/dist -DCMAKE_BUILD_TYPE=RelWithDebInfo ../simgear
# compile
make
# compile (with out-j for now, it's hitting process limits)
cmake --build .
if [ $? -ne '0' ]; then
echo "make simgear failed"
exit 1
fi
make install
cmake --build . --target install
popd
@@ -46,16 +45,17 @@ else
FGBUILDTYPE=Nightly
fi
cmake -DFG_BUILD_TYPE=$FGBUILDTYPE -DCMAKE_INSTALL_PREFIX:PATH=$WORKSPACE/dist -DENABLE_SWIFT:BOOL=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ../flightgear
cmake -DFG_BUILD_TYPE=$FGBUILDTYPE -DCMAKE_INSTALL_PREFIX:PATH=$WORKSPACE/dist -DCMAKE_BUILD_TYPE=RelWithDebInfo ../flightgear
make
# compile (with out-j for now, it's hitting process limits)
cmake --build .
if [ $? -ne '0' ]; then
echo "make flightgear failed"
exit 1
fi
make install
cmake --build . --target install
popd

View File

@@ -31,6 +31,8 @@ $osgSoVersion=runOsgVersion('so-number')
$openThreadsSoVersion=runOsgVersion('openthreads-soversion-number')
$codeSignIdentity = ENV['FG_CODESIGN_IDENTITY']
$keychain = ENV['FG_KEYCHAIN']
puts "Code signing identity is #{$codeSignIdentity}"
puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}"
@@ -54,11 +56,10 @@ bundle=dmgDir + "/FlightGear.app"
puts "Running macdeployqt on the bundle to copy Qt libraries"
`macdeployqt #{$prefixDir}/fgfs.app -qmldir=#{qmlDir}`
puts "Moving & renaming app bundle"
puts "Copying & renaming app bundle"
`mkdir -p #{dmgDir}`
`mv #{$prefixDir}/fgfs.app #{bundle}`
`rsync --archive --quiet #{$prefixDir}/fgfs.app/ #{bundle}`
bundle=dmgDir + "/FlightGear.app"
contents=bundle + "/Contents"
macosDir=contents + "/MacOS"
$frameworksDir=contents +"/Frameworks"
@@ -135,27 +136,47 @@ File.open("#{contents}/Info.plist", 'w') { |f|
createArgs = "-format UDBZ -imagekey bzip2-level=9 -quiet -volname #{volName}"
# enable the hardened runtime and timestamp options, so notarization works
codeSignArgs = "--deep --options=runtime --timestamp"
if !$isRelease
# create the 'lite' DMG without the base files
# code sign the entire bundle once complete - v2 code-signing
puts "Signing #{bundle}"
`codesign --deep -s "#{$codeSignIdentity}" #{bundle}`
puts "Creating DMG"
`codesign #{codeSignArgs} --keychain #{$keychain} -s "#{$codeSignIdentity}" #{bundle}`
puts "Creating DMG without base-files"
`rm -f #{dmgPath}`
`hdiutil create -srcfolder #{dmgDir} #{createArgs} #{dmgPath}`
puts "Notarizing DMG #{dmgPath}"
`xcrun altool --notarize-app \
--primary-bundle-id "org.flightgear.mac" \
--username "zakalawe@mac.com" \
--password "@keychain:FlightGearAppStoreConnectUserName" \
--file #{dmgPath}`
end
puts "Creating full image with data"
puts "Copying base package files into the image"
`rsync -a fgdata/ #{resourcesDir}/data`
# re-sign the entire bundle
puts "Re-signing full #{bundle}"
`codesign --force --deep -s "#{$codeSignIdentity}" #{bundle}`
puts "Re-signing full app: #{bundle}"
`codesign --force #{codeSignArgs} --keychain #{$keychain} -s "#{$codeSignIdentity}" #{bundle}`
`rm -f #{dmgFullPath}`
`hdiutil create -srcfolder #{dmgDir} #{createArgs} #{dmgFullPath}`
puts "Notarizing DMG #{dmgFullPath}"
`xcrun altool --notarize-app \
--primary-bundle-id "org.flightgear.mac" \
--username "zakalawe@mac.com" \
--password "@keychain:FlightGearAppStoreConnectUserName" \
--file #{dmgFullPath}`
puts "Packaging complete"

View File

@@ -91,7 +91,6 @@ PLURAL_FORMS = {
"nl": ["singular", "plural"],
"pl": ["singular", "paucal", "plural"],
"pt": ["singular", "plural"],
"ru": ["singular", "plural"],
"zh": ["universal"] # universal form
}
@@ -577,25 +576,10 @@ class Translation:
return ''.join(l)
def __getitem__(self, cat):
"""Get all translations for a given category.
Return a mapping where each key is a tid (instance of a subclass
of AbstractTranslationUnitId) and each value a TranslationUnit
instance.
"""
return self.translations[cat]
def __setitem__(self, cat, mapping):
"""Replace all translations for a given category.
cat: a category name (string such as 'sys', 'options', etc.)
mapping: a mapping where each key is a tid (instance of a
subclass of AbstractTranslationUnitId) and each value a
TranslationUnit instance.
"""
self.translations[cat] = dict(mapping)
def __setitem__(self, cat, translUnit):
self.translations[cat] = translUnit
def __iter__(self):
return iter(self.translations)
@@ -1670,8 +1654,10 @@ registerFormatHandler("xliff", XliffFormatHandler)
# Could also be a dict
def L10nResMgrForCat(category):
"""Map from category/resource name to L10NResourceManager class."""
if category in ("menu", "options", "sys", "tips"):
if category in ("menu", "options", "tips"):
return BasicL10NResourceManager
elif category == "sys":
return SysL10NResourceManager
else:
assert False, "unexpected category: {!r}".format(category)
@@ -1857,7 +1843,7 @@ class L10NResourceManagerBase:
class BasicL10NResourceManager(L10NResourceManagerBase):
"""Resource manager for FG XML i18n files with the simplest structure.
This is suitable for resources (menu, options, tips, etc.) where
This is suitable for resources (menu, options, tips) where
translations are in direct children of the <PropertyList> element,
with no more structure.
@@ -1865,16 +1851,7 @@ class BasicL10NResourceManager(L10NResourceManagerBase):
@classmethod
def _findMainNode(cls, rootNode):
"""
Return the node directly containing the translations in an FG XML file.
This method was added when sys.xml had all its useful contents
inside a 'splash' top-level node, instead of having a flat
structure like the other FG XML i18n files (options.xml,
menu.xml, etc.). At that time, we thus had a
SysL10NResourceManager class derived from this class only to
override this method.
"""
Return the node directly containing the translations in an FG XML file."""
assert rootNode.tag == "PropertyList", rootNode.tag
return rootNode
@@ -1932,3 +1909,17 @@ class BasicL10NResourceManager(L10NResourceManagerBase):
[text], isPlural=isPlural, logger=logger)
return nbWhitespaceProblems
class SysL10NResourceManager(BasicL10NResourceManager):
@classmethod
def _findMainNode(cls, rootNode):
"""
Return the node directly containing the translations in sys.xml."""
assert rootNode.tag == "PropertyList", rootNode.tag
# In sys.xml, all translations are inside a <splash> element
mainNode = rootNode.find("splash")
assert mainNode is not None
return mainNode

View File

@@ -1,7 +1,7 @@
#!/bin/bash
THIS_RELEASE="2019.1"
NEXT_RELEASE="2019.2"
THIS_RELEASE="2018.3"
NEXT_RELEASE="2018.4"
SUBMODULES="simgear flightgear fgdata getstart"
#:<< 'COMMENT_END'

Submodule simgear updated: f964374027...7a773f30e6

View File

@@ -1,22 +0,0 @@
#!/bin/bash
mirror_dirs='fgdata fgmeta flightgear simgear getstart windows-3rd-party fgrun'
pushd /var/lib/git
for dir in $mirror_dirs
do
repo_name=$dir.git
if [ ! -d "$repo_name" ]; then
echo "Doing initial clone"
git clone --mirror git://git.code.sf.net/p/flightgear/$dir
fi
pushd $repo_name
echo "Updating in $PWD"
git remote update
popd
done
popd

View File

@@ -1 +1 @@
2019.2.0
2018.3.5