Project

General

Profile

Preparing a Mac machine for Bilder » History » Version 32

John Cary, 03/03/2018 08:26 AM

1 2 Redmine Admin
# Preparing a Mac machine for Bilder #
2 1 Redmine Admin
3 24 John Cary
__If all you need is python and sphinx__ (e.g., for builds of documentation), then you need only
4
5
* XCode with command line tools
6
* Latex installed as noted below
7
8
and then you can add the arguments,  -W python, and your installed Python and CMake will be used if your path is correct.
9
10
11 2 Redmine Admin
## Bilder on Darwin ##
12 1 Redmine Admin
13 16 John Cary
Darwin comes with bash, so it is Bilder ready for the most part.
14 1 Redmine Admin
15 16 John Cary
### OS X Versions ###
16 1 Redmine Admin
17 16 John Cary
Yosemite's XCode that supports C++ 11 by default.
18 1 Redmine Admin
19 16 John Cary
El Capitan's clang compiler supports OpenMP.
20
21 1 Redmine Admin
## Case insensitive file system ##
22
23
We have noted and filed bugs for CMake errors on OS X when using the case-sensitive file system. To fix we use the case-insensitive file system. There may be problems with various packages and the case-insensitive file system.
24
25 2 Redmine Admin
## C and C++ compilers and Xcode command line tools ##
26 1 Redmine Admin
27
Install Xcode. To obtain version 6, visit https://developer.apple.com/xcode/download, then at the bottom third of the page, click on the "Additional Tools" link . Sign in with your Apple ID.  
28
29
~~~~~~
30 31 John Cary
sudo xcode-select --install
31 1 Redmine Admin
~~~~~~
32
33
## HomeBrew ##
34
35
One must select a non-OSX package manager for some additional packages. The candidates are HomeBrew, MacPorts, and Fink, with the HomeBrew being our recommendation at this time, as it is active, and it has the philosophy of not building extraneous stuff that is already present on OSX, which MacPorts tends to do, thus using up more disk space.  HomeBrew also installs packages in their own subdirs with links to other places in /opt, thus making removal a matter removing a directory and then removing broken links in /opt/homebrew.
36
37 14 John Cary
HomeBrew requires that one not have root privileges.  So we make the directory into which we can write:
38 1 Redmine Admin
39
~~~~~~
40 29 John Cary
sudo -s
41
mkdir -p /opt/homebrew
42
chgrp -R admin /opt
43
chmod -R 775 /opt
44
chmod -R 2775 /opt/homebrew
45
exit
46 14 John Cary
~~~~~~
47
48
and then we work as nonroot:
49
50
~~~~~~
51 29 John Cary
cd /opt
52
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
53
chmod -R a+rX /opt/homebrew
54
find /opt/homebrew -type l -exec chmod -h a+r '{}' \;
55 14 John Cary
~~~~~~
56 1 Redmine Admin
57 15 John Cary
and finally as root to pick up the paths by default:
58 14 John Cary
59 1 Redmine Admin
~~~~~~
60 29 John Cary
sudo -s
61
echo "/opt/homebrew/bin" > /etc/paths.d/homebrew
62
echo "/opt/homebrew/share/man" > /etc/manpaths.d/homebrew
63
chmod a+r /etc/paths.d/homebrew /etc/manpaths.d/homebrew
64
exit
65 1 Redmine Admin
~~~~~~
66
67
Get the required packages...
68
69
~~~~~~
70 29 John Cary
brew install gnupg libpng freetype gd ghostscript
71 1 Redmine Admin
~~~~~~
72
73 16 John Cary
Nice to have:
74 1 Redmine Admin
75 16 John Cary
~~~~~~
76 29 John Cary
brew install imagemagick
77 16 John Cary
~~~~~~
78
79 25 David Howdle
For Qt5:
80
81
~~~~~~
82 29 John Cary
brew install bison flex gperf libcapn
83 25 David Howdle
~~~~~~
84
85
If you receive a error regarding ruby version:
86
87
~~~~~~
88 29 John Cary
brew install ruby@2.3
89 25 David Howdle
~~~~~~
90
91 1 Redmine Admin
If permissions end up wrong, the commands
92
93
~~~~~~
94 29 John Cary
chmod -R a+rX /opt/homebrew
95
find /opt/homebrew -type l -exec chmod -h a+r '{}' \;
96 1 Redmine Admin
~~~~~~
97
98
may help.
99
100 16 John Cary
To get fortran and a more recent version of the gcc compiler
101 1 Redmine Admin
102 14 John Cary
~~~~~~
103 29 John Cary
brew install gcc@6 --with-fortran
104 1 Redmine Admin
~~~~~~
105 8 Redmine Admin
106 1 Redmine Admin
107
108
## LaTeX ##
109
110
Those with sufficient hard drive space (3.4GB after install) may wish to download the full MacTeX package from <http://www.tug.org/mactex/downloading.html>. After installing, one can see the 'README ME FIRST.pdf' in /Applications/Tex. You will likely need to add /usr/texbin to your path:
111
112
~~~~~~
113 29 John Cary
setenv PATH /usr/texbin:${PATH}  # For tcsh
114
export PATH=/usr/texbin:${PATH}  # For bash
115 1 Redmine Admin
~~~~~~
116 13 Redmine Admin
117 1 Redmine Admin
For those who like GUIs, the !TeXworks in /Applications/TeX/TeXworks should work fine.
118
119 13 Redmine Admin
For those with limited space, install BasicTeX from <https://tug.org/mactex/morepackages.html>. Add to your PATH:
120
121
~~~~~~
122 32 John Cary
    /usr/local/texlive/2017/bin/universal-darwin/
