Whonix build fails with ERROR: Uncommitted changes!

Another one error, now during building proccess

git checkout 15.0.0.3.3-stable

git describe 15.0.0.3.3-stable

sudo ./whonix_build --target raw --flavor whonix-gateway-rpi --build --arch arm64 --kernel linux-image-arm64 --headers linux-headers-arm64

fails with:

INFO: Variable anon_dist_build_version was unset. Auto detected. Set to: 15.0.0.3.3
++ true 'INFO: Currently running script: ././build-steps.d/1200_create-debian-packages '
++ true 'INFO: LD_PRELOAD: '
+ cd /home/debian/Whonix/help-steps
+ cd ..
+ main
+ root_check
++ id -u
+ '[' 0 '!=' 0 ']'
+ echo 'INFO: Script running as root.'
INFO: Script running as root.
+ '[' whonix-gateway-rpi = whonix-custom-workstation ']'
+ create-debian-packages
+ '[' local = '' ']'
+ true '././build-steps.d/1200_create-debian-packages INFO: Going to update local APT repository... '
+ sleep 3
+ '[' '!' '' = '' ']'
+ source /home/debian/Whonix/help-steps/git_sanity_test
++ [[ /home/debian/Whonix/help-steps/git_sanity_test != \.\/\.\/\b\u\i\l\d\-\s\t\e\p\s\.\d\/\1\2\0\0\_\c\r\e\a\t\e\-\d\e\b\i\a\n\-\p\a\c\k\a\g\e\s ]]
++ script_was_sourced=true
++ '[' true = false ']'
++ '[' true = false ']'
+ git_sanity_test_main
+ git_sanity_test_parse_cmd
+ true 'INFO: git_sanity_test_parse_cmd | args: '
+ :
+ case $1 in
+ break
+ git_sanity_test_check_for_untagged_commits
++ git describe --always --abbrev=0
+ git_tag_nearest=15.0.0.3.3-stable
++ git describe --always --abbrev=1000000000
+ git_tag_current=15.0.0.3.3-stable
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: git_tag_nearest: 15.0.0.3.3-stable '
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: git_tag_current: 15.0.0.3.3-stable '
+ '[' 15.0.0.3.3-stable == 15.0.0.3.3-stable ']'
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: Git reports tagged commit. '
+ git_sanity_test_check_for_uncommitted_changes
++ git status --porcelain
+ '[' -n '?? a
?? packages/binaries-freedom/
?? packages/hardened_malloc/
?? packages/kicksecure-base-files/
?? packages/kicksecure-network-conf/' ']'
+ '[' '' = true ']'
+ true '---------------------------------------------------------------------'
+ true '/home/debian/Whonix/help-steps/git_sanity_test ERROR: Git reports uncommitted changes! '
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: (And you are not using --allow-uncommitted true, which you also should not do for security reasons, unless you are a developer or advanced user and know what you are doing. Such as in case you added custom code.) '
+ git_sanity_test_hint
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: (As a developer or advanced user you might want to use:)
--allow-untagged true --allow-uncommitted true
'
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: Running "git status" for your convenience. '
+ git status
HEAD detached at 15.0.0.3.3-stable
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	a
	packages/binaries-freedom/
	packages/hardened_malloc/
	packages/kicksecure-base-files/
	packages/kicksecure-network-conf/

nothing added to commit but untracked files present (use "git add" to track)
+ true '/home/debian/Whonix/help-steps/git_sanity_test INFO: Running git "clean -d --force --force --dry-run" for your convenience. '
+ git clean -d --force --force --dry-run
Would remove a
Would remove packages/binaries-freedom/
Would remove packages/hardened_malloc/
Would remove packages/kicksecure-base-files/
Would remove packages/kicksecure-network-conf/
+ true '/home/debian/Whonix/help-steps/git_sanity_test You most likely like to run:
    /home/debian/Whonix/help-steps/cleanup-files
or if you know what you are doing:
    git clean -d --force --force
    git reset --hard
