pkgs/applications/version-management/git-and-tools/git: fixed "git gui"

The git-gui module cannot be wrapped like gitk, because the Tcl implementation
uses the program's basename to determine stuff like the name of the Window it
opens, etc., and it cannot deal with a program name that contain a dot, like
".git-gui-wrapped" did.

Instead of wrapping git-gui, it's now patched to execute 'wish' with a complete
store path.

While I was at it, I also applied this solution to git-gui--askpass.

svn path=/nixpkgs/trunk/; revision=25453
This commit is contained in:
Peter Simons 2011-01-07 11:03:42 +00:00
parent d4872127b5
commit 167f185411

View File

@ -84,12 +84,16 @@ stdenv.mkDerivation rec {
+ (if guiSupport then ''
# Wrap Tcl/Tk programs
for prog in bin/gitk libexec/git-core/git-gui
do
for prog in bin/gitk; do
wrapProgram "$out/$prog" \
--set TK_LIBRARY "${tk}/lib/${tk.libPrefix}" \
--prefix PATH : "${tk}/bin"
done
for prog in git-gui git-citool git-gui--askpass; do
sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \
-e "s|exec wish|exec '${tk}/bin/wish'|g" \
"$out/libexec/git-core/$prog"
done
'' else ''
# Don't wrap Tcl/Tk, replace them by notification scripts
for prog in bin/gitk libexec/git-core/git-gui