Great. What is c3c1? A google search did not yield any relevant results.
Small comment on:
https://github.com/nrgaway/whonix-qubes/blob/master/usr/lib/whonix/utility_functions
We’re already setting a global WHONIX variable here (was maybe not the best idea at that time):
https://github.com/Whonix/whonix-base-files/blob/master/usr/lib/whonix/whonix.sh
So it might be better to change the variable name in utility_functions to avoid conflicts.
Okay, I will change this. I do not think it should cause any issues with the current code since I do not export the variable and am only using it locally. It would override the global WHONIX=1 variable in the local context, but since I do not need access to that global variable it should be fine. None the less I will change it. Will be a good test as I was trying to find things that could be changed 
I don't think this will be necessary:
setPermissions root root 0644 /etc/uwt.d/50_uwt_default
Saw this in no Debian package yet. Files in /etc/… are owned by root:root anyhow. /etc/uwt.d/30_uwt_default got permissions 0644 by default. They get the same permissions as in the source folder. So just set permissions as you wish in source folder/git and commit. That should suffice.
For the same reason, https://github.com/nrgaway/whonix-qubes/blob/master/debian/whonix-qubes.preinst should be unnecessary.
I will remove the relevant code then. That makes it much simpler.
[code]enableSystemdUnits[/code]
Is that custom code? I think dh_systemd is run automatically during packaging if building on jessie. dh_systemd should abstract all the systemd magic without needing manual custom code in debian maintainer scripts.
Yes it is custom code. I wrote this to be able to verify that a service is either enabled and disabled. It does not attempt to enable the service if its already enabled as it first checks the status and will only enable if the status returns disabled. There are cases when you need to disable and re-enable as well.
Since these services are core to the operation I prefer to be over cautious and not rely on the installer script to ensure something is enabled as I did have some issues at one point which may or may not exist now. It could be the issues arose from being installed in a chroot environment, in which much of the systemd functionality is disabled. This Debian installation package scripts will be used both in the initial chroot creation of the template and on live systems for updates so I need to make sure its reliable in both cases.
On a side note, I have also experimented with systemd-nspawn and LXC containers for creating the templates as this gives me more of a live environment to work with with less limitations of chroot. I wrote some simple functions that intercept chroot and based on an environmental variable either use chroot, systemd-nspawn or LXC. This allowed me not to have to modify any source files currently using chroot. I only mention this since it may be of interest to you when building Whonix.
The postrm script https://github.com/nrgaway/whonix-qubes/blob/master/debian/whonix-qubes.postrm does nothing yet and should be removed as long as it's doing nothing. Unless you plan on letting it do something in future. (debhelper auto adds such a script to the deb as needed even if it's not in the source.)
I added the postrm as a template for completeness so its there if I need it. The current version of this package is the exact code implemented at this point in time when creating the Whonix-Qubes templates. My next job will be to actually use this package within my creation of the templates using qubes-builder, then implement any fixes. If it ends up not being used when we need to push our first update, I will remove anything that is not needed.
I may not have much time in near future, so I am not sure when I can complete this task but will try to squeeze it in; maybe train myself to code while I am sleeping 