# ============================================================================= # 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=] ################################################################################ # # Qubes Release: 4.0 # Source Prefix: marmarek/qubes- (repo) # # Master Configuration File(s): # qubes-os-master.conf builder.conf debian-builder/builder.conf mgmt-salt/builder.conf Makefile # # builder.conf copied from: # /home/krish/qubes-builder/example-configs/templates.conf # ################################################################################ # [=setup info stop=] RELEASE := 4.0 # 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 := marmarek/qubes- # 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 -include example-configs/qubes-os-master.conf endif BUILDER_PLUGINS := $(_ORIGINAL_BUILDER_PLUGINS) $(BUILDER_PLUGINS) # [=setup plugins start=] # Enabled BUILDER_PLUGINS BUILDER_PLUGINS := BUILDER_PLUGINS += builder-fedora BUILDER_PLUGINS += builder-debian 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" # Enabled DISTS_VMs DISTS_VM := DISTS_VM += fc26 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 += fc20 DISTS_VM += fc20+minimal DISTS_VM += fc20+fullyloaded DISTS_VM += fc21 DISTS_VM += fc21+minimal DISTS_VM += fc21+fullyloaded DISTS_VM += fc23 DISTS_VM += fc23+minimal DISTS_VM += fc23+fullyloaded DISTS_VM += fc24 DISTS_VM += fc24+minimal DISTS_VM += fc24+fullyloaded DISTS_VM += fc25 DISTS_VM += fc25+minimal DISTS_VM += fc25+fullyloaded DISTS_VM += fc25+xfce DISTS_VM += fc26 DISTS_VM += fc26+minimal DISTS_VM += fc26+fullyloaded DISTS_VM += fc26+xfce DISTS_VM += centos7 DISTS_VM += centos7+minimal DISTS_VM += wheezy DISTS_VM += wheezy+minimal DISTS_VM += wheezy+gnome DISTS_VM += jessie DISTS_VM += jessie+minimal DISTS_VM += jessie+gnome DISTS_VM += stretch DISTS_VM += stretch+minimal DISTS_VM += stretch+gnome DISTS_VM += trusty DISTS_VM += trusty+desktop DISTS_VM += xenial DISTS_VM += xenial+desktop DISTS_VM += zesty DISTS_VM += zesty+desktop DISTS_VM += archlinux 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 wheezy, $(DISTS_VM))$(findstring jessie, $(DISTS_VM))$(findstring stretch, $(DISTS_VM))) TEMPLATE_ALIAS += wheezy:wheezy+standard TEMPLATE_ALIAS += wheezy+gnome:wheezy+gnome+standard TEMPLATE_ALIAS += wheezy+minimal:wheezy+minimal+no-recommends 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 += : 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 # (Don't Place in {curly} brackets; ending curly gets cut off # $$SCRIPTSDIR/wheezy+whonix-gateway # -or- $$SCRIPTSDIR/wheezy TEMPLATE_FLAVOR_DIR := TEMPLATE_FLAVOR_DIR += +gnome:$$SCRIPTSDIR/gnome TEMPLATE_FLAVOR_DIR += +flash:$$SCRIPTSDIR/flash TEMPLATE_FLAVOR_DIR += +desktop:$$SCRIPTSDIR/desktop ################################################################################ # 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 TEMPLATE += linux-utils ifneq (,$(findstring centos, $(DISTS_VM))) TEMPLATE += python-xcffib endif TEMPLATE += core-agent-linux TEMPLATE += gui-common TEMPLATE += gui-agent-linux TEMPLATE += app-linux-split-gpg TEMPLATE += app-linux-tor TEMPLATE += app-thunderbird TEMPLATE += app-linux-pdf-converter TEMPLATE += app-linux-img-converter TEMPLATE += app-linux-input-proxy TEMPLATE += app-linux-usb-proxy 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)/marmarek/qubes-template-whonix.git # Not yet available in 'marmarek' repo GIT_URL_mgmt_salt = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt.git GIT_URL_mgmt_salt_base = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-base.git GIT_URL_mgmt_salt_base_config = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-base-config.git GIT_URL_mgmt_salt_base_overrides = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-base-overrides.git GIT_URL_mgmt_salt_base_topd = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-base-topd.git GIT_URL_mgmt_salt_dom0_qvm = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-dom0-qvm.git GIT_URL_mgmt_salt_dom0_update = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-dom0-update.git GIT_URL_mgmt_salt_dom0_virtual_machines = $(GIT_BASEURL)/QubesOS/qubes-mgmt-salt-dom0-virtual-machines.git ################################################################################ # M I S C E L L A N E O U S ################################################################################ # Qubes-builder deps DEPENDENCIES ?= DEPENDENCIES += git rpmdevtools rpm-build createrepo # Additional for debian template DEPENDENCIES += debootstrap dpkg-dev # for ./setup DEPENDENCIES += python2-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 "builder.conf" release: @echo "$(RELEASE)" # vim: filetype=make