From a289dc03ad947d51867b07f226a12c1612f794fa Mon Sep 17 00:00:00 2001 From: Tim Zook Date: Fri, 5 Apr 2019 10:40:37 -0500 Subject: [PATCH 1/3] maintainers: add zookatron --- maintainers/maintainer-list.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 87892f72121c..7dd8eb0e43fc 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5366,6 +5366,11 @@ github = "zohl"; name = "Al Zohali"; }; + zookatron = { + email = "tim@zookatron.com"; + github = "zookatron"; + name = "Tim Zook"; + }; zoomulator = { email = "zoomulator@gmail.com"; github = "zoomulator"; From b59b31e36c9b5869867f9db1547f640d80128067 Mon Sep 17 00:00:00 2001 From: Tim Zook Date: Thu, 4 Apr 2019 20:58:02 -0500 Subject: [PATCH 2/3] sublime-merge: init at 1107 --- .../sublime-merge/common.nix | 105 ++++++++++++++++++ .../sublime-merge/default.nix | 16 +++ pkgs/top-level/all-packages.nix | 4 + 3 files changed, 125 insertions(+) create mode 100644 pkgs/applications/version-management/sublime-merge/common.nix create mode 100644 pkgs/applications/version-management/sublime-merge/default.nix diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix new file mode 100644 index 000000000000..55a76eccd22c --- /dev/null +++ b/pkgs/applications/version-management/sublime-merge/common.nix @@ -0,0 +1,105 @@ +{ buildVersion, sha256, dev ? false }: + +{ fetchurl, stdenv, xorg, glib, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook +, pkexecPath ? "/run/wrappers/bin/pkexec", gksuSupport ? false, gksu +, writeScript, common-updater-scripts, curl, gnugrep +}: + +assert gksuSupport -> gksu != null; + +let + libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ]; + redirects = [ "/usr/bin/pkexec=${pkexecPath}" ] + ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo"; +in let + # package with just the binaries + sublime_merge = stdenv.mkDerivation { + pname = "sublime-merge-bin"; + version = buildVersion; + + src = fetchurl { + name = "sublime-merge-${buildVersion}.tar.xz"; + url = "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_x64.tar.xz"; + inherit sha256; + }; + + dontStrip = true; + dontPatchELF = true; + buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + + buildPhase = '' + runHook preBuild + + for binary in sublime_merge crash_reporter git-credential-sublime ssh-askpass-sublime; do + patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib64 \ + $binary + done + + # Rewrite pkexec|gksudo argument. Note that we can't delete bytes in binary. + sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' sublime_merge + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r * $out/ + + runHook postInstall + ''; + + dontWrapGApps = true; # non-standard location, need to wrap the executables manually + + postFixup = '' + wrapProgram $out/sublime_merge \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \ + "''${gappsWrapperArgs[@]}" + ''; + }; +in stdenv.mkDerivation { + pname = "sublime-merge"; + version = buildVersion; + + phases = [ "installPhase" ]; + + inherit sublime_merge; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p "$out/bin" + makeWrapper "$sublime_merge/sublime_merge" "$out/bin/sublime_merge" + ln -s "$out/bin/sublime_merge" "$out/bin/smerge" + mkdir -p "$out/share/applications" + substitute "$sublime_merge/sublime_merge.desktop" "$out/share/applications/sublime_merge.desktop" --replace "/opt/sublime_merge/sublime_merge" "$out/bin/sublime_merge" + for directory in $sublime_merge/Icon/*; do + size=$(basename $directory) + mkdir -p "$out/share/icons/hicolor/$size/apps" + ln -s "$sublime_merge/Icon/$size/sublime-merge.png" "$out/share/icons/hicolor/$size/apps" + done + ''; + + passthru.updateScript = writeScript "sublime-merge-update-script" '' + #!${stdenv.shell} + set -o errexit + PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]} + + latestVersion=$(curl -s https://www.sublimemerge.com/${if dev then "dev" else "download"} | grep -Po '(?<=

