Advertisement
Guest User

builder.conf

a guest
Nov 4th, 2022
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.41 KB | Source Code | 0 0
  1. # =============================================================================
  2. # CONFIGURATION FILE FOR QUBES-BUILDER
  3. # =============================================================================
  4. #
  5. # THIS CONFIGURATION FILE IS INDENDED TO ONLY BE USED WITH THE `setup` SCRIPT.
  6. # -----------------------------------------------------------------------------
  7. #
  8. # This configuration file (`templates.conf`) will be linked to by `setup` as
  9. # `builder.conf`. (ln -s example-configs/templates.conf builder.conf)
  10. #
  11. # To use the `setup` script, just run `setup` in the qubes-builder root
  12. # directory. A series of dialogs will be presented prompting various
  13. # configuration available and then all build configuration files will
  14. # automatically be generated based on the options selected.
  15. #
  16. # `setup` can be re-run again at any time to change configuration options.
  17. # Previous options selected will be retained to allow quick switching of
  18. # branches, templates to build, etc.
  19. #
  20. # Setup uses the following as markers to indicate where to place configuration
  21. # values:
  22. # [=setup section start=] - Start inserting on the next line
  23. # [=setup section end=] - Stop insert mode
  24. #
  25. # Anything between these markers will be replaced, therefore:
  26. # - do not place any user configurations within these markers, or those
  27. # configurations will be replaced next time setup is run
  28. # - do not remove or modify the markers or setup will be unable to function
  29. #
  30. # -----------------------------------------------------------------------------
  31. # CONFIGURATION FILES INCLUDED WITH THIS CONFIGURATION
  32. # -----------------------------------------------------------------------------
  33. # Other configuration files are also included to offer maximum flexibility. To
  34. # determine which configuration files are actually being included when using
  35. # this configuration file as a base, use the `about` target:
  36. # `make about`
  37. #
  38. # The other configuration files included (if they exist which some of them are
  39. # automatically generated by `setup`) are as follows:
  40. # - example-configs/qubes-os-r2.conf: If RELEASE == 2; Default Release 2
  41. # configuration file
  42. # - example-configs/qubes-os-master.conf: If RELEASE == 3; Default Release 3
  43. # configuration file
  44. # - override.conf: `setup` will also offer to include `override.conf` if one
  45. # exists. More information on `overrides` below.
  46. # - example-configs/extended-rules.conf: Contains extra targets mostly for
  47. # building templates
  48. #
  49. # -----------------------------------------------------------------------------
  50. # ADDITIONAL OVERRIDES
  51. # -----------------------------------------------------------------------------
  52. # Instead of directly modifying this or any other `default` configuration
  53. # file, an override.conf file can be placed in the `qubes-builder` root
  54. # directory. `setup` will offer to include this file if it exists.
  55. #
  56. # The `override.conf` file can contain overrides to most any configuration
  57. # option such as BRANCH, DEBUG, VERBOSE, etc.
  58. #
  59. # If you create `overrides` that are specific to a release version or custom
  60. # branch you are working on, `setup` will also be able to identify overrides
  61. # specific to the release and or branch.
  62. #
  63. # To create release / branch specific `overrides`, create an override
  64. # configuration file and place it in the `example-configs` directory named
  65. # as follows:
  66. # 1) example-configs/r2-feature_branch-override.conf
  67. # example-configs/r3-master-override.conf
  68. #
  69. # 2) example-configs/r3-feature_branch-override.conf
  70. # example-configs/r3-master-override.conf
  71. #
  72. # 3) example-configs/feature_branch-override.conf
  73. # example-configs/master-override.conf
  74. #
  75. # 4) example-configs/override.conf
  76. #
  77. # 5) override.conf
  78. #
  79. # Option 1 above would offer to include the override configuration file if you
  80. # selected to build for Release 2 and are currently in the `feature_branch`
  81. # branch.
  82. #
  83. # Option 2 is the same as Option 1 except for Release 3.
  84. #
  85. # Option 3 would use the same configuration override for both Release 2 and 3
  86. # if you are currently in the `feature_branch` branch.
  87. #
  88. # If there is no release / branch specific override configuration and
  89. # override.conf exists as in options 4, that will be available to select.
  90. #
  91. # Finally, an override.conf file in the `qubes-builder` root directory
  92. # overrides all the above examples.
  93. #
  94. #
  95. # A few additional notes and caveats on overrides:
  96. #
  97. # - The dialog to choose an override configuration is only presented on the
  98. # initial run of `setup`. Once a `builder.conf` file created, there will be
  99. # no further prompts. As indicated above, `setup` initially soft links
  100. # `examples-config/templates.conf` to `builder.conf`. To overcome
  101. # this limitation, simply delete the `builder.conf` soft link and then the
  102. # override prompt will become available again when you re-run `setup`.
  103. #
  104. # - The `setup` script soft links any override configuration within the
  105. # examples-config directory to overrides.conf. It will allow any soft linked
  106. # override to be replaced with a newly selected override option, but will not
  107. # allow an existing `override.conf` regular file to be overwritten that is
  108. # in the `qubes-builder` root directory.
  109. #
  110. # -----------------------------------------------------------------------------
  111. # All lines which begins with "#" are treated as comments
  112. # Assignments can be made with VAR_NAME="VALUE"
  113.  
  114. # [=setup info start=]
  115. ################################################################################
  116. #
  117. # Qubes Release: 4.1
  118. # Source Prefix: QubesOS/qubes- (repo)
  119. #
  120. # Master Configuration File(s):
  121. # qubes-os-master.conf builder.conf Makefile
  122. #
  123. # builder.conf copied from:
  124. # /home/user/qubes-builder/example-configs/templates.conf
  125. #
  126. ################################################################################
  127. # [=setup info stop=]
  128.  
  129. RELEASE := 4.1
  130.  
  131. # SSH_ACCESS is used by `setup` to determine if ssh access mode was selected and
  132. # will re-write the GIT_BASEURL and GIT_PREFIX variables to use ssh mode.
  133. SSH_ACCESS := 0
  134. GIT_BASEURL := https://github.com
  135. GIT_PREFIX := QubesOS/qubes-
  136.  
  137. # Fetch repositories with depth=1
  138. GIT_CLONE_FAST ?= 1
  139.  
  140. # A Qubes master configuration file will be included based on selected RELEASE
  141. #
  142. # A copy of BUILDER_PLUGINS will be made and restored since the BUILDER_PLUGIN
  143. # variable gets over-written in qubes-os-master.conf.
  144. _ORIGINAL_BUILDER_PLUGINS := $(BUILDER_PLUGINS)
  145. ifeq ($(RELEASE), 2)
  146. -include example-configs/qubes-os-r2.conf
  147. else ifeq ($(RELEASE), 3)
  148. -include example-configs/qubes-os-r3.0.conf
  149. else ifeq ($(RELEASE), 3.1)
  150. -include example-configs/qubes-os-r3.1.conf
  151. else ifeq ($(RELEASE), 3.2)
  152. -include example-configs/qubes-os-r3.2.conf
  153. else ifeq ($(RELEASE), 4.0)
  154. -include example-configs/qubes-os-r4.0.conf
  155. else
  156. -include example-configs/qubes-os-master.conf
  157. endif
  158. BUILDER_PLUGINS := $(_ORIGINAL_BUILDER_PLUGINS) $(BUILDER_PLUGINS)
  159.  
  160. # [=setup plugins start=]
  161.  
  162. # Enabled BUILDER_PLUGINS
  163. BUILDER_PLUGINS :=
  164. BUILDER_PLUGINS += builder-archlinux
  165.  
  166. # [=setup plugins stop=]
  167.  
  168. # Put all the enabled plugins into components to download them. But avoid
  169. # duplicates
  170. _temp_components := $(COMPONENTS)
  171. COMPONENTS += $(filter-out $(_temp_components), $(BUILDER_PLUGINS))
  172.  
  173. DEBUG = 0
  174. VERBOSE = 0
  175. NO_SIGN = 1
  176.  
  177. DIST_DOM0 ?= fc20
  178.  
  179. # Only build templates (comment out or set to '0' to build all of Qubes).
  180. TEMPLATE_ONLY ?= 1
  181.  
  182. ################################################################################
  183. # S A L T M A N A G E M E N T O P T I O N S
  184. ################################################################################
  185. # MGMT_SALT_ONLY - Build only mgmt-salt COMPONENTS
  186. # Only mgmt-salt components will bw built when issuing 'make qubes[-vm/dom0]
  187. # which is useful for developing.
  188. #
  189. # Set 1 to enable building only salt-mgmt COMPONENTS or clear value to build
  190. # all qubes components including mgmt-salt.
  191. # Default: novalue
  192. #MGMT_SALT_ONLY = 1
  193.  
  194. # MGMT_SALT_COMPONENTS_USER - Custom mgmt-salt user components
  195. # Add any extra user based mgmt-salt formula components to include in build.
  196. # Default: novalue
  197. #MGMT_SALT_COMPONENTS_USER =
  198.  
  199. ################################################################################
  200. # L I S T O F D I S T V M ' S
  201. ################################################################################
  202. # Available template flavors may be added the the template build by appending
  203. # `+flavor_name`
  204.  
  205. # [=setup dists start=]
  206. ifneq "$(SETUP_MODE)" "1"
  207.  
  208. # Enabled DISTS_VMs
  209. DISTS_VM :=
  210. DISTS_VM += archlinux+minimal
  211.  
  212. endif
  213. # [=setup dists stop=]
  214.  
  215. # List of all build template variations that will be offered in the 'setup'
  216. # DISTS_VM dialog to be able to choose from
  217. ifeq "$(SETUP_MODE)" "1"
  218. DISTS_VM :=
  219. DISTS_VM += fc33
  220. DISTS_VM += fc33+minimal
  221. DISTS_VM += fc33+fullyloaded
  222. DISTS_VM += fc33+xfce
  223. DISTS_VM += fc34
  224. DISTS_VM += fc34+minimal
  225. DISTS_VM += fc34+fullyloaded
  226. DISTS_VM += fc34+xfce
  227. DISTS_VM += fc35
  228. DISTS_VM += fc35+minimal
  229. DISTS_VM += fc35+fullyloaded
  230. DISTS_VM += fc35+xfce
  231. DISTS_VM += fc36
  232. DISTS_VM += fc36+minimal
  233. DISTS_VM += fc36+fullyloaded
  234. DISTS_VM += fc36+xfce
  235. DISTS_VM += centos7
  236. DISTS_VM += centos7+minimal
  237. DISTS_VM += centos7+xfce
  238. DISTS_VM += buster
  239. DISTS_VM += buster+minimal
  240. DISTS_VM += buster+gnome
  241. DISTS_VM += bullseye
  242. DISTS_VM += bullseye+minimal
  243. DISTS_VM += bullseye+gnome
  244. DISTS_VM += focal
  245. DISTS_VM += focal+desktop
  246. DISTS_VM += archlinux
  247. DISTS_VM += archlinux+minimal
  248. endif
  249.  
  250. ################################################################################
  251. # T E M P L A T E A L I A S
  252. ################################################################################
  253. # TEMPLATE_ALIAS can be used to choose a shorter name in DISTS_VM that
  254. # include some other TEMPLATE_FLAVORs. A TEMPLATE_LABEL will automatically
  255. # be created if one does not exist that will use the alias name as the
  256. # tempalte name. Plus signs (+) will be converted to hyphens (-).
  257. ifneq (,$(findstring jessie, $(DISTS_VM))$(findstring stretch, $(DISTS_VM)))
  258.  
  259. TEMPLATE_ALIAS += jessie:jessie+standard
  260. TEMPLATE_ALIAS += jessie+gnome:jessie+gnome+standard
  261. TEMPLATE_ALIAS += jessie+minimal:jessie+minimal+no-recommends
  262.  
  263. TEMPLATE_ALIAS += stretch:stretch+standard
  264. TEMPLATE_ALIAS += stretch+gnome:stretch+gnome+standard
  265. TEMPLATE_ALIAS += stretch+minimal:stretch+minimal+no-recommends
  266. endif
  267.  
  268. ################################################################################
  269. # T E M P L A T E C O N F I G U R A T I O N
  270. ################################################################################
  271. # TEMPLATE_LABEL allows control over the final template name. There is a limit
  272. # of 31 characters for the final template name
  273. #
  274. # TEMPLATE_LABE += <DIST_VM name as listed above>:<desired final template name>
  275. TEMPLATE_LABEL ?=
  276. TEMPLATE_LABEL += stretch:debian-9
  277. TEMPLATE_LABEL += stretch+standard:debian-9
  278.  
  279. # Location of templates flavors that are not in default location.
  280. # Example: wheezy+whonix-gateway would normally be in
  281. # $$$$TEMPLATE_SCRIPTS/wheezy+whonix-gateway
  282. # -or- $$$$TEMPLATE_SCRIPTS/wheezy
  283. # (Don't Place in {curly} brackets; ending curly gets cut off
  284. TEMPLATE_FLAVOR_DIR :=
  285. TEMPLATE_FLAVOR_DIR += +gnome:$$$$TEMPLATE_SCRIPTS/gnome
  286. TEMPLATE_FLAVOR_DIR += +flash:$$$$TEMPLATE_SCRIPTS/flash
  287. TEMPLATE_FLAVOR_DIR += +desktop:$$$$TEMPLATE_SCRIPTS/desktop
  288. TEMPLATE_FLAVOR_DIR += +firmware:$$$$TEMPLATE_SCRIPTS/firmware
  289.  
  290. ################################################################################
  291. # T E M P L A T E C O M P O N E N T S
  292. ################################################################################
  293. # Contains a list of components when only building templates. Note the build
  294. # order is very important
  295. TEMPLATE :=
  296.  
  297. TEMPLATE += $(BUILDER_PLUGINS)
  298.  
  299. TEMPLATE += vmm-xen
  300. TEMPLATE += core-vchan-xen
  301. ifneq ($(RELEASE), 2)
  302. TEMPLATE += core-qubesdb
  303. endif
  304. ifeq (,$(filter $(RELEASE), 3.2 4.0))
  305. TEMPLATE += core-qrexec
  306. endif
  307. TEMPLATE += linux-utils
  308. ifneq (,$(findstring buster, $(DISTS_VM)))
  309. TEMPLATE += python-xcffib
  310. endif
  311. TEMPLATE += core-agent-linux
  312. TEMPLATE += gui-common
  313. TEMPLATE += gui-agent-linux
  314. TEMPLATE += app-linux-split-gpg
  315. TEMPLATE += app-thunderbird
  316. TEMPLATE += app-linux-pdf-converter
  317. TEMPLATE += app-linux-img-converter
  318. TEMPLATE += app-linux-input-proxy
  319. TEMPLATE += app-linux-usb-proxy
  320. TEMPLATE += app-linux-snapd-helper
  321. TEMPLATE += app-shutdown-idle
  322. TEMPLATE += app-yubikey
  323. TEMPLATE += $(MGMT_COMPONENTS)
  324. TEMPLATE += meta-packages
  325. TEMPLATE += linux-template-builder
  326.  
  327. ################################################################################
  328. # O V E R R I D E B R A N C H L O C A T I O N S
  329. ################################################################################
  330. # Not yet available in 'QubesOS' repo
  331. GIT_URL_template_whonix = $(GIT_BASEURL)/Whonix/qubes-template-whonix.git
  332. GIT_URL_template_kali = $(GIT_BASEURL)/fepitre/qubes-template-kali.git
  333.  
  334. ################################################################################
  335. # 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
  336. ################################################################################
  337. # For building just few selected packages, it's very useful to download
  338. # pre-built qubes-specific dependencies from `{yum,deb}.qubes-os.org`.
  339. # This is especially true for gcc, which takes several hours to build.
  340.  
  341. # USE_QUBES_REPO_VERSION = $(RELEASE)
  342. USE_QUBES_REPO_TESTING = 0
  343.  
  344. ################################################################################
  345. # M I S C E L L A N E O U S
  346. ################################################################################
  347. # Qubes-builder deps
  348. DEPENDENCIES ?=
  349. DEPENDENCIES += git rpmdevtools rpm-build createrepo perl-Digest-MD5 \
  350. perl-Digest-SHA systemd-container
  351.  
  352. # Additional for debian template
  353. DEPENDENCIES += debootstrap dpkg-dev
  354.  
  355. # for ./setup
  356. DEPENDENCIES += python3-sh dialog
  357.  
  358. # Uncomment the the following to enable override.conf include. Setup will
  359. # automatically enable it only if an override is available and selected by
  360. # user to enable.
  361. #INCLUDE_OVERRIDE_CONF ?= true
  362. ifdef INCLUDE_OVERRIDE_CONF
  363. -include override.conf
  364. endif
  365.  
  366. .PHONY: about release
  367. about::
  368. @echo "builder.conf"
  369.  
  370. release:
  371. @echo "$(RELEASE)"
  372.  
  373. # vim: filetype=make
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement