From ea4e1dc50ccd96fa1018278aa8ccabd7b4ffe29e Mon Sep 17 00:00:00 2001 From: Cesar Eduardo Barros Date: Sat, 28 May 2011 19:35:09 -0300 Subject: [PATCH] Add external manifests for all executables On Windows Vista, not having an application manifest with a requestedExecutionLevel can cause several kinds of confusing behavior. I sent a separate patch to add an embedded manifest to the git executables. This patch adds a similar external manifest to the rest of the executables. It detects whether the executable already contains an embedded manifest before creating the manifest file. The ideal situation would be for every executable to have an embedded manifest, but meanwhile this can avoid having to change every build system. This patch alone will not work as well for the git executables, because some of them are created by the installer (by copying or hardlinking). If used together with the previous patch, it should cover every executable. Tested by running copy-files.sh by hand on Wine. Signed-off-by: Cesar Eduardo Barros --- share/WinGit/asInvoker.manifest | 11 +++++++++++ share/WinGit/copy-files.sh | 1 + 2 files changed, 12 insertions(+) create mode 100644 share/WinGit/asInvoker.manifest diff --git a/share/WinGit/asInvoker.manifest b/share/WinGit/asInvoker.manifest new file mode 100644 index 00000000..21a11f60 --- /dev/null +++ b/share/WinGit/asInvoker.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/share/WinGit/copy-files.sh b/share/WinGit/copy-files.sh index c485ec93..76bd2ba7 100644 --- a/share/WinGit/copy-files.sh +++ b/share/WinGit/copy-files.sh @@ -93,5 +93,6 @@ cp /share/WinGit/ReleaseNotes.rtf . && sed 's/^\. .*\(git-completion.bash\)/. \/etc\/\1/' \ < /etc/profile > etc/profile && cp /share/resources/git.ico etc/ && +(for exe in $(find -iname \*.exe); do if fgrep -q urn:schemas-microsoft-com:asm.v "$exe"; then :; else cp /share/WinGit/asInvoker.manifest "$exe".manifest; fi; done) && find bin libexec -iname \*.exe -o -iname \*.dll | sort > etc/fileList-bindimage.txt || exit 1 -- 2.11.4.GIT