Version: Build )([0-9]+)') + + update-source-version sublime-merge${stdenv.lib.optionalString dev "-dev"}.sublime_merge $latestVersion --file=pkgs/applications/version-management/sublime-merge/default.nix --version-key=buildVersion --system=x86_64-linux + ''; + + meta = with stdenv.lib; { + description = "Git client from the makers of Sublime Text"; + homepage = https://www.sublimemerge.com; + maintainers = with maintainers; [ zookatron ]; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix new file mode 100644 index 000000000000..da973b0a7ee1 --- /dev/null +++ b/pkgs/applications/version-management/sublime-merge/default.nix @@ -0,0 +1,16 @@ +{ callPackage }: + +let + common = opts: callPackage (import ./common.nix opts); +in { + sublime-merge = common { + buildVersion = "1107"; + sha256 = "70edbb16529d638ea41a694dbc5b1408c76fcc3a7d663ef0e48b4e89e1f19c71"; + } {}; + + sublime-merge-dev = common { + buildVersion = "1111"; + sha256 = "d287b77b36febe52623db4546bef978dceb0654257b9a70c798d9cd394305c0d"; + dev = true; + } {}; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cea186d5f776..b9c7b9d50a1c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19761,6 +19761,10 @@ in sublime3-dev = sublime3Packages.sublime3-dev; + inherit (callPackage ../applications/version-management/sublime-merge {}) + sublime-merge + sublime-merge-dev; + inherit (callPackages ../applications/version-management/subversion { sasl = cyrus_sasl; }) subversion18 subversion19 subversion_1_10 subversion_1_11; From 148119b9a6636a4fdfbdc1cc0dcbf268d523008d Mon Sep 17 00:00:00 2001 From: Tim Zook Date: Wed, 10 Apr 2019 12:19:28 -0500 Subject: [PATCH 3/3] sublime-{merge,text}: make common.nix files have a similar structure In the future it's desired to unify Sublime packages expressions. So them having a shared structure will make this more achievable. --- .../applications/editors/sublime/3/common.nix | 110 +++++++++--------- .../sublime-merge/common.nix | 72 +++++++----- 2 files changed, 102 insertions(+), 80 deletions(-) diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix index 8b94b87e0505..214e53262b5c 100644 --- a/pkgs/applications/editors/sublime/3/common.nix +++ b/pkgs/applications/editors/sublime/3/common.nix @@ -1,47 +1,55 @@ -{buildVersion, x32sha256, x64sha256, dev ? false}: +{ buildVersion, x32sha256, x64sha256, dev ? false }: -{ fetchurl, stdenv, glib, glibcLocales, xorg, cairo, gtk2, gtk3, pango, makeWrapper, wrapGAppsHook, openssl, bzip2, runtimeShell, - pkexecPath ? "/run/wrappers/bin/pkexec", libredirect, - gksuSupport ? false, gksu, unzip, zip, bash, - writeScript, common-updater-scripts, curl, gnugrep}: +{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk2, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook +, pkexecPath ? "/run/wrappers/bin/pkexec", gksuSupport ? false, gksu +, writeScript, common-updater-scripts, curl, gnugrep +, openssl, bzip2, bash, unzip, zip +}: assert gksuSupport -> gksu != null; let - legacy = stdenv.lib.versionOlder buildVersion "3181"; - libPath = stdenv.lib.makeLibraryPath [ glib xorg.libX11 (if legacy then gtk2 else gtk3) cairo pango ]; - redirects = [ "/usr/bin/pkexec=${pkexecPath}" ] - ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo"; -in let + pname = "sublimetext3"; + packageAttribute = "sublime3${stdenv.lib.optionalString dev "-dev"}"; + binaries = [ "sublime_text" "plugin_host" "crash_reporter" ]; + 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"; archSha256 = if stdenv.hostPlatform.system == "i686-linux" then x32sha256 else x64sha256; - arch = if stdenv.hostPlatform.system == "i686-linux" then "x32" else "x64"; - # package with just the binaries - sublime = stdenv.mkDerivation { - name = "sublimetext3-bin-${buildVersion}"; - src = - fetchurl { - name = "sublimetext-${buildVersion}.tar.bz2"; - url = "https://download.sublimetext.com/sublime_text_3_build_${buildVersion}_${arch}.tar.bz2"; - sha256 = archSha256; - }; + 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"; +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 (!legacy) [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH - nativeBuildInputs = [ makeWrapper zip unzip ] ++ stdenv.lib.optional (!legacy) wrapGAppsHook; + buildInputs = stdenv.lib.optionals (!usesGtk2) [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH + nativeBuildInputs = [ zip unzip makeWrapper ] ++ stdenv.lib.optional (!usesGtk2) wrapGAppsHook; - # make exec.py in Default.sublime-package use own bash with - # an LD_PRELOAD instead of "/bin/bash" + # make exec.py in Default.sublime-package use own bash with an LD_PRELOAD instead of "/bin/bash" patchPhase = '' runHook prePatch @@ -61,15 +69,15 @@ in let buildPhase = '' runHook preBuild - for i in sublime_text plugin_host crash_reporter; do + for binary in ${ builtins.concatStringsSep " " binaries }; do patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \ - $i + $binary done # Rewrite pkexec|gksudo argument. Note that we can't delete bytes in binary. - sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' sublime_text + sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary} runHook postBuild ''; @@ -77,11 +85,8 @@ in let installPhase = '' runHook preInstall - # Correct sublime_text.desktop to exec `sublime' instead of /opt/sublime_text - sed -e "s,/opt/sublime_text/sublime_text,$out/sublime_text," -i sublime_text.desktop - mkdir -p $out - cp -prvd * $out/ + cp -r * $out/ # We can't just call /usr/bin/env bash because a relocation error occurs # when trying to run a build from within Sublime Text @@ -96,52 +101,51 @@ in let wrapProgram $out/sublime_bash \ --set LD_PRELOAD "${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1" - wrapProgram $out/sublime_text \ + wrapProgram $out/${primaryBinary} \ --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 (!legacy) ''"''${gappsWrapperArgs[@]}"''} + ${stdenv.lib.optionalString (!usesGtk2) ''"''${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 ''; }; in stdenv.mkDerivation (rec { - name = "sublimetext3-${buildVersion}"; + inherit pname; + version = buildVersion; phases = [ "installPhase" ]; - inherit sublime; + ${primaryBinary} = binaryPackage; + + nativeBuildInputs = [ makeWrapper ]; installPhase = '' - mkdir -p $out/bin - - cat > $out/bin/subl <<-EOF - #!${runtimeShell} - exec $sublime/sublime_text "\$@" - EOF - chmod +x $out/bin/subl - - ln $out/bin/subl $out/bin/sublime - ln $out/bin/subl $out/bin/sublime3 - mkdir -p $out/share/applications - ln -s $sublime/sublime_text.desktop $out/share/applications/sublime_text.desktop - ln -s $sublime/Icon/256x256/ $out/share/icons + mkdir -p "$out/bin" + makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + '' + mkdir -p "$out/share/applications" + substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + for directory in ''$${primaryBinary}/Icon/*; do + size=$(basename $directory) + mkdir -p "$out/share/icons/hicolor/$size/apps" + ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps + done ''; - passthru.updateScript = writeScript "sublime3-update-script" '' + passthru.updateScript = writeScript "${pname}-update-script" '' #!${stdenv.shell} set -o errexit PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]} - latestVersion=$(curl https://www.sublimetext.com/3${stdenv.lib.optionalString dev "dev"} | grep -Po '(?<=

