summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/root/README.md
blob: 6936d85b1c10c39852844b4d5d931f0ba7b69f04 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# ROOT Recipe Notes

ROOT has a significant number of build options. Not all of them are supported by this package recipe at this time. Relevant notes on support (or lack thereof) for various options is below.

## Fixed and unsupported options

### Missing dependencies

The following configuration options are unsupported (set to `OFF`) due to missing dependencies:

#### `alien`

Requires `libgapiUI` from ALICE.

#### `gfal`

#### `monalisa`

Monitoring with Monalisa depends on `libapmoncpp`.

#### `odbc`

#### `tcmalloc`

#### `xinetd`

### Discontinued options

Support for several options was discontinued in ROOT without prior support in the recipe:

#### `afdsmgrd`

#### `afs`

#### `bonjour`

#### `castor`

#### `chirp`

#### `geocad`

#### `glite`

#### `globus`

#### `hdfs`

#### `ios`

#### `krb5`

#### `ldap`

#### `rfio`

#### `ruby`

#### `sapdb`

#### `srp`

### Other fixed or unsupported options

#### `arrow=OFF`

#### `asimage=ON`, `astiff=ON`, `builtin_afterimage=ON`

Full control of `asimage` and `astiff` would require a package recipe for libAfterImage or Afterstep. In their absence, we use the provided and internally built version of libAfterImage.

#### `ccache=OFF`

Only useful for repeated builds.

#### `cling=OFF`

The use of Cling is assumed.

#### `cxxmodules`

This option should not be confused with `runtime_cxxmodules`. `cxxmodules` is an optimization that affects only the efficiency of building ROOT.

#### `exceptions=ON`

Support for C++ exceptions is assumed.

#### `explicitlink=ON`

Use of explicit linking when making shared libraries is assumed.

#### `fail-on-missing=ON`

Failure on missing dependencies is assumed (_vs_ automatically setting `builtin_XXX`).

#### `gnuinstall=OFF`

GNU-compliant install layout.

#### `libcxx`

This option controls use of the libC++ standard C++ library via compiler options. It is set automatically by ROOT's configuration on macOS >=10.7 when a Clang compiler is configured. Due to complexities related to compiler options and the way a compiler might have been configured, configurable support is disabled until (at least) Spack supports the standard library as a virtual dependency.

#### `pch=ON`

The use of pre-compiled headers when building is assumed.

#### `roottest=OFF`

`roottest` requires access to the network.

#### `runtime_cxxmodules=OFF`

This option tells ROOT to generate and use PCMs for its own libraries. This functionality is experimental for ROOT < 6.20, and is currently not supported by the recipe.

#### `shared=ON`

The use of shared libraries is assumed.

#### `soversion=ON`

The use of versioning for shared libraries is assumed.

#### `testing`

The building of ROOT's test suite and its availability for use by CTest is pegged to Spack's determination of whether testing is required for the current installation procedure.

## Variants and version dependent support for options

Some configuration options are version dependent---unavailable before or after a specific version. The current accounting for such options in the recipe is far from exhaustive, and a survey of the various options and the versions that support them would be useful. However, accounting for them is somewhat clumsy absent a `when` clause for variants, or similar.

### Conflicting variants since 6.18

#### `memstat`

#### `qt4`

Representing the obsolete `qt` and `qtgsi` ROOT build options.

#### `table`

### Temporarily conflicting variants

## Permanently removed variants

The following variants have been removed from the recipe as they have always been ineffective:

* `avahi`
* `kerberos`
* `ldap`
* `libcxx`
* `odbc`
* `tiff`

In addition, the `test` variant has been removed as its actions are irrelevant to the installed source---the corresponding `testing` ROOT option is enabled if and only if `self.run_tests` is set.