Merge pull request #328295 from getchoo/pkgs/turbo/2.0.7

turbo: 1.13.2 -> 2.0.11; modernize; adopt
This commit is contained in:
Atemu 2024-08-10 10:14:24 +02:00 committed by GitHub
commit 676fcbab0c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 150 additions and 13733 deletions

View File

@ -0,0 +1,12 @@
diff --git a/crates/turborepo-lib/src/lib.rs b/crates/turborepo-lib/src/lib.rs
index e8d41933da..26b8c7c92f 100644
--- a/crates/turborepo-lib/src/lib.rs
+++ b/crates/turborepo-lib/src/lib.rs
@@ -2,6 +2,7 @@
#![feature(box_patterns)]
#![feature(error_generic_member_access)]
#![feature(hash_extract_if)]
+#![feature(lazy_cell)]
#![feature(option_get_or_insert_default)]
#![feature(once_cell_try)]
#![feature(panic_info_message)]

View File

@ -0,0 +1,96 @@
{
stdenv,
lib,
fetchFromGitHub,
rustPlatform,
capnproto,
darwin,
extra-cmake-modules,
fontconfig,
llvmPackages,
nix-update-script,
openssl,
pkg-config,
protobuf,
rust-jemalloc-sys,
zlib,
}:
rustPlatform.buildRustPackage rec {
pname = "turbo-unwrapped";
version = "2.0.12";
src = fetchFromGitHub {
owner = "vercel";
repo = "turbo";
rev = "v${version}";
hash = "sha256-rh9BX8M3Kgu07Pz4G3AM6S9zeK3Bb6CzOpcYo7rQgIw=";
};
patches = [
# upstream uses nightly where lazy_cell is stable
./enable-lazy_cell.patch
];
cargoHash = "sha256-oZHSoPrPCUwXSrxEASm4LuYO+XHyNDRRl38Q7U7F/lk=";
nativeBuildInputs =
[
capnproto
extra-cmake-modules
pkg-config
protobuf
]
# https://github.com/vercel/turbo/blob/ea740706e0592b3906ab34c7cfa1768daafc2a84/CONTRIBUTING.md#linux-dependencies
++ lib.optional stdenv.isLinux llvmPackages.bintools;
buildInputs =
[
fontconfig
openssl
rust-jemalloc-sys
zlib
]
++ lib.optionals stdenv.isDarwin (
with darwin.apple_sdk_11_0.frameworks;
[
CoreFoundation
CoreServices
IOKit
]
);
cargoBuildFlags = [
"--package"
"turbo"
];
# Browser tests time out with chromium and google-chrome
doCheck = false;
env = {
# nightly features are used
RUSTC_BOOTSTRAP = 1;
};
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"'v(\d+\.\d+\.\d+)'"
];
};
};
meta = {
description = "High-performance build system for JavaScript and TypeScript codebases";
homepage = "https://turbo.build/";
changelog = "https://github.com/vercel/turbo/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
dlip
getchoo
];
mainProgram = "turbo";
};
}

View File

@ -0,0 +1,42 @@
{
lib,
symlinkJoin,
makeBinaryWrapper,
testers,
turbo,
turbo-unwrapped,
# https://turbo.build/repo/docs/telemetry
disableTelemetry ? true,
disableUpdateNotifier ? true,
}:
symlinkJoin rec {
pname = "turbo";
inherit (turbo-unwrapped) version;
name = "${pname}-${version}";
nativeBuildInputs = [ makeBinaryWrapper ];
paths = [ turbo-unwrapped ];
postBuild = ''
wrapProgram $out/bin/turbo \
${lib.optionalString disableTelemetry "--set TURBO_TELEMETRY_DISABLED 1"} \
${lib.optionalString disableUpdateNotifier "--set TURBO_NO_UPDATE_NOTIFIER 1"}
'';
passthru = {
tests.version = testers.testVersion { package = turbo; };
};
meta = {
inherit (turbo-unwrapped.meta)
description
homepage
changelog
license
mainProgram
maintainers
;
};
}

File diff suppressed because it is too large Load Diff

View File

@ -1,73 +0,0 @@
{ stdenv
, lib
, fetchFromGitHub
, protobuf
, rustPlatform
, pkg-config
, openssl
, extra-cmake-modules
, fontconfig
, rust-jemalloc-sys
, testers
, turbo
, nix-update-script
, IOKit
, CoreServices
, CoreFoundation
, capnproto
}:
rustPlatform.buildRustPackage rec{
pname = "turbo-unwrapped";
version = "1.13.2";
src = fetchFromGitHub {
owner = "vercel";
repo = "turbo";
rev = "v${version}";
hash = "sha256-q1BxBAjfHyGDaH/IywPw9qnZJjzeU4tu2CyUWbnd6y8=";
};
cargoBuildFlags = [
"--package"
"turbo"
];
RELEASE_TURBO_CLI = "true";
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes."tui-term-0.1.8" = "sha256-MNeVnF141uNWbjqXEbHwXnMTkCnvIteb5v40HpEK6D4=";
};
RUSTC_BOOTSTRAP = 1;
nativeBuildInputs = [
pkg-config
extra-cmake-modules
protobuf
capnproto
];
buildInputs = [
openssl
fontconfig
rust-jemalloc-sys
] ++ lib.optionals stdenv.isDarwin [
IOKit
CoreServices
CoreFoundation
];
# Browser tests time out with chromium and google-chrome
doCheck = false;
passthru = {
updateScript = nix-update-script {
extraArgs = [ "--version-regex" "^\d+\.\d+\.\d+$" ];
};
tests.version = testers.testVersion { package = turbo; };
};
meta = with lib; {
description = "High-performance build system for JavaScript and TypeScript codebases";
mainProgram = "turbo";
homepage = "https://turbo.build/";
maintainers = with maintainers; [ dlip ];
license = licenses.mpl20;
};
}

View File

@ -1,16 +0,0 @@
{ lib, symlinkJoin, makeWrapper, turbo-unwrapped
, disableTelemetry ? true, disableUpdateNotifier ? true }:
symlinkJoin {
pname = "turbo";
name = "turbo-${turbo-unwrapped.version}";
inherit (turbo-unwrapped) version meta;
nativeBuildInputs = [ makeWrapper ];
paths = [ turbo-unwrapped ];
postBuild = ''
rm $out/bin/turbo
makeWrapper ${turbo-unwrapped}/bin/turbo $out/bin/turbo \
${lib.optionalString disableTelemetry "--set TURBO_TELEMETRY_DISABLED 1"} \
${lib.optionalString disableUpdateNotifier "--add-flags --no-update-notifier"}
'';
}

View File

@ -13545,12 +13545,6 @@ with pkgs;
tuptime = callPackage ../tools/system/tuptime { };
turbo = callPackage ../tools/misc/turbo/wrapper.nix { };
turbo-unwrapped = callPackage ../tools/misc/turbo {
inherit (darwin.apple_sdk_11_0.frameworks) IOKit CoreServices CoreFoundation;
};
turses = callPackage ../applications/networking/instant-messengers/turses { };
tutanota-desktop = callPackage ../applications/networking/mailreaders/tutanota-desktop { };