[pkg-fgfs-crew] Scripted compilation of flightgear

Arnt Karlsen arnt at c2i.net
Thu Mar 7 19:10:06 UTC 2013


..apologies for the delay, perils of old junk failing when
you need it the most.  I was about to send this on Monday
when my main machine and then the backup box died. 
On Sun, 03 Mar 2013 22:13:08 +0100, Geoff wrote in message 
<1362345188.2422.5.camel at DELL02>:

> On Sun, 2013-03-03 at 06:54 -0500, Pat wrote:
> > So.. how many build script schemes are there?  
> Hi Pat,
> You pose some very interesting questions ;=)) Including 
> this first. I only know of mine and Brisa's, but 
> maybe there ARE others???
> > Are you interested in discussing build scripts? If so, 
> > in what form or forum?
> YES, but not being a 'forum' lover, nor IRC, to me, at 
> the moment, only by direct emails... or places where I 
> can get posts delivered automatically to me...
> I certainly want questions, suggestion, problems to be 
> directly delivered to me, rather than me having to 
> regularly troll somewhere to find them...

..that makes us the majority. ;o)

> > Who else might be interested in discussing scripts?
> Yes, who else?
> > How are the flightgear build scripts different? 
> Well my only answer is - mine is built by me, based on 
> Brisa's original download_and_compile (d&c)...
> Thus contains my personal preferences and ideas...
> > For each script
> >  Where can I get it?
> Previously the latest was always at :-
>  http://geoffair.org/tmp/makefg
> That has stopped now...
> Have now opened a repo to store it -
>  https://gitorious.org/fgtools/makefg
> And in this I bumped the version to 1.3.14
> This is because I have no commit rights on the 'official' 
> FG repo, where d&c is stored ;=\...
> > Who uses it? What's the audience?
> No idea ;=))

..how many downloads?

> > Why would someone use it and not another
> Again, no idea ;=))
> > How many people use it
> Yet again, no idea ;=))
> > Who's in charge of it
> Well ME, but now that it is a gitorious repo, would 
> WELCOME other collaborators. Just send me your gitorious 
> 'username' and I will give you at least commit rights...
> > Is it regularly maintained
> Hmmmm, yes, and no. At the moment only when I find, 
> or someone points out a specific problem...
> But as mentioned below, I REGULARLY use it to build 
> the latest 'next' SG/FG at least...
> > Who maintains it
> > Who helps maintain it
> See above...
> > What environments does it work in
> I ONLY have the above Ubuntu 12.04 LTS 64-bit environment 
> for testing, so have no answer to this...

..makefg works for me if I drop openrti, openrti and SG
builds ok with D&C but my all FG build_s_ fails. 

> > What does it do well
> Not for me to say ;=)) I like it, and I use it...
> > What's missing and desired in it
> I do NOT regularly test it to build FGRUN, 
> ATLAS, and TerraGear (TG), but it should do ALL 
> of these, and more...
> To that list I would ADD - FGCOM, FGCOMGUI, FGX, 
> FGMS, CROSSFEED, OPENRADAR, to name a few... 
> In fact ANYTHING related to FG!
> And it should ALWAYS create a run-????.sh, to 
> really assist in the first time such a component 
> is run...
> > What does the maintainer NOT want in it
> Hmmm, that is a difficult question to answer! In 
> simple terms, nothing is presently particularly
> banned ;=)). And every direction is welcome...
> One thing is at present my script STOPS on a build  
> error. I would want to maintain this.

..and in a tree script world, throw a mail to the job 
owner and keep the other builds going and logged.

> The last time I looked, the d&c script v1.4 uses 
> tee to output to the log, and thus will not particularly 
> stop on some build error, since the last 'make' action 
> is tee, which succeeds... a quite BIG compromise on what 
> is written to the build log...
> And another deliberate intention is to NOT install 
> into the standard 'system' paths... It mostly only 
> installs 'locally', so MULTIPLE FG versions can be 
> kept...

..another approach is build distro packages, and then use 
the packaging system to keep track of the installs, is why 
I want the distro packagers input, most distros would script 
their flightgear packaging.

> But maybe further insights to my thoughts on its 
> direction are given below as I answer Arnt's 
> email...
> And I had to look up 'stochastically' ;=)) But 
> thanks for this new word...
> Hi Arnt, 
> Re: makefg 1.3.13, now 1.3.14
> Sorry, not sure I know what you are really trying 
> to do! 

..inspire.  Looks like it works ;o), I've got 1.3.15.

