-
-
Notifications
You must be signed in to change notification settings - Fork 84
/
Copy pathtemplates.conf
374 lines (340 loc) · 14.2 KB
/
templates.conf
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
# =============================================================================
# CONFIGURATION FILE FOR QUBES-BUILDER
# =============================================================================
#
# THIS CONFIGURATION FILE IS INDENDED TO ONLY BE USED WITH THE `setup` SCRIPT.
# -----------------------------------------------------------------------------
#
# This configuration file (`templates.conf`) will be linked to by `setup` as
# `builder.conf`. (ln -s example-configs/templates.conf builder.conf)
#
# To use the `setup` script, just run `setup` in the qubes-builder root
# directory. A series of dialogs will be presented prompting various
# configuration available and then all build configuration files will
# automatically be generated based on the options selected.
#
# `setup` can be re-run again at any time to change configuration options.
# Previous options selected will be retained to allow quick switching of
# branches, templates to build, etc.
#
# Setup uses the following as markers to indicate where to place configuration
# values:
# [=setup section start=] - Start inserting on the next line
# [=setup section end=] - Stop insert mode
#
# Anything between these markers will be replaced, therefore:
# - do not place any user configurations within these markers, or those
# configurations will be replaced next time setup is run
# - do not remove or modify the markers or setup will be unable to function
#
# -----------------------------------------------------------------------------
# CONFIGURATION FILES INCLUDED WITH THIS CONFIGURATION
# -----------------------------------------------------------------------------
# Other configuration files are also included to offer maximum flexibility. To
# determine which configuration files are actually being included when using
# this configuration file as a base, use the `about` target:
# `make about`
#
# The other configuration files included (if they exist which some of them are
# automatically generated by `setup`) are as follows:
# - example-configs/qubes-os-r2.conf: If RELEASE == 2; Default Release 2
# configuration file
# - example-configs/qubes-os-master.conf: If RELEASE == 3; Default Release 3
# configuration file
# - override.conf: `setup` will also offer to include `override.conf` if one
# exists. More information on `overrides` below.
# - example-configs/extended-rules.conf: Contains extra targets mostly for
# building templates
#
# -----------------------------------------------------------------------------
# ADDITIONAL OVERRIDES
# -----------------------------------------------------------------------------
# Instead of directly modifying this or any other `default` configuration
# file, an override.conf file can be placed in the `qubes-builder` root
# directory. `setup` will offer to include this file if it exists.
#
# The `override.conf` file can contain overrides to most any configuration
# option such as BRANCH, DEBUG, VERBOSE, etc.
#
# If you create `overrides` that are specific to a release version or custom
# branch you are working on, `setup` will also be able to identify overrides
# specific to the release and or branch.
#
# To create release / branch specific `overrides`, create an override
# configuration file and place it in the `example-configs` directory named
# as follows:
# 1) example-configs/r2-feature_branch-override.conf
# example-configs/r3-master-override.conf
#
# 2) example-configs/r3-feature_branch-override.conf
# example-configs/r3-master-override.conf
#
# 3) example-configs/feature_branch-override.conf
# example-configs/master-override.conf
#
# 4) example-configs/override.conf
#
# 5) override.conf
#
# Option 1 above would offer to include the override configuration file if you
# selected to build for Release 2 and are currently in the `feature_branch`
# branch.
#
# Option 2 is the same as Option 1 except for Release 3.
#
# Option 3 would use the same configuration override for both Release 2 and 3
# if you are currently in the `feature_branch` branch.
#
# If there is no release / branch specific override configuration and
# override.conf exists as in options 4, that will be available to select.
#
# Finally, an override.conf file in the `qubes-builder` root directory
# overrides all the above examples.
#
#
# A few additional notes and caveats on overrides:
#
# - The dialog to choose an override configuration is only presented on the
# initial run of `setup`. Once a `builder.conf` file created, there will be
# no further prompts. As indicated above, `setup` initially soft links
# `examples-config/templates.conf` to `builder.conf`. To overcome
# this limitation, simply delete the `builder.conf` soft link and then the
# override prompt will become available again when you re-run `setup`.
#
# - The `setup` script soft links any override configuration within the
# examples-config directory to overrides.conf. It will allow any soft linked
# override to be replaced with a newly selected override option, but will not
# allow an existing `override.conf` regular file to be overwritten that is
# in the `qubes-builder` root directory.
#
# -----------------------------------------------------------------------------
# All lines which begins with "#" are treated as comments
# Assignments can be made with VAR_NAME="VALUE"
# [=setup info start=]
# [=setup info stop=]
RELEASE ?= 4.1
# SSH_ACCESS is used by `setup` to determine if ssh access mode was selected and
# will re-write the GIT_BASEURL and GIT_PREFIX variables to use ssh mode.
SSH_ACCESS := 0
GIT_BASEURL ?= https://github.com
GIT_PREFIX ?= QubesOS/qubes-
# Fetch repositories with depth=1
GIT_CLONE_FAST ?= 1
# A Qubes master configuration file will be included based on selected RELEASE
#
# A copy of BUILDER_PLUGINS will be made and restored since the BUILDER_PLUGIN
# variable gets over-written in qubes-os-master.conf.
_ORIGINAL_BUILDER_PLUGINS := $(BUILDER_PLUGINS)
ifeq ($(RELEASE), 2)
-include example-configs/qubes-os-r2.conf
else ifeq ($(RELEASE), 3)
-include example-configs/qubes-os-r3.0.conf
else ifeq ($(RELEASE), 3.1)
-include example-configs/qubes-os-r3.1.conf
else ifeq ($(RELEASE), 3.2)
-include example-configs/qubes-os-r3.2.conf
else ifeq ($(RELEASE), 4.0)
-include example-configs/qubes-os-r4.0.conf
else ifeq ($(RELEASE), 4.1)
-include example-configs/qubes-os-r4.1.conf
else ifeq ($(RELEASE), 4.2)
-include example-configs/qubes-os-r4.2.conf
else
-include example-configs/qubes-os-master.conf
endif
BUILDER_PLUGINS := $(_ORIGINAL_BUILDER_PLUGINS) $(BUILDER_PLUGINS)
# [=setup plugins start=]
#
#BUILDER_PLUGINS += builder-rpm
#BUILDER_PLUGINS += builder-debian
#BUILDER_PLUGINS += builder-archlinux
#BUILDER_PLUGINS += template-whonix
#BUILDER_PLUGINS += template-kali
#BUILDER_PLUGINS += mgmt-salt
# [=setup plugins stop=]
# Put all the enabled plugins into components to download them. But avoid
# duplicates
_temp_components := $(COMPONENTS)
COMPONENTS += $(filter-out $(_temp_components), $(BUILDER_PLUGINS))
DEBUG = 0
VERBOSE = 0
NO_SIGN = 1
DIST_DOM0 ?= fc20
# Only build templates (comment out or set to '0' to build all of Qubes).
TEMPLATE_ONLY ?= 0
################################################################################
# S A L T M A N A G E M E N T O P T I O N S
################################################################################
# MGMT_SALT_ONLY - Build only mgmt-salt COMPONENTS
# Only mgmt-salt components will bw built when issuing 'make qubes[-vm/dom0]
# which is useful for developing.
#
# Set 1 to enable building only salt-mgmt COMPONENTS or clear value to build
# all qubes components including mgmt-salt.
# Default: novalue
#MGMT_SALT_ONLY = 1
# MGMT_SALT_COMPONENTS_USER - Custom mgmt-salt user components
# Add any extra user based mgmt-salt formula components to include in build.
# Default: novalue
#MGMT_SALT_COMPONENTS_USER =
################################################################################
# L I S T O F D I S T V M ' S
################################################################################
# Available template flavors may be added the the template build by appending
# `+flavor_name`
# [=setup dists start=]
ifneq "$(SETUP_MODE)" "1"
endif
# [=setup dists stop=]
# List of all build template variations that will be offered in the 'setup'
# DISTS_VM dialog to be able to choose from
ifeq "$(SETUP_MODE)" "1"
DISTS_VM :=
DISTS_VM += fc33
DISTS_VM += fc33+minimal
DISTS_VM += fc33+fullyloaded
DISTS_VM += fc33+xfce
DISTS_VM += fc34
DISTS_VM += fc34+minimal
DISTS_VM += fc34+fullyloaded
DISTS_VM += fc34+xfce
DISTS_VM += fc35
DISTS_VM += fc35+minimal
DISTS_VM += fc35+fullyloaded
DISTS_VM += fc35+xfce
DISTS_VM += fc36
DISTS_VM += fc36+minimal
DISTS_VM += fc36+fullyloaded
DISTS_VM += fc36+xfce
DISTS_VM += fc37
DISTS_VM += fc37+minimal
DISTS_VM += fc37+fullyloaded
DISTS_VM += fc37+xfce
DISTS_VM += fc38
DISTS_VM += fc38+minimal
DISTS_VM += fc38+fullyloaded
DISTS_VM += fc38+xfce
DISTS_VM += centos7
DISTS_VM += centos7+minimal
DISTS_VM += centos7+xfce
DISTS_VM += buster+gnome+firmware
DISTS_VM += buster+minimal
DISTS_VM += buster+xfce+firmware
DISTS_VM += bullseye+gnome+firmware
DISTS_VM += bullseye+minimal
DISTS_VM += bullseye+xfce+firmware
DISTS_VM += bookworm+gnome+firmware
DISTS_VM += bookworm+minimal
DISTS_VM += bookworm+xfce+firmware
DISTS_VM += focal
DISTS_VM += focal+desktop
DISTS_VM += archlinux
DISTS_VM += archlinux+minimal
endif
################################################################################
# T E M P L A T E A L I A S
################################################################################
# TEMPLATE_ALIAS can be used to choose a shorter name in DISTS_VM that
# include some other TEMPLATE_FLAVORs. A TEMPLATE_LABEL will automatically
# be created if one does not exist that will use the alias name as the
# tempalte name. Plus signs (+) will be converted to hyphens (-).
ifneq (,$(findstring jessie, $(DISTS_VM))$(findstring stretch, $(DISTS_VM)))
TEMPLATE_ALIAS += jessie:jessie+standard
TEMPLATE_ALIAS += jessie+gnome:jessie+gnome+standard
TEMPLATE_ALIAS += jessie+minimal:jessie+minimal+no-recommends
TEMPLATE_ALIAS += stretch:stretch+standard
TEMPLATE_ALIAS += stretch+gnome:stretch+gnome+standard
TEMPLATE_ALIAS += stretch+minimal:stretch+minimal+no-recommends
endif
################################################################################
# T E M P L A T E C O N F I G U R A T I O N
################################################################################
# TEMPLATE_LABEL allows control over the final template name. There is a limit
# of 31 characters for the final template name
#
# TEMPLATE_LABE += <DIST_VM name as listed above>:<desired final template name>
TEMPLATE_LABEL ?=
TEMPLATE_LABEL += stretch:debian-9
TEMPLATE_LABEL += stretch+standard:debian-9
# Location of templates flavors that are not in default location.
# Example: wheezy+whonix-gateway would normally be in
# $$$$TEMPLATE_SCRIPTS/wheezy+whonix-gateway
# -or- $$$$TEMPLATE_SCRIPTS/wheezy
# (Don't Place in {curly} brackets; ending curly gets cut off
TEMPLATE_FLAVOR_DIR :=
TEMPLATE_FLAVOR_DIR += +gnome:$$$$TEMPLATE_SCRIPTS/gnome
TEMPLATE_FLAVOR_DIR += +flash:$$$$TEMPLATE_SCRIPTS/flash
TEMPLATE_FLAVOR_DIR += +desktop:$$$$TEMPLATE_SCRIPTS/desktop
TEMPLATE_FLAVOR_DIR += +firmware:$$$$TEMPLATE_SCRIPTS/firmware
################################################################################
# T E M P L A T E C O M P O N E N T S
################################################################################
# Contains a list of components when only building templates. Note the build
# order is very important
TEMPLATE :=
TEMPLATE += $(BUILDER_PLUGINS)
TEMPLATE += vmm-xen
TEMPLATE += core-vchan-xen
ifneq ($(RELEASE), 2)
TEMPLATE += core-qubesdb
endif
ifeq (,$(filter $(RELEASE), 3.2 4.0))
TEMPLATE += core-qrexec
endif
TEMPLATE += linux-utils
ifneq (,$(findstring buster, $(DISTS_VM)))
TEMPLATE += python-xcffib
endif
TEMPLATE += core-agent-linux
TEMPLATE += gui-common
TEMPLATE += gui-agent-linux
TEMPLATE += app-linux-split-gpg
TEMPLATE += app-thunderbird
TEMPLATE += app-linux-pdf-converter
TEMPLATE += app-linux-img-converter
TEMPLATE += app-linux-input-proxy
TEMPLATE += app-linux-usb-proxy
TEMPLATE += app-linux-snapd-helper
TEMPLATE += app-shutdown-idle
TEMPLATE += app-yubikey
TEMPLATE += $(MGMT_COMPONENTS)
TEMPLATE += meta-packages
TEMPLATE += linux-template-builder
################################################################################
# O V E R R I D E B R A N C H L O C A T I O N S
################################################################################
# Not yet available in 'QubesOS' repo
GIT_URL_template_whonix = $(GIT_BASEURL)/Whonix/qubes-template-whonix.git
GIT_URL_template_kali = $(GIT_BASEURL)/fepitre/qubes-template-kali.git
################################################################################
# U S E Q U B E S P A C K A G E S R E P O S I T O R I E S
################################################################################
# For building just few selected packages, it's very useful to download
# pre-built qubes-specific dependencies from `{yum,deb}.qubes-os.org`.
# This is especially true for gcc, which takes several hours to build.
# USE_QUBES_REPO_VERSION = $(RELEASE)
# USE_QUBES_REPO_TESTING = 0
################################################################################
# M I S C E L L A N E O U S
################################################################################
# Qubes-builder deps
DEPENDENCIES ?=
DEPENDENCIES += git rpmdevtools rpm-build createrepo perl-Digest-MD5 \
perl-Digest-SHA systemd-container dnf-plugins-core
# Additional for debian template
DEPENDENCIES += debootstrap dpkg-dev
# for ./setup
DEPENDENCIES += python3-sh dialog
# Uncomment the the following to enable override.conf include. Setup will
# automatically enable it only if an override is available and selected by
# user to enable.
#INCLUDE_OVERRIDE_CONF ?= true
ifdef INCLUDE_OVERRIDE_CONF
-include override.conf
endif
.PHONY: about release
about::
@echo "templates.conf"
release:
@echo "$(RELEASE)"
# vim: filetype=make