123 13 Redmine Admin
~~~~~~
124
125 32 John Cary
and then install the packages noted at
126 1 Redmine Admin
127 32 John Cary
[[LaTeX packages needed by Bilder]]
128 29 John Cary
129 32 John Cary
You may need to use sudo.
130 1 Redmine Admin
131
~~~~~~
132 32 John Cary
sudo tlmgr update --self
133
sudo tlmgr install <needed packages>
134 1 Redmine Admin
~~~~~~
135 29 John Cary
136 32 John Cary
and then used the autoupdate feature to get any additionally needed packages.  This minimal installation is 230 M instead of the usual 2GB.
137
138 1 Redmine Admin
139
## Disable spindump ##
140
141
for faster compilations via
142
143
~~~~~~
144
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist
145 29 John Cary
~~~~~~
146 11 Redmine Admin
147
## Java ##
148
149
You will need to install java by invoking the executable in any way such as...
150
151
~~~~~~
152
java -version
153
~~~~~~
154
155 1 Redmine Admin
Follow the instructions in the dialog that takes you to the Oracle website and choose the latest version to download.  (as of Nov 2015 this is 1.8)
156
157
## HostName ##
158
159
For bilder to properly send emails the fully qualified hostname must set on the machine. To check this try...
160 2 Redmine Admin
161 1 Redmine Admin
~~~~~~
162 31 John Cary
hostname -f
163 29 John Cary
~~~~~~
164 1 Redmine Admin
165
this should return machinename.domainname.com rather than just machinename.  If it does not, then set the hostname of the machine by typing the following commands.
166
167
~~~~~~
168
sudo scutil --set ComputerName "machinename"
169
sudo scutil --set LocalHostName "machinename"
170
sudo scutil --set HostName "machinename.domainname.com"
171
dscacheutil -flushcache
172
~~~~~~
173
174
Restart your Mac after this.
175
176
## Power Saving Modes ##
177
178
For build machines that are not personal machines, disabling certain options will help in connectivity and responsiveness:
179
180
~~~~~~
181
Under Spotlight
182
 - disabled the main HD. (multiple mdworkers taking up a lot of cpu.)
183
~~~~~~
184
185
~~~~~~
186
Under Energy Saver
187
 - Computer sleep: Set to never
188
 - Unchecked Put hard disks to sleep when possible
189
 - Unchecked Wake for network access
