summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-06-19 00:52:04 +0200
committerGitHub <noreply@github.com>2019-06-19 00:52:04 +0200
commit897d9050a31f798a86d84f4f3881903604e8cb3a (patch)
tree093babd206894ced7a42a8844f3e72c26c7a3a66 /pkgs
parentac070b89d43d5684ecbf8859aa8da57d08a9c4d8 (diff)
parentb75a43f9e0bc525c9dbb601cb935f97c7d9f04fd (diff)
downloadnixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.tar
nixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.tar.gz
nixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.tar.bz2
nixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.tar.lz
nixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.tar.xz
nixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.tar.zst
nixpkgs-897d9050a31f798a86d84f4f3881903604e8cb3a.zip
Merge pull request #63447 from jtojnar/sublime-cleanup
sublime3: clean up
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/sublime/3/common.nix26
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix24
-rw-r--r--pkgs/build-support/libredirect/libredirect.c13
3 files changed, 32 insertions, 31 deletions
diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix
index 214e53262b5..8e52237d949 100644
--- a/pkgs/applications/editors/sublime/3/common.nix
+++ b/pkgs/applications/editors/sublime/3/common.nix
@@ -1,13 +1,11 @@
 { buildVersion, x32sha256, x64sha256, dev ? false }:
 
