Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
705284d
ci: fail nix package builds that exceed glibc 2.31 floor
brainrake Sep 8, 2026
e77bbbd
ci: report offending file path in glibc floor check
brainrake Sep 8, 2026
d4127ea
style: shfmt check-glibc-floor.sh
brainrake Sep 8, 2026
1a8820e
ci: move glibc floor check into nix flake check
brainrake Sep 13, 2026
19a5573
ci: rewrite glibc-floor check logic in nushell
brainrake Sep 13, 2026
06ebba7
ci: list every offending file in glibc-floor check
brainrake Sep 13, 2026
e657889
ci: idiomatic nushell refactor for glibc-floor check
brainrake Sep 13, 2026
c5d724d
ci: scan both legacyPackages and packages in glibc-floor check
brainrake Sep 13, 2026
897948d
ci: filter to real ELF files before running objdump
brainrake Sep 13, 2026
7f22b52
ci: fold file-type check into is-elf, add a return type
brainrake Sep 13, 2026
9ba8779
ci: simplify is-elf to a single short-circuit expression
brainrake Sep 13, 2026
2c45b74
ci: make is-elf consume \$in for point-free where usage
brainrake Sep 13, 2026
2e2af84
ci: drop if/else + compact for a single filter
brainrake Sep 13, 2026
696473b
ci: rewrite glibc floor check as glibc-version-check, idiomatic nushell
brainrake Sep 14, 2026
3da01aa
Merge branch 'develop' into claude/glic-reporting-workflow-60e746
brainrake Sep 14, 2026
5a17d85
Merge branch 'develop' into claude/glic-reporting-workflow-60e746
brainrake Sep 14, 2026
e2dfd61
Merge branch 'develop' into claude/glic-reporting-workflow-60e746
brainrake Sep 17, 2026
8f85071
ci: drop makeWrapper for glibc-version-check's objdump dependency
brainrake Sep 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion nix/checks.nix
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,7 @@
# running server as pg_regress (--use-existing). These specs target
# core/heap + contrib concurrency behaviour. Skipped on:
# - CLI variants: portable build runs only a test subset.
# - orioledb ships its own isolation suite for its storage-engine
# - orioledb ships its own isolation suite for its storage-engine
# concurrency semantics.
#shellcheck disable=SC2193
if ${lib.boolToString isCliVariant}; then
Expand Down Expand Up @@ -954,6 +954,21 @@
postgresql_17_src
;
psql_orioledb-17_exts_orioledb_debug = self'.legacyPackages.psql_orioledb-17.exts.orioledb.debug;
glibc-version-check =
let
checkScript = pkgs.writers.writeNuBin "check-glibc-version" (
builtins.readFile ./tools/check-glibc-version.nu
);
in
pkgs.runCommand "glibc-version-check"
{
nativeBuildInputs = [ pkgs.binutils ];
paths = lib.collect lib.isDerivation (self'.legacyPackages // self'.packages);
}
''
${lib.getExe checkScript} 2.31 $paths
touch $out
'';
};
};
}
38 changes: 38 additions & 0 deletions nix/tools/check-glibc-version.nu
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env nu

def parse-version [] {
split row "." | each { into int }
}

def is-elf []: path -> bool {
(open --raw $in | bytes at 0..<4) == ("\u{7f}ELF" | into binary)
}

def max-glibc-version [path: path] {
^objdump -T $path | complete | get stdout
| parse -r 'GLIBC_(?<ver>[0-9.]+)' | get ver
| each { parse-version }
| sort
| last
}

# Fails if any file under the given paths requires a newer glibc than max_version.
def main [max_version: string, ...paths: path] {
let offenders = (
$paths
| each { glob $"($in)/**/*" } | flatten
| where { ($in | path type) == file }
| where { is-elf }
| par-each { |f| { file: $f, version: (max-glibc-version $f) } }
| compact version
| where version > ($max_version | parse-version)
)

if ($offenders | is-empty) {
print $"glibc version OK \(<= ($max_version)\)"
exit 0
}

print $offenders
exit 1
}
Loading