190
~~~~~~
191
192
&nbsp;
193
&nbsp;
194
&nbsp;
195
&nbsp;
196
&nbsp;
197
&nbsp;
198
&nbsp;
199
&nbsp;
200
&nbsp;
201
&nbsp;
202
203 29 John Cary
---
204
205
---
206
207 31 John Cary
## X11 ##
208 1 Redmine Admin
209 31 John Cary
X11 should not be needed, but if it is needed:
210
211
Install [XQuartz X11](http://xquartz.macosforge.org/landing/).
212
213
Create a symbolic link so that the X11 headers can be found by the compiler:
214
215
~~~~~~
216
sudo ln -s /opt/X11/include/X11 /usr/local/include/X11
217
~~~~~~
218
219 1 Redmine Admin
# DEPRECATED INSTRUCTIONS #
220 31 John Cary
221
222
## Other gfortran options (besides HomeBrew) ##
223
224
### Option 2: HPC ###
225
226
Install gfortran from [SourceForge HPC](http://hpc.sourceforge.net).  (Do not also install the other gcc compilers.)
227
228
As of March 29, 2015, the version is 4.9.0.
229
230
Install via
231
232
~~~~~~
233
$ tar xzf gfortran-4.9-bin.tar.gz -C /
234
~~~~~~
235
236
### Option 3: GNU ###
237
238
Install gfortran using the installer from <http://gcc.gnu.org/wiki/GFortranBinaries>.
239
240
As of March 29, 2015, the version is 4.9.0.
241
242
The binaries will end up being installed in /usr/local/bin
243
244 30 John Cary
245
## Git ##
246
247
If any repository package requires Git protocol, then for Lion and earlier you may need Git from <http://git-scm.com/download/mac> and add /usr/local/git/bin to your path.
248 11 Redmine Admin
249 1 Redmine Admin
250 10 Redmine Admin
### Macports ### 
251
252
This provides wget, freetype, and other utilities. Get macports from <http://www.macports.org/install.php> and install.
253 11 Redmine Admin
254
Note: Before proceeding with the installation of various macports packages noted below on Lion machines with Xcode 4.3, one needs to run
255
256 10 Redmine Admin
~~~~~~
257 29 John Cary
sudo xcode-select -switch /Applications/Xcode.app
258 10 Redmine Admin
~~~~~~
259
260
Otherwise, there will be an error installing zlib during the wget installation below.
261 11 Redmine Admin
262
After the macports installation, do
263 1 Redmine Admin
264
~~~~~~
265 29 John Cary
sudo port install wget
266
sudo port install ImageMagick +no_x11
267
sudo port install f2c
268 1 Redmine Admin
~~~~~~
269
270
271
### XCode ###
272
### Lion ###
273 11 Redmine Admin
274 1 Redmine Admin
On Lion, the command line compilers are not installed automatically. After installing Xcode, navigate to the 
275
Preferences->Download dialog 
276
and install the Command Line Tools. The dialog is.. 
277 2 Redmine Admin
278 1 Redmine Admin
!screenShotCommandLineTools.png!
279
280
or from the command line do
281
282 11 Redmine Admin
~~~~~~
283 29 John Cary
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
284
xcodebuild
285 1 Redmine Admin
      (hit agree)
286
~~~~~~
287
288
You may subsequently need to build your first package with sudo in order to accept the Xcode licenses.
289
290
### Mountain Lion ### 
291
292
Same as Mavericks?
293
294
### Mavericks ###
295
296 2 Redmine Admin
~~~~~~
297 29 John Cary
sudo xcode-select --install
298 1 Redmine Admin
~~~~~~
299
300
301
## Java ##
302
303
(The below does not apply to yosemite.)
304
305
The cmake build may fail due to missing java headers linked to in /System/Library/Frameworks/JavaVM.framework/Headers. To fix:
306
307
~~~~~~
308 29 John Cary
cd /System/Library/Frameworks/JavaVM.framework/Headers
309
sudo mv jni.h jni.h.missing
310 1 Redmine Admin
~~~~~~