'
+ true '---------------------------------------------------------------------'
+ error 'Uncommitted changes! See above!'
+ echo '############################################################'
############################################################
+ echo 'ERROR: Uncommitted changes! See above!'
ERROR: Uncommitted changes! See above!
+ echo '############################################################'
############################################################
+ error_ 'See above! (There should be a bold, red message surrounded by blue hashtags (#).)'
pre: line 30: error_: command not found
++ errorhandlergeneral ERR
++ last_failed_exit_code=127
++ last_failed_bash_command='error_ "See above! (There should be a bold, red message surrounded by blue hashtags (#).)"'
++ output_cmd_set
++ '[' -o xtrace ']'
++ output_cmd=true
++ true 'INFO: Middle of function errorhandlergeneral of ././build-steps.d/1200_create-debian-packages.'
++ errorhandlerprocessshared ERR
++ last_script=././build-steps.d/1200_create-debian-packages
++ trap_signal_type_previous=
++ '[' '' = '' ']'
++ trap_signal_type_previous=unset
++ trap_signal_type_last=ERR
++ whonix_build_error_counter=1
+++ benchmarktimeend 1568534766
++++ date +%s
+++ benchmarktimeend=1568534769
+++ benchmark_took_seconds=3
++++ convertsecs 3
++++ local h m s
++++ (( h=3/3600 ))
++++ true
++++ (( m=(3%3600)/60 ))
++++ true
++++ (( s=3%60 ))
++++ printf '%02d:%02d:%02d\n' 0 0 3
+++ echo 00:00:03
++ benchmark_took_time=00:00:03
++ processbacktracefunction
++ true 'INFO: BEGIN: processbacktracefunction'
++ '[' -o xtrace ']'
++ set +x
++ true 'INFO: END  : processbacktracefunction'
++ functiontracefunction
++ true 'INFO: BEGIN: functiontracefunction'
++ '[' -o xtrace ']'
++ set +x
++ true 'INFO: END  : functiontracefunction'
++ output_cmd_set
++ '[' -o xtrace ']'
++ output_cmd=true
++ true '
############################################################
ERROR in ././build-steps.d/1200_create-debian-packages detected!
anon_dist_build_version: 15.0.0.3.3
(whonix_build_error_counter: 1)
(benchmark: 00:00:03)
trap_signal_type_previous: unset
trap_signal_type_last    : ERR
process_backtrace_result:
1: : /sbin/init 
2: : xfce4-terminal 
3: : bash 
4: : sudo ./whonix_build --target raw --flavor whonix-gateway-rpi --build --arch arm64 --kernel linux-image-arm64 --headers linux-headers-arm64 
5: : /bin/bash ./whonix_build --target raw --flavor whonix-gateway-rpi --build --arch arm64 --kernel linux-image-arm64 --headers linux-headers-arm64 
6: : /bin/bash ././build-steps.d/1200_create-debian-packages 
function_trace_result:
main (line number: 212)
main (line number: 208)
create-debian-packages (line number: 196)
git_sanity_test_main (line number: 145)
git_sanity_test_check_for_uncommitted_changes (line number: 136)
error (line number: 30)
errorhandlergeneral (line number: 334)
errorhandlerprocessshared (line number: 169)
last_failed_bash_command: error_ "See above! (There should be a bold, red message surrounded by blue hashtags (#).)"
last_failed_exit_code: 127
ERROR in ././build-steps.d/1200_create-debian-packages detected!
############################################################
'
++ '[' ERR = INT ']'
++ '[' ERR = TERM ']'
++ '[' ERR = ERR ']'
++ true 'INFO: trap_signal_type_last: ERR, considering auto retry...'
++ '[' '!' 1 = 0 ']'
++ '[' '' = '' ']'
++ whonix_build_auto_retry_counter=1
++ '[' -n 1 ']'
++ '[' -n 5 ']'
++ local first
++ read -r first _
++ '[' error_ = error_ ']'
++ true 'INFO: No auto retry because first item of last_failed_bash_command is "error_".'
++ unset whonix_build_auto_retry_counter
++ true
++ ignore_error=false
++ answer=
++ '[' ERR = ERR ']'
++ true 'INFO: whonix_build_non_interactive: '
++ '[' '' = true ']'
++ '[' -t 0 ']'
++ true 'INFO: stdin connected to terminal, using interactive error handler.'
++ true '   ERROR in ././build-steps.d/1200_create-debian-packages detected!
   Please have a look above (the block within ###...), note the command that failed, last_failed_exit_code and its output (further above).
   - Please enter c and press enter to ignore the error and continue building. (Recommended against!)
   - Please press r and enter to retry.
   - Please press s and enter to open an chroot interactive shell.
   - Please press a and enter to abort.'

Did you make any changes to the source?
Either way try with
–allow-untagged true --allow-uncommitted true

as build options

1 Like

It’s happening because git master contains newer packages than the tag you’re trying to build.

The extraneous files (from perspective of the tag you try to build) are reported. The output of the build script already explains how to remove these.

This removal step isn’t automated since this could wipe out user custom modifications.

I try figure out how to git clone a specific git tag so these extraneous packages issue won’t happen.


Also build 15.0.0.4.9-stable instead. Just previously only 15.0.0.4.9-developers-only existed. Forgot to create an identical tag with the same name.

No good idea for most users. These extraneous packages do not point to any signed (and verified) git commit or git tag. These extra folders could be compromised in transfer.

Only by understanding what causes –allow-untagged true --allow-uncommitted true to proceed it is safe to proceed such as when having manually added/modified files but not committed or added commits on top of when trying to build from non-tagged commits.

2 Likes