Whonix on Mac M1 (ARM) - User Support (still unsupported at time of writing)

Okay tried to build and tor browser failed to download. Tried to use the command: update-torbrowser --resume and it tried to download 13.0.8 of the arm port of tor browser. But it gets a 404. I went and checked sourceforge for the repository where arm tor browser is. And on Tor Browser Ports by holind. There are no 13.0.8 at the moment i tried to download it. Only 13.0.6. Is this a fault from my end? or something else went wrong?


The service you’re looking for, that is free, up-to-date Tor Browser ARM64 builds is not provided by anyone on the internet.

I see, well just reporting that the build is trying to download a version that does not exist anywhere.

What I could do is for non-redistributable builds setting the default to:

  • A) --tb none (not attempt to download Tor Browser), or
  • B) --tb open (attempt to download but do not consider download failure a reason to break the build process. The latter would be bad for reproducible builds as this can lead to inconsistent (with or without Tor Browser) images but not an issue for the foreseeable future.

I had the exact same issue. Here’s how to fix it.

Check the latest version here: (remove space)
sourceforge. net/projects/tor-browser-ports/files/

Now use that specific version:

tbb_version=13.0.6 update-torbrowser

That worked well and installed it without any issues.

Was implemented.

  • Will be the default in the next version after
  • Not yet in

I see, will see and wait then. But been a while since the repo has last been taged. So reason for me not saying much. Also thanks Dmitry, knew of way to get tor-browser to work again. Just want to make it work out of the box.

Wait for what? Not a big deal. Just read and use:

i know that i can build the project without the browser, but i want to check when it does build with it. If i just needed something that work then i would have just build without then installed it manually.

Did test/build and it worked perfectly on m1.


idk if this is a place to share stuff like this. But just wanna share how i build projects now. As i am doing this all the time. All i do is now to have a updated debian 12 vm. With user with sudo privileges with no password. Then i have this in my bashrc that will make sure i have all dependencies, build the project and clean up stuff. Maybe not the best way to do stuff and have no implemented a way to only run when the git repository is signed.

function whonix () {

	if [ -z "$1" ]; then
		echo "Error: Missing whonix version. Please provide an whonix version."
		return 1

	echo "Starting whonix build function"
	rm -rf $HOME/derivative-maker
	rm -rf $HOME/derivative-binary
	rm -rf $HOME/whonix-binary
	rm -rf $HOME/build-log
	touch $HOME/build-log
	echo "Ready to build whonix version $WHONIX_VERSION now?"
	read -n 1 -s -r -p "Press any key to continue"
	echo ""
	echo "Too follow build use tail on the build log"

	echo "Starting whonix build" >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	sudo apt update -y >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	sudo apt upgrade -y >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	sudo apt autoremove -y >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	sudo apt install -y git time curl apt-cacher-ng lsb-release fakeroot fasttrack-archive-keyring >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1

	echo "Git clone whonix version $WHONIX_VERSION" >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	git clone --depth=1 --branch $WHONIX_VERSION --jobs=4 --recurse-submodules --shallow-submodules https://github.com/Whonix/derivative-maker.git >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	cd $HOME/derivative-maker >> ~/build-log 2>&1
	echo "Change directory too $(pwd)" >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	echo "Check if repository version matches and verify gpg signature" >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	git describe >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1

	GIT_VERSION=$(git describe --tags --abbrev=0)

    	if [ "$GIT_VERSION" == "$WHONIX_VERSION" ]; then
        	echo "Git version matches the desired version ($WHONIX_VERSION)." >> ~/build-log 2>&1
        	echo "Git version does not match the desired version ($WHONIX_VERSION)." >> ~/build-log 2>&1
		echo "Build failed because desired whonix version did not match the git repository"
		return 2

	git verify-tag $WHONIX_VERSION >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1

	echo "Building gateway" >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	~/derivative-maker/derivative-maker --flavor whonix-gateway-xfce --target utm --arch arm64 --tb open --repo true --vmsize 15G >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1

	echo "Building workstation" >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	~/derivative-maker/derivative-maker --flavor whonix-workstation-xfce --target utm --arch arm64 --tb open --repo true --vmsize 25G >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1

	mkdir $HOME/whonix-binary >> ~/build-log 2>&1
	cp -vr $HOME/derivative-binary/$VERSION_NUMBER/*.utm.tar.gz $HOME/whonix-binary >> ~/build-log 2>&1
	echo "" >> ~/build-log 2>&1
	echo "Build of whonix version $WHONIX_VERSION is finished" >> ~/build-log 2>&1

	cp $HOME/build-log $HOME/whonix-binary/
	echo "Build function finished, please check log"
	cd $HOME

Then i run this on the command line to build a project. Basically calling the function whonix then add as argument the tag you want to build. Just a fast way to build both project fast. And copies all the files i care about in its own folders so i can scp it out.

$ whonix

If anyone wants to (or care too) improve this simple function then do please tell me.


I recommend to quote variables, use shellcheck, set -o nounset, set -e, git.

Maybe useful for you to have user/developer specific helper scripts here?

Not sure that would be useful for you.

1 Like

8 posts were split to a new topic: Goldeneye128 - Simple script to build whonix on a mac with apple silicon