User:Puffergas: Difference between revisions

Jump to navigation Jump to search
 
Line 288: Line 288:


|}
|}
==Dependencies==
Below is a list of dependencies (packages) that need to be installed before compiling.
{| class="wikitable"
|-
! Package !! Version (ref. only, as of 03-28-2020) !! Notes
|-
| automake || || Needed for download_and_compile.sh, maybe more
|-
| cmake || 3.13.4-1 ||
|-
| build-essential || || Needed for download_and_compile.sh, maybe more
|-
| g++ || 4:8.3.0-1+rpi2 ||
|-
| git || 1:2.20.1-2+deb10u1 || Needs a user account at www.github.com
|-
| make || 4.2.1-1.2 ||
|-
| sed || 4.7-1 ||
|-
| freeglut3-dev || 2.8.1-3 ||
|-
| libboost-dev || 1.67.0.1+b1 ||
|-
| libcurl4-openssl-dev || 7.64.0-4+deb10u1 || OSG plugins
|-
| libdbus-1-dev || 1.12.16-1 ||
|-
| libdbus-1-3 ||    ||
|-
| libevent-dev || 2.1.8-stable-4 ||
|-
| libfreetype6-dev || 2.9.1-3+deb10u1 ||
|-
| libglew-dev || 2.1.0-4 ||
|-
| libjpeg62-dev ||  || OSG plugin
|-
| libnvtt-dev || 2.0.8-1+dfsg-8.1+b3 ||
|-
| libopenal-dev || 1:1.19.1-1 ||
|-
|libopenscenegraph-3.4-dev || 3.4.1+dfsg1-5 ||
|-
| libqt5opengl5-dev || 5.11.3+dfsg1-1+rpi1+deb10u3 ||
|-
| libqt5svg5-dev || 5.11.3-2 ||
|-
| librsvg2 || || OSG plugin, if needed
|-
| librsvg2-dev || || OSG plugin, if needed
|-
| libssl-dev || 1.1.1d-0+deb10u3+rpt1 || Needed if building Cmake
|-
| libxi-dev || 2:1.7.9-1 ||
|-
| libxmu-dev || 2:1.1.2-2+b3 ||
|-
| pkg-config || 0.29-6 ||
|-
| qml-module-qtquick2 || 5.11.3-4 ||
|-
| qml-module-qtquick-window2 || 5.11.3-4 ||
|-
| qt5-default || 5.11.3+dfsg1-1+rpi1+deb10u3 ||
|-
| qtbase5-private-dev || 5.11.3+dfsg1-1+rpi1+deb10u3 ||
|-
| qtdeclarative5-private-dev || 5.11.3-4 ||
|-
| qttools5-dev || 5.11.3-4 ||
|-
| zlib1g-dev || 1:1.2.11.dfsg-1 || OSG plugin
|}
The command <code>dpkg -s package_name</code> can be used, in the terminal to verify if a package is installed. Replace 'package_name' with the name of the dependency from the above list.
Before installing any missing dependencies, update Raspbian per the above [[Howto:Build_and_run_FlightGear_on_Raspberry_Pi_4#Update_Raspbian|Update Raspbian]] instructions. The below terminal command can be used to install any missing dependencies:
<syntaxhighlight lang="bash">
sudo apt-get install package_name
</syntaxhighlight>
====git====
{| class="wikitable"
|-
! '''<big>♦♦♦ Warning ♦♦♦</big>'''
|-
| Edward wrote:
<blockquote>
Please only run 'git clone' once ever!  That is once per machine, new
install, etc.  Otherwise SourceForge will permanently blacklist your IP
address.  The strain on their infrastructure with our huge repositories is
far too much.
</blockquote>
|}
When using some <code>git</code> commands you might be prompted by <code>git config --global user.email "you@example.com"</code> and or <code>git config --global user.name "Your Name"</code>. In that case a user account is needed at [http://www.github.com www.github.com]. So, before starting the compiling process it would be advisable to first go to their web page and create a free user account. After acquiring the user account, use the below commands (one at a time) in order to satisfy the above <code>git</code> requirement. Replace 'you@example.com' with your <code>git</code> account email address and also replace 'Your Name' with the user name for this account. It might be best to choose a user name without a space in it.
<syntaxhighlight lang="bash">
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
</syntaxhighlight>
Link to <code>git</code> [https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration configuration and customization] information page.
Florent wrote:
<blockquote>
I'm not knowledgeable about details of the RaspBerry PI build; what I can
say regarding your message is: when you clone a Git repository with no
special option such as <code>--bare</code>, some branch is initially checked out (often,
this is 'master'). This means that only this particular branch is clearly
visible in the directory where the repository has been cloned. Other
branches may be present in hidden/machine form inside the .git subdirectory
after you do <code>git fetch foo</code>, where foo is the name of a <s>branch</s>.
Run <code>git branch -r</code> to see what branches are available remotely, then <code>git
fetch foo</code> to retrieve the <s>branch</s> you are interested in (supposedly called
'foo' here). This only happens in the .git subdirectory, but then <code>git
checkout foo</code>  should cause this branch to appear in the filesystem,
replacing whatever was previously checked out in your clone of the upstream
repository. In the case of the download_and_compile.sh script,
OpenSceneGraph-3.4 is the name of the OSG branch currently used by the
script (until a newer version is deemed preferable). Note that as a safety
measure, you can't check out a different branch when there is “unfinished
work” (things modified but not committed) on the currently checked-out
branch.
Hope this helps. Regards
I have to correct something from my first reply in this thread:
The argument passed to <code>git fetch</code> is not branch name (according to
the manual, it's a <refspec>). The way I use this command is by
passing a remote name, e.g. <code>git fetch origin</code> or 'git fetch
upstream'. A “remote” is some place where the repository is hosted
that is known to your clone (.git/config). Thus, your clone can fetch
branches and commits from remotes. A remote can offer many branches.
You can display info about known remotes with <code>git remove -v</code> from
within your clone, but I believe this info essentially comes from the
.git/config file.
</blockquote>
Essential git commands:
* git status
* git checkout
* git pull
** Can be used to update the fgmeta folder when using the download_and_compile.sh script. Use this command from within the fgmeta folder.
* git reset --hard
* git log
** REVISION example '522c742419e028daf35e79f9c6097ffa34c9f536' (this revision number was found in the FlightGear menu and at flightgear/dnc-managed/build/flightgear/src/Include/build.h. Florent wrote: <blockquote> This is a recent FG commit. You can find it with: cd flightgear/dnc-managed/flightgear && git log. Then you can type /522c742419e028daf35e79f9c6097ffa34c9f536 to look for this string in the output (the search string is interpreted as a regular expression) in less, n for next occurrence, N for previous, q to quit (I'm assuming less is your $GIT_PAGER). Or more directly: git show 522c742419e028daf35e79f9c6097ffa34c9f53 in the same dir. Regards </blockquote>
* git diff
Also see [[FlightGear Git]].
320

edits

Navigation menu