sus-compiler: 0.2.1 -> 0.3.0-unstable-2025-08-28 (#439165)

This commit is contained in:
Peder Bergebakken Sundt
2025-09-03 10:39:45 +02:00
committed by GitHub
3 changed files with 667 additions and 266 deletions
+609 -262
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,24 @@
diff --git i/build.rs w/build.rs
index 2174a43..cf93c2f 100644
--- i/build.rs
+++ w/build.rs
@@ -14,17 +14,8 @@ fn main() {
// Print the path to make it available during the build
println!("cargo:rustc-env=SUS_HOME={}", home_dir.to_str().unwrap());
- // note: add error checking yourself.
- let output = std::process::Command::new("git")
- .args(["rev-parse", "HEAD"])
- .output()
- .unwrap();
- let git_hash = String::from_utf8(output.stdout).unwrap();
- println!("cargo:rustc-env=GIT_HASH={}", git_hash);
- println!(
- "cargo:rustc-env=BUILD_DATE={}",
- chrono::Local::now().to_rfc3339_opts(chrono::SecondsFormat::Secs, false)
- );
+ println!("cargo:rustc-env=GIT_HASH=@GIT_HASH@");
+ println!("cargo:rustc-env=BUILD_DATE=@GIT_DATE@");
}
fn get_sus_dir() -> PathBuf {
+34 -4
View File
@@ -1,5 +1,6 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
@@ -8,14 +9,33 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "sus-compiler";
version = "0.2.1";
version = "0.3.0-unstable-2025-08-28";
src = fetchFromGitHub {
owner = "pc2";
repo = "sus-compiler";
tag = "v${finalAttrs.version}";
hash = "sha256-dQef5TiOV33lnNl7XKl7TlCY0E2sEclehWOmy2uvISY=";
rev = "bc46d911a71d0248a88586c10057206ffadc82ca";
hash = "sha256-Wnj303B4G09qGOecZfFsicjNcfRkISfo9JDYJeFubVM=";
fetchSubmodules = true;
leaveDotGit = true;
# Manual patch phase with replacement of Git details just before they're deleted.
postFetch = ''
cp ${./build.rs.patch} build.rs.patch
PATCH="$(realpath build.rs.patch)"
cd "$out"
GIT_HASH="$(git rev-parse HEAD)"
GIT_DATE="$(git log --pretty=format:'%ad' --date=iso-strict HEAD -1)"
substituteInPlace "$PATCH" \
--replace-fail "@GIT_HASH@" "$GIT_HASH" \
--replace-fail "@GIT_DATE@" "$GIT_DATE"
patch -p1 < "$PATCH"
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
# no lockfile upstream
@@ -29,9 +49,19 @@ rustPlatform.buildRustPackage (finalAttrs: {
ln -s ${./Cargo.lock} Cargo.lock
'';
doInstallCheck = true;
# Do the install version check only on stable versions of this compiler, when the build platform
# is able to execute the binaries. Unstable versions report a "-devel" string instead of agreeing
# with the nixpkgs version scheme.
doInstallCheck =
let
isStable = !lib.elem "unstable" (lib.versions.splitVersion finalAttrs.version);
canExecute = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
in
isStable && canExecute;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/sus_compiler";
versionCheckProgramArg = "--version";
updateScript = nix-update-script { extraArgs = [ "--generate-lockfile" ]; };