diff options
author | Wout Mertens <Wout.Mertens@gmail.com> | 2014-06-01 17:59:00 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2014-06-17 21:15:37 +0200 |
commit | d619f0ef6d8495b52472c35e571f7b28ed728659 (patch) | |
tree | b67b20a8b1654ef4d3776c406aaf94c5f0c0ea41 /pkgs/applications | |
parent | f8e108c86522cf31e06a4e31e240dc895605e4fb (diff) | |
download | nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.tar nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.tar.gz nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.tar.bz2 nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.tar.lz nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.tar.xz nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.tar.zst nixlib-d619f0ef6d8495b52472c35e571f7b28ed728659.zip |
sublime3: fix plugin_host (close #2804)
Also move the binaries in their own package, so it doesn't pollute the profile.
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/editors/sublime3/default.nix | 81 |
1 files changed, 52 insertions, 29 deletions
diff --git a/pkgs/applications/editors/sublime3/default.nix b/pkgs/applications/editors/sublime3/default.nix index 3d9dec0d8f8a..088d76f48687 100644 --- a/pkgs/applications/editors/sublime3/default.nix +++ b/pkgs/applications/editors/sublime3/default.nix @@ -1,40 +1,63 @@ -{ fetchurl, stdenv, glib, xlibs, cairo, gtk, pango}: +{ fetchurl, stdenv, glib, xlibs, cairo, gtk, pango, makeWrapper}: + +assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; + let + build = "3059"; libPath = stdenv.lib.makeLibraryPath [glib xlibs.libX11 gtk cairo pango]; -in -assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; +in let + # package with just the binaries + sublime = stdenv.mkDerivation { + name = "sublimetext3-${build}-bin"; + + src = + if stdenv.system == "i686-linux" then + fetchurl { + name = "sublimetext-3.0.59.tar.bz2"; + url = "http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_${build}_x32.tar.bz2"; + sha256 = "5ee7b42b5db057108e97b86fd408124fc3f7b56662b2851f59d91f8f0c288088"; + } + else + fetchurl { + name = "sublimetext-3.0.59.tar.bz2"; + url = "http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_${build}_x64.tar.bz2"; + sha256 = "da3039687664d33a734cea0151b2291ece9c7f35e5b73df5b2b5eac28a20b972"; + }; -stdenv.mkDerivation rec { - name = "sublimetext3-3.0.59"; - src = - if stdenv.system == "i686-linux" then - fetchurl { - name = "sublimetext-3.0.59.tar.bz2"; - url = http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_3059_x32.tar.bz2; - sha256 = "5ee7b42b5db057108e97b86fd408124fc3f7b56662b2851f59d91f8f0c288088"; - } - else - fetchurl { - name = "sublimetext-3.0.59.tar.bz2"; - url = http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_3059_x64.tar.bz2; - sha256 = "da3039687664d33a734cea0151b2291ece9c7f35e5b73df5b2b5eac28a20b972"; - }; - buildCommand = '' - tar xvf ${src} + dontStrip = true; + dontPatchELF = true; + buildInputs = [ makeWrapper ]; + + buildPhase = '' + for i in sublime_text plugin_host crash_reporter; do + patchelf \ + --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ + --set-rpath ${libPath}:${stdenv.gcc.gcc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \ + $i + done + ''; + + installPhase = '' + mkdir -p $out + cp -prvd * $out/ + # Without this, plugin_host crashes, even though it has the rpath + wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.gcc.gcc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1 + ''; + }; +in stdenv.mkDerivation { + name = "sublimetext3-${build}"; + + phases = [ "installPhase" ]; + installPhase = '' mkdir -p $out/bin - mv sublime_text_3 $out/sublime - ln -s $out/sublime/sublime_text $out/bin/sublime - ln -s $out/sublime/sublime_text $out/bin/sublime3 - - echo ${libPath} - patchelf \ - --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ - --set-rpath ${libPath}:${stdenv.gcc.gcc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \ - $out/sublime/sublime_text + ln -s ${sublime}/sublime_text $out/bin/sublime + ln -s ${sublime}/sublime_text $out/bin/sublime3 ''; meta = { description = "Sophisticated text editor for code, markup and prose"; + maintainers = stdenv.lib.maintainers.wmertens; license = "unfree"; }; } + |