-{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk2, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
-, pkexecPath ? "/run/wrappers/bin/pkexec", gksuSupport ? false, gksu
+{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
+, pkexecPath ? "/run/wrappers/bin/pkexec"
 , writeScript, common-updater-scripts, curl, gnugrep
 , openssl, bzip2, bash, unzip, zip
 }:
 
-assert gksuSupport -> gksu != null;
-
 let
   pname = "sublimetext3";
   packageAttribute = "sublime3${stdenv.lib.optionalString dev "-dev"}";
@@ -15,10 +13,8 @@ let
   primaryBinary = "sublime_text";
   primaryBinaryAliases = [ "subl" "sublime" "sublime3" ];
   downloadUrl = "https://download.sublimetext.com/sublime_text_3_build_${buildVersion}_${arch}.tar.bz2";
-  downloadArchiveType = "tar.bz2";
   versionUrl = "https://www.sublimetext.com/${if dev then "3dev" else "3"}";
-  versionFile = "pkgs/applications/editors/sublime/3/packages.nix";
-  usesGtk2 = stdenv.lib.versionOlder buildVersion "3181";
+  versionFile = builtins.toString ./packages.nix;
   archSha256 =
     if stdenv.hostPlatform.system == "i686-linux" then
       x32sha256
@@ -30,24 +26,22 @@ let
     else
       "x64";
 
-  libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib (if usesGtk2 then gtk2 else gtk3) cairo pango ];
-  redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
-    ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
+  libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ];
+  redirects = [ "/usr/bin/pkexec=${pkexecPath}" ];
 in let
   binaryPackage = stdenv.mkDerivation {
     pname = "${pname}-bin";
     version = buildVersion;
 
     src = fetchurl {
-      name = "${pname}-bin-${buildVersion}.${downloadArchiveType}";
       url = downloadUrl;
       sha256 = archSha256;
     };
 
     dontStrip = true;
     dontPatchELF = true;
-    buildInputs = stdenv.lib.optionals (!usesGtk2) [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
-    nativeBuildInputs = [ zip unzip makeWrapper ] ++ stdenv.lib.optional (!usesGtk2) wrapGAppsHook;
+    buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
+    nativeBuildInputs = [ zip unzip makeWrapper wrapGAppsHook ];
 
     # make exec.py in Default.sublime-package use own bash with an LD_PRELOAD instead of "/bin/bash"
     patchPhase = ''
@@ -76,7 +70,7 @@ in let
           $binary
       done
 
-      # Rewrite pkexec|gksudo argument. Note that we can't delete bytes in binary.
+      # Rewrite pkexec argument. Note that we cannot delete bytes in binary.
       sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary}
 
       runHook postBuild
@@ -105,7 +99,7 @@ in let
         --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
         --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
         --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
-        ${stdenv.lib.optionalString (!usesGtk2) ''"''${gappsWrapperArgs[@]}"''}
+        "''${gappsWrapperArgs[@]}"
 
       # Without this, plugin_host crashes, even though it has the rpath
       wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1:${openssl.out}/lib/libssl.so:${bzip2.out}/lib/libbz2.so
@@ -152,7 +146,7 @@ in stdenv.mkDerivation (rec {
   meta = with stdenv.lib; {
     description = "Sophisticated text editor for code, markup and prose";
     homepage = https://www.sublimetext.com/;
-    maintainers = with maintainers; [ wmertens demin-dmitriy zimbatm ];
+    maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index a232b78aacf..f69fdbefe18 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -1,12 +1,10 @@
 { buildVersion, sha256, dev ? false }:
 
-{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk2, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
-, pkexecPath ? "/run/wrappers/bin/pkexec", gksuSupport ? false, gksu
+{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
+, pkexecPath ? "/run/wrappers/bin/pkexec"
 , writeScript, common-updater-scripts, curl, gnugrep
 }:
 
-assert gksuSupport -> gksu != null;
-
 let
   pname = "sublime-merge";
   packageAttribute = "sublime-merge${stdenv.lib.optionalString dev "-dev"}";
@@ -14,31 +12,27 @@ let
   primaryBinary = "sublime_merge";
   primaryBinaryAliases = [ "smerge" ];
   downloadUrl = "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz";
-  downloadArchiveType = "tar.xz";
   versionUrl = "https://www.sublimemerge.com/${if dev then "dev" else "download"}";
-  versionFile = "pkgs/applications/version-management/sublime-merge/default.nix";
-  usesGtk2 = false;
+  versionFile = builtins.toString ./default.nix;
   archSha256 = sha256;
   arch = "x64";
 
-  libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib (if usesGtk2 then gtk2 else gtk3) cairo pango ];
-  redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
-    ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
+  libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ];
+  redirects = [ "/usr/bin/pkexec=${pkexecPath}" ];
 in let
   binaryPackage = stdenv.mkDerivation {
     pname = "${pname}-bin";
     version = buildVersion;
 
     src = fetchurl {
-      name = "${pname}-bin-${buildVersion}.${downloadArchiveType}";
       url = downloadUrl;
       sha256 = archSha256;
     };
 
     dontStrip = true;
     dontPatchELF = true;
-    buildInputs = stdenv.lib.optionals (!usesGtk2) [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
-    nativeBuildInputs = [ makeWrapper ] ++ stdenv.lib.optional (!usesGtk2) wrapGAppsHook;
+    buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
+    nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
 
     buildPhase = ''
       runHook preBuild
@@ -50,7 +44,7 @@ in let
           $binary
       done
 
-      # Rewrite pkexec|gksudo argument. Note that we can't delete bytes in binary.
+      # Rewrite pkexec argument. Note that we cannot delete bytes in binary.
       sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary}
 
       runHook postBuild
@@ -72,7 +66,7 @@ in let
         --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
         --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
         --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
-        ${stdenv.lib.optionalString (!usesGtk2) ''"''${gappsWrapperArgs[@]}"''}
+        "''${gappsWrapperArgs[@]}"
     '';
   };
 in stdenv.mkDerivation (rec {
diff --git a/pkgs/build-support/libredirect/libredirect.c b/pkgs/build-support/libredirect/libredirect.c
index 655399af58f..8e8da00b02a 100644
--- a/pkgs/build-support/libredirect/libredirect.c
+++ b/pkgs/build-support/libredirect/libredirect.c
@@ -160,6 +160,19 @@ int posix_spawn(pid_t * pid, const char * path,
     return posix_spawn_real(pid, rewrite(path, buf), file_actions, attrp, argv, envp);
 }
 
+int posix_spawnp(pid_t * pid, const char * file,
+    const posix_spawn_file_actions_t * file_actions,
+    const posix_spawnattr_t * attrp,
+    char * const argv[], char * const envp[])
+{
+    int (*posix_spawnp_real) (pid_t *, const char *,
+        const posix_spawn_file_actions_t *,
+        const posix_spawnattr_t *,
+        char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "posix_spawnp");
+    char buf[PATH_MAX];
+    return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp);
+}
+
 int execv(const char *path, char *const argv[])
 {
     int (*execv_real) (const char *path, char *const argv[]) = dlsym(RTLD_NEXT, "execv");