diff --git a/.gitignore b/.gitignore
index b1b14c8d..234e70b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,7 +17,6 @@ tools/generate_emu_config/bin/
 tools/generate_emu_config/login_temp/
 tools/generate_emu_config/output/
 tools/generate_emu_config/**/__pycache__/
-tools/generate_emu_config/**/*.spec
 tools/generate_emu_config/**/my_login.txt
 tools/generate_emu_config/top_owners_ids.txt
 
@@ -27,6 +26,5 @@ tools/migrate_gse/.env*/
 tools/migrate_gse/.vscode/
 tools/migrate_gse/bin/
 tools/migrate_gse/**/__pycache__/
-tools/migrate_gse/**/*.spec
 
 third-party/
diff --git a/tools/generate_emu_config/rebuild_linux.sh b/tools/generate_emu_config/rebuild_linux.sh
index bbe69c62..e13b6a99 100644
--- a/tools/generate_emu_config/rebuild_linux.sh
+++ b/tools/generate_emu_config/rebuild_linux.sh
@@ -16,13 +16,13 @@ chmod 777 "./$venv/bin/activate"
 source "./$venv/bin/activate"
 
 echo building generate_emu_config...
-pyinstaller "generate_emu_config.py" --distpath "$out_dir" -y --clean --onedir --name "generate_emu_config" --noupx --console -i "NONE" --workpath "$build_temp_dir" --collect-submodules "steam" || exit 1
+pyinstaller "generate_emu_config.py" --distpath "$out_dir" -y --clean --onedir --name "generate_emu_config" --noupx --console -i "NONE" --collect-submodules "steam" --workpath "$build_temp_dir" --specpath "$build_temp_dir" || exit 1
 
 echo building parse_controller_vdf...
-pyinstaller "controller_config_generator/parse_controller_vdf.py" --distpath "$out_dir" -y --clean --onedir --name "parse_controller_vdf" --noupx --console -i "NONE" --workpath "$build_temp_dir" || exit 1
+pyinstaller "controller_config_generator/parse_controller_vdf.py" --distpath "$out_dir" -y --clean --onedir --name "parse_controller_vdf" --noupx --console -i "NONE" --workpath "$build_temp_dir" --specpath "$build_temp_dir" || exit 1
 
 echo building parse_achievements_schema...
-pyinstaller "stats_schema_achievement_gen/achievements_gen.py" --distpath "$out_dir" -y --clean --onedir --name "parse_achievements_schema" --noupx --console -i "NONE" --workpath "$build_temp_dir" || exit 1
+pyinstaller "stats_schema_achievement_gen/achievements_gen.py" --distpath "$out_dir" -y --clean --onedir --name "parse_achievements_schema" --noupx --console -i "NONE" --workpath "$build_temp_dir" --specpath "$build_temp_dir" || exit 1
 
 cp -f "steam_default_icon_locked.jpg" "$out_dir/generate_emu_config"
 cp -f "steam_default_icon_unlocked.jpg" "$out_dir/generate_emu_config"
diff --git a/tools/generate_emu_config/rebuild_win.bat b/tools/generate_emu_config/rebuild_win.bat
index 434529fe..e46a109d 100644
--- a/tools/generate_emu_config/rebuild_win.bat
+++ b/tools/generate_emu_config/rebuild_win.bat
@@ -31,21 +31,21 @@ del /f /q "*.spec"
 call "%venv%\Scripts\activate.bat"
 
 echo building generate_emu_config...
-pyinstaller "generate_emu_config.py" --distpath "%out_dir%" -y --clean --onedir --name "generate_emu_config" --noupx --console -i "%icon_file%" --workpath "%build_temp_dir%" --collect-submodules "steam" || (
+pyinstaller "generate_emu_config.py" --distpath "%out_dir%" -y --clean --onedir --name "generate_emu_config" --noupx --console -i "%icon_file%" --collect-submodules "steam" --workpath "%build_temp_dir%" --specpath "%build_temp_dir%" || (
     set /a last_code=1
     goto :script_end
 )
 call "%signer_tool%" "%out_dir%\generate_emu_config\generate_emu_config.exe"
 
 echo building parse_controller_vdf...
-pyinstaller "controller_config_generator\parse_controller_vdf.py" --distpath "%out_dir%" -y --clean --onedir --name "parse_controller_vdf" --noupx --console -i "NONE" --workpath "%build_temp_dir%" || (
+pyinstaller "controller_config_generator\parse_controller_vdf.py" --distpath "%out_dir%" -y --clean --onedir --name "parse_controller_vdf" --noupx --console -i "NONE" --workpath "%build_temp_dir%" --specpath "%build_temp_dir%" || (
     set /a last_code=1
     goto :script_end
 )
 call "%signer_tool%" "%out_dir%\parse_controller_vdf\parse_controller_vdf.exe"
 
 echo building parse_achievements_schema...
-pyinstaller "stats_schema_achievement_gen\achievements_gen.py" --distpath "%out_dir%" -y --clean --onedir --name "parse_achievements_schema" --noupx --console -i "NONE" --workpath "%build_temp_dir%" || (
+pyinstaller "stats_schema_achievement_gen\achievements_gen.py" --distpath "%out_dir%" -y --clean --onedir --name "parse_achievements_schema" --noupx --console -i "NONE" --workpath "%build_temp_dir%" --specpath "%build_temp_dir%" || (
     set /a last_code=1
     goto :script_end
 )
diff --git a/tools/migrate_gse/rebuild_linux.sh b/tools/migrate_gse/rebuild_linux.sh
index cdf65a70..3ba9c14e 100644
--- a/tools/migrate_gse/rebuild_linux.sh
+++ b/tools/migrate_gse/rebuild_linux.sh
@@ -16,7 +16,7 @@ chmod 777 "./$venv/bin/activate"
 source "./$venv/bin/activate"
 
 echo building migrate_gse...
-pyinstaller "main.py" --distpath "$out_dir" -y --clean --onedir --name "migrate_gse" --noupx --console -i "NONE" --workpath "$build_temp_dir" || exit 1
+pyinstaller "main.py" --distpath "$out_dir" -y --clean --onedir --name "migrate_gse" --noupx --console -i "NONE" --workpath "$build_temp_dir" --specpath "$build_temp_dir" || exit 1
 
 cp -f "README.md" "$out_dir/migrate_gse"
 
diff --git a/tools/migrate_gse/rebuild_win.bat b/tools/migrate_gse/rebuild_win.bat
index 75932fbc..d8df6fd1 100644
--- a/tools/migrate_gse/rebuild_win.bat
+++ b/tools/migrate_gse/rebuild_win.bat
@@ -30,7 +30,7 @@ del /f /q "*.spec"
 call "%venv%\Scripts\activate.bat"
 
 echo building migrate_gse...
-pyinstaller "main.py" --distpath "%out_dir%" -y --clean --onedir --name "migrate_gse" --noupx --console -i "NONE" --workpath "%build_temp_dir%" || (
+pyinstaller "main.py" --distpath "%out_dir%" -y --clean --onedir --name "migrate_gse" --noupx --console -i "NONE" --workpath "%build_temp_dir%" --specpath "%build_temp_dir%" || (
     set /a last_code=1
     goto :script_end
 )