Version: Build )([0-9]+)') + latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=

Version: Build )([0-9]+)') for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do - package=sublime3${stdenv.lib.optionalString dev "-dev"} # The script will not perform an update when the version attribute is up to date from previous platform run # We need to clear it before each run - update-source-version ''${package}.sublime 0 0000000000000000000000000000000000000000000000000000000000000000 --file=pkgs/applications/editors/sublime/3/packages.nix --version-key=buildVersion --system=$platform - update-source-version ''${package}.sublime $latestVersion --file=pkgs/applications/editors/sublime/3/packages.nix --version-key=buildVersion --system=$platform + update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform + update-source-version ${packageAttribute}.${primaryBinary} $latestVersion --file=${versionFile} --version-key=buildVersion --system=$platform done ''; diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix index 55a76eccd22c..a232b78aacfd 100644 --- a/pkgs/applications/version-management/sublime-merge/common.nix +++ b/pkgs/applications/version-management/sublime-merge/common.nix @@ -1,6 +1,6 @@ { buildVersion, sha256, dev ? false }: -{ fetchurl, stdenv, xorg, glib, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook +{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk2, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook , pkexecPath ? "/run/wrappers/bin/pkexec", gksuSupport ? false, gksu , writeScript, common-updater-scripts, curl, gnugrep }: @@ -8,38 +8,50 @@ assert gksuSupport -> gksu != null; let - libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ]; + pname = "sublime-merge"; + packageAttribute = "sublime-merge${stdenv.lib.optionalString dev "-dev"}"; + binaries = [ "sublime_merge" "crash_reporter" "git-credential-sublime" "ssh-askpass-sublime" ]; + 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; + 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"; in let - # package with just the binaries - sublime_merge = stdenv.mkDerivation { - pname = "sublime-merge-bin"; + binaryPackage = stdenv.mkDerivation { + pname = "${pname}-bin"; version = buildVersion; src = fetchurl { - name = "sublime-merge-${buildVersion}.tar.xz"; - url = "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_x64.tar.xz"; - inherit sha256; + name = "${pname}-bin-${buildVersion}.${downloadArchiveType}"; + url = downloadUrl; + sha256 = archSha256; }; dontStrip = true; dontPatchELF = true; - buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH - nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + buildInputs = stdenv.lib.optionals (!usesGtk2) [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH + nativeBuildInputs = [ makeWrapper ] ++ stdenv.lib.optional (!usesGtk2) wrapGAppsHook; buildPhase = '' runHook preBuild - for binary in sublime_merge crash_reporter git-credential-sublime ssh-askpass-sublime; do + for binary in ${ builtins.concatStringsSep " " binaries }; do patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib64 \ + --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \ $binary done # Rewrite pkexec|gksudo argument. Note that we can't delete bytes in binary. - sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' sublime_merge + sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary} runHook postBuild ''; @@ -56,43 +68,49 @@ in let dontWrapGApps = true; # non-standard location, need to wrap the executables manually postFixup = '' - wrapProgram $out/sublime_merge \ + wrapProgram $out/${primaryBinary} \ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \ - "''${gappsWrapperArgs[@]}" + --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \ + ${stdenv.lib.optionalString (!usesGtk2) ''"''${gappsWrapperArgs[@]}"''} ''; }; -in stdenv.mkDerivation { - pname = "sublime-merge"; +in stdenv.mkDerivation (rec { + inherit pname; version = buildVersion; phases = [ "installPhase" ]; - inherit sublime_merge; + ${primaryBinary} = binaryPackage; nativeBuildInputs = [ makeWrapper ]; installPhase = '' mkdir -p "$out/bin" - makeWrapper "$sublime_merge/sublime_merge" "$out/bin/sublime_merge" - ln -s "$out/bin/sublime_merge" "$out/bin/smerge" + makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + '' mkdir -p "$out/share/applications" - substitute "$sublime_merge/sublime_merge.desktop" "$out/share/applications/sublime_merge.desktop" --replace "/opt/sublime_merge/sublime_merge" "$out/bin/sublime_merge" - for directory in $sublime_merge/Icon/*; do + substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + for directory in ''$${primaryBinary}/Icon/*; do size=$(basename $directory) mkdir -p "$out/share/icons/hicolor/$size/apps" - ln -s "$sublime_merge/Icon/$size/sublime-merge.png" "$out/share/icons/hicolor/$size/apps" + ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps done ''; - passthru.updateScript = writeScript "sublime-merge-update-script" '' + passthru.updateScript = writeScript "${pname}-update-script" '' #!${stdenv.shell} set -o errexit PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]} - latestVersion=$(curl -s https://www.sublimemerge.com/${if dev then "dev" else "download"} | grep -Po '(?<=

Version: Build )([0-9]+)') + latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=

Version: Build )([0-9]+)') - update-source-version sublime-merge${stdenv.lib.optionalString dev "-dev"}.sublime_merge $latestVersion --file=pkgs/applications/version-management/sublime-merge/default.nix --version-key=buildVersion --system=x86_64-linux + for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do + # The script will not perform an update when the version attribute is up to date from previous platform run + # We need to clear it before each run + update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform + update-source-version ${packageAttribute}.${primaryBinary} $latestVersion --file=${versionFile} --version-key=buildVersion --system=$platform + done ''; meta = with stdenv.lib; { @@ -102,4 +120,4 @@ in stdenv.mkDerivation { license = licenses.unfree; platforms = [ "x86_64-linux" ]; }; -} +})