diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2019-06-19 00:52:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-19 00:52:04 +0200 |
commit | 897d9050a31f798a86d84f4f3881903604e8cb3a (patch) | |
tree | 093babd206894ced7a42a8844f3e72c26c7a3a66 /pkgs | |
parent | ac070b89d43d5684ecbf8859aa8da57d08a9c4d8 (diff) | |
parent | b75a43f9e0bc525c9dbb601cb935f97c7d9f04fd (diff) | |
download | nixpkgs-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.nix | 26 | ||||
-rw-r--r-- | pkgs/applications/version-management/sublime-merge/common.nix | 24 | ||||
-rw-r--r-- | pkgs/build-support/libredirect/libredirect.c | 13 |
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"); |