..but on the horizon I see everybody running all kindsa 
weird stuff on top of Xen etc virtual machines, allows
setting up all Wintendo versions and a bunch of distros
side by side, and run them side by side, to e.g. compare 
a new tweak's performance without having to reboot, the 
OS'es can be set up in e.g. throw-away installs that runs 
_once_ to see how they die etc on bad FG bugs.

..my symlink lost a coupla vocals and mkfg runs ok, 
except I get a wee name clash, makefg needs to live 
_outside_ my FG-git tree now:
mkfg: Done all FG. in dir /home/arnt/FG-git/flightgear/build
mkfg: FGRUN skipped.
mkfg: ATLAS skipped.
mkfg: Created run_fgfs.sh
mkfg: Created run_fgviewer.sh
mkfg: To view a model, run the ./run_fgviewer.sh, followed by a model
(.ac) file name
mkfg: To start fgfs, run the ./run_fgfs.sh file
mkfg: FG data skipped.
mkfg: Done [ SG FG], and the output log is
mkfg: Updating file mkfg/mkfg-1.3.15.conf...
mkfg: line 1448: mkfg/mkfg-1.3.15.conf: Not a directory
arnt at celsius:~/FG-git$ 

> I have not been following this thread that well ;=(( 
> And obviously I do not use download_and_compile since 
> I have my own script...

..I tried both, on and off, nowadays, 
they do different parts of the job.

> But as far as my 'makefg' script is concerned, 
> and concerning a NEW build in another blank 
> directory, it will check for a file -
>  $HOME/bin/<script-name>-<script-version>.conf
> and if found will use the fgdata directory 
> given in there...
> That 'config' file is ONLY written if the script 
> is run to the end. It is nearly the last instruction.
> And can be messed up by renaming the script like I 
> have seen you do makefg -> makefg-1.3.13, etc...

..IMO you should write it first, and call it makefg.tmp-conf 
or somesuch, then build and mv it makefg.conf if it builds 
ok, and e.g. makefg.bad-conf when it fails.

..or a better way, have one script build the config file, 
and the other build the programs specified in the config 
> I did not know there was a gitorious terms of service
> (500MB/month), but I certainly did NOT want to 
> clone that enormous pure data block again and AGAIN, 
> just due to the time it takes, and the disk space 
> consumed...
> That would include a clone of a local clone, which I 
> have NEVER tried...

..this last time I tried the git bundle way instead 
of the tarball way.

> And even if the script does not find that config 
> file, you can tell it where 'fgdata' is, like -
>   FGDATADIR=<path>
> When it finds that path, it will read the 'version' 
> file, and display to you what version it found.
> And it should be remembered the only real use 
> of that directory is to write the run-fgfs.sh 
> script correctly...
> Similar with OSG. If you give it some other 
> OSG install directory - OSGPATH=<full-path> - the 
> script will use that... 

..aye.  Now try "osgversion ;which osgversion \
;osgversion --help ;osgversion --version-number "
for automation ideas. :o)

> And for PLIB, BOOST, etc...
> And another important first time run in a new 
> directory is the command NO_TOOL_UPD, since I know 
> some of this is 'broken' for the multiple possible 
> unix/linux repos it could be run in... read various 
> versions of the 'tools/packages'...
> Also my script does NOT get involved in git 
> branches, or tags. I tried some of that but it 
> just got far, FAR TOO messy... ;=((

.. :oD

> But you could manually checkout a new branch in 
> SG/FG/FGDATA and use the script to build in a 
> new build directory for each branch...
> I presently do that having a 'next' and a 'release' 
> builds. but as indicated it needs some manual 
> steps...
> As you point out, I do not think a single script 
> should try to do EVERYTHING possible ;=)) It can not 
> make coffee the way you may like it...
> As to no problem with RTI, my script has this 
> OFF by default, as it is in the FG CMakeLists.txt 
> file. 
> I have never tried a build enabling it - that is 
> add FG_ENABLE_RTI to the scripts command, so do 
> not personally know it there is a problem with 
> RTI or not...

..I've tried it, makefg fails here.  

> HTH.
> Regards,
> Geoff.
> REPO: https://gitorious.org/fgtools/makefg

..med vennlig hilsen = with Kind Regards from Arnt Karlsen
...with a number of polar bear hunters in his ancestry...
  Scenarios always come in sets of three: 
  best case, worst case, and just in case.

More information about the pkg-fgfs-crew mailing list