Hi,
On 27/05/2010 00:02, Peter Simons wrote:
> very nice patch, thank you for your efforts!
>
> > + wrapProgram --keep-name "$out/$prog" \
> > --set TK_LIBRARY "${tk}/lib/tk8.4" \
> > --prefix PATH : "${tk}/bin"
As Marc suggested, I removed some duplications separating the functions
- wrapProgram
- wrapProgramKeepName
It has been tested on git and it does work,
But I don't know how to check how much will be rebuild by this patch...
> Hard-coding the Tk version number in the expression for Git doesn't feel quite
> right. Would it be possible to use pattern matching, i.e. ${tk}/lib/tk* to
> determine the path for TK_LIBRARY?
In the patch tk-libPrefix.patch, I introduce tk.libPrefix="tk8.5" and
change when it was hardcoded with the old value "tk8.4".
--
Regards, David
From: David Guibert <[email protected]>
Subject: [PATCH] change tk8.4 by tk.libPrefix
Tk version number is now 8.5 but at several places TK_LIBRARY is set
"${tk}/lib/tk8.4".
As for Python, tk.libPrefix is introduced to match "tk8.5".
Signed-off-by: David Guibert <[email protected]>
---
pkgs/applications/misc/wordnet/default.nix | 2 +-
.../git-and-tools/git/default.nix | 2 +-
.../git-and-tools/git/git-git.nix | 2 +-
.../version-management/mercurial/default.nix | 2 +-
pkgs/development/libraries/tk/default.nix | 4 ++++
5 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/pkgs/applications/misc/wordnet/default.nix
b/pkgs/applications/misc/wordnet/default.nix
index f63d61b..86213a8 100644
--- a/pkgs/applications/misc/wordnet/default.nix
+++ b/pkgs/applications/misc/wordnet/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
"--with-tk=" + tk + "/lib";
postInstall = ''
- wrapProgram $out/bin/wishwn --set TK_LIBRARY "${tk}/lib/tk8.4"
+ wrapProgram $out/bin/wishwn --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
wrapProgram $out/bin/wnb --prefix PATH : "$out/bin"
'';
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix
b/pkgs/applications/version-management/git-and-tools/git/default.nix
index cbc498e..af3eec1 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
do
wrapProgramKeepName "$out/$prog" \
- --set TK_LIBRARY "${tk}/lib/tk8.4" \
+ --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}" \
--prefix PATH : "${tk}/bin"
done
'' else ''
diff --git a/pkgs/applications/version-management/git-and-tools/git/git-git.nix
b/pkgs/applications/version-management/git-and-tools/git/git-git.nix
index 0e4efa2..a3b2a60 100644
--- a/pkgs/applications/version-management/git-and-tools/git/git-git.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/git-git.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
+ (if guiSupport then ''
# Wrap Tcl/Tk programs
- wrapArgs="$wrapArgs --set TK_LIBRARY ${tk}/lib/tk8.4"
+ wrapArgs="$wrapArgs --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}"
wrapArgs="$wrapArgs --prefix PATH : ${tk}/bin"
'' else "")
diff --git a/pkgs/applications/version-management/mercurial/default.nix
b/pkgs/applications/version-management/mercurial/default.nix
index 198d143..054dd0c 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
EOF
# setting HG so that hgk can be run itself as well (not only hg view)
- WRAP_TK=" --set TK_LIBRARY \"${tk}/lib/tk8.4\"
+ WRAP_TK=" --set TK_LIBRARY \"${tk}/lib/${tk.libPrefix}\"
--set HG \"$out/bin/hg\"
--prefix PATH : \"${tk}/bin\" "
''
diff --git a/pkgs/development/libraries/tk/default.nix
b/pkgs/development/libraries/tk/default.nix
index bf6da7b..290580e 100644
--- a/pkgs/development/libraries/tk/default.nix
+++ b/pkgs/development/libraries/tk/default.nix
@@ -19,4 +19,8 @@ stdenv.mkDerivation {
buildInputs = [tcl x11];
inherit tcl;
+
+ passthru = {
+ libPrefix = "tk8.5";
+ };
}
--
tg: (5f7765d..) t/tk-libprefix (depends on: t/make-wrapper)
From: David Guibert <[email protected]>
Subject: [PATCH] change wrapProgram to work for git-gui
On 26/05/2010 19:46, Marc Weber wrote:
> Which will not work for all cases because some apss might be using
> something like this: Calling apps relative to current bin directory:
>
> exec $(dirname $0)/other-app
>
> So you may fix git-gui but you may break others.
> So should an option be created eg:
>
> wrap --keep-name # use .orig/name
> wrap --keep-path # use .name-wrapped
Signed-off-by: David Guibert <[email protected]>
---
.../git-and-tools/git/default.nix | 5 +++--
pkgs/build-support/make-wrapper/make-wrapper.sh | 9 +++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix
b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 9f7149d..cbc498e 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -79,9 +79,10 @@ stdenv.mkDerivation rec {
+ (if guiSupport then ''
# Wrap Tcl/Tk programs
- for prog in bin/gitk libexec/git-core/git-gui
+ for prog in bin/gitk libexec/git-core/git-gui
libexec/git-core/git-citool
+
do
- wrapProgram "$out/$prog" \
+ wrapProgramKeepName "$out/$prog" \
--set TK_LIBRARY "${tk}/lib/tk8.4" \
--prefix PATH : "${tk}/bin"
done
diff --git a/pkgs/build-support/make-wrapper/make-wrapper.sh
b/pkgs/build-support/make-wrapper/make-wrapper.sh
index 08146f3..a51c5b3 100644
--- a/pkgs/build-support/make-wrapper/make-wrapper.sh
+++ b/pkgs/build-support/make-wrapper/make-wrapper.sh
@@ -100,3 +100,12 @@ wrapProgram() {
mv $prog $hidden
makeWrapper $hidden $prog "$@"
}
+
+# Syntax: wrapProgramKeepName <PROGRAM> <MAKE-WRAPPER FLAGS...>
+wrapProgramKeepName() {
+ local prog="$1"
+ local hidden="$(dirname "$prog")/.wrapped/$(basename "$prog")"
+ mkdir "$(dirname "$hidden")" || true
+ mv $prog $hidden
+ makeWrapper $hidden $prog "$@"
+}
--
tg: (b5e62a4..) t/make-wrapper (depends on: pu)
_______________________________________________
nix-dev mailing list
[email protected]
https://mail.cs.uu.nl/mailman/listinfo/nix-dev