Skip to content

Set SOURCE_DATE_EPOCH when building uv to prevent A64FX segfault - #308

Merged
bedroge merged 9 commits into
EESSI:mainfrom
Neves-P:neves-p/uv-maturin-hook
Sep 30, 2026
Merged

bedroge merged 9 commits into
EESSI:mainfrom
Neves-P:neves-p/uv-maturin-hook

Conversation

@Neves-P

@Neves-P Neves-P commented Sep 23, 2026

Copy link
Copy Markdown
Member

Add a pre-prepare hook to set SOURCE_DATE_EPOCH for uv builds to ensure a timestamp is available in A64FX builds. Without this, this fails trying to build maturin when building uv. Note: this first tries if setting the variable works, otherwise we should try to use a proper source date timestamp and not generate it on build, hence I'm first making this a draft.

Add a pre-prepare hook to set SOURCE_DATE_EPOCH for uv builds to ensure a timestamp is available in A64FX builds
@Neves-P Neves-P changed the title Implement pre-prepare hook for uv builds Set SOURCE_DATE_EPOCH when building uv to prevent A64FX segfault Sep 23, 2026
@Neves-P Neves-P added 2025.06-software.eessi.io 2025.06 version of software.eessi.io a64fx labels Sep 23, 2026
Comment thread eb_hooks.py Outdated
Neves-P and others added 4 commits September 25, 2026 10:52
Co-authored-by: Bob Dröge <b.e.droge@rug.nl>
Add pre-prepare hook to set SOURCE_DATE_EPOCH for uv builds.
Update pre_prepare_hook_uv_source_date_epoch to derive SOURCE_DATE_EPOCH from the source archive's timestamp, ensuring deterministic builds for uv.
@Neves-P

Neves-P commented Sep 28, 2026

Copy link
Copy Markdown
Member Author

The revised approached works: EESSI/software-layer#1668 (comment), so this is ready for review.

@Neves-P
Neves-P marked this pull request as ready for review September 28, 2026 15:13
@Neves-P
Neves-P requested a review from bedroge September 29, 2026 13:45
@Neves-P

Neves-P commented Sep 29, 2026 •

Copy link
Copy Markdown
Member Author

I added a guard to only apply the changes in the hook for A64FX builds.

It also seems to work: EESSI/software-layer#1668 (comment)

Comment thread eb_hooks.py Outdated
)

cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
if cpu_target == CPU_TARGET_A64FX:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd add another guard here that only applies this to a specific version of uv. Hopefully it won't be necessary for future versions, but otherwise we can still extend that list.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point! Hopefully addressed in 82c4f67

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I broke something 😅

@bedroge

bedroge commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

bot: build repo:eessi.io-2023.06-software instance:eessi-bot-deucalion for:arch=aarch64/a64fx
bot: build repo:eessi.io-2025.06-software instance:eessi-bot-deucalion for:arch=aarch64/a64fx
bot: build repo:eessi.io-2026.06-software instance:eessi-bot-deucalion for:arch=aarch64/a64fx

@eessi-bot-deucalion

eessi-bot-deucalion Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

New job on instance eessi-bot-deucalion for repository eessi.io-2023.06-software
Building on: a64fx
Building for: aarch64/a64fx
Job dir: /home/eessibot/new-bot/jobs/2026.09/pr_308/1961433

date job status comment
Sep 30 10:58:12 UTC 2026 submitted job id 1961433 awaits release by job manager
Sep 30 10:59:13 UTC 2026 released job awaits launch by Slurm scheduler
Sep 30 11:00:16 UTC 2026 running job 1961433 is running
Sep 30 11:03:38 UTC 2026 finished
😁 SUCCESS (click triangle for details)
Details
✅ job output file slurm-1961433.out
✅ no message matching FATAL:
✅ no message matching ERROR:
✅ no message matching FAILED:
✅ no message matching required modules missing:
✅ found message(s) matching No missing installations
✅ found message matching .tar.* created!
Artefacts
eessi-2023.06-software-linux-aarch64-a64fx-17907661440.tar.zstsize: 0 MiB (34841 bytes)
entries: 1
modules under 2023.06/software/linux/aarch64/a64fx/modules/all
no module files in tarball
software under 2023.06/software/linux/aarch64/a64fx/software
no software packages in tarball
reprod directories under 2023.06/software/linux/aarch64/a64fx/reprod
no reprod directories in tarball
other under 2023.06/software/linux/aarch64/a64fx
no other files in tarball
Sep 30 11:03:38 UTC 2026 test result
😢 FAILURE (click triangle for details)
Reason
EESSI test suite was not run, test step itself failed to execute.
Details
✅ job output file slurm-1961433.out
❌ found message matching ERROR:
✅ no message matching [\s*FAILED\s*].*Ran .* test case
Sep 30 11:11:52 UTC 2026 uploaded transfer of eessi-2023.06-software-linux-aarch64-a64fx-17907661440.tar.zst to S3 bucket succeeded

@eessi-bot-deucalion

eessi-bot-deucalion Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

New job on instance eessi-bot-deucalion for repository eessi.io-2025.06-software
Building on: a64fx
Building for: aarch64/a64fx
Job dir: /home/eessibot/new-bot/jobs/2026.09/pr_308/1961434

date job status comment
Sep 30 10:58:18 UTC 2026 submitted job id 1961434 awaits release by job manager
Sep 30 10:59:10 UTC 2026 released job awaits launch by Slurm scheduler
Sep 30 11:00:19 UTC 2026 running job 1961434 is running
Sep 30 11:05:45 UTC 2026 finished
😁 SUCCESS (click triangle for details)
Details
✅ job output file slurm-1961434.out
✅ no message matching FATAL:
✅ no message matching ERROR:
✅ no message matching FAILED:
✅ no message matching required modules missing:
✅ found message(s) matching No missing installations
✅ found message matching .tar.* created!
Artefacts
eessi-2025.06-software-linux-aarch64-a64fx-17907662470.tar.zstsize: 0 MiB (34843 bytes)
entries: 1
modules under 2025.06/software/linux/aarch64/a64fx/modules/all
no module files in tarball
software under 2025.06/software/linux/aarch64/a64fx/software
no software packages in tarball
reprod directories under 2025.06/software/linux/aarch64/a64fx/reprod
no reprod directories in tarball
other under 2025.06/software/linux/aarch64/a64fx
no other files in tarball
Sep 30 11:05:45 UTC 2026 test result
😢 FAILURE (click triangle for details)
Reason
EESSI test suite was not run, test step itself failed to execute.
Details
✅ job output file slurm-1961434.out
❌ found message matching ERROR:
✅ no message matching [\s*FAILED\s*].*Ran .* test case
Sep 30 11:12:01 UTC 2026 uploaded transfer of eessi-2025.06-software-linux-aarch64-a64fx-17907662470.tar.zst to S3 bucket succeeded

@eessi-bot-deucalion

eessi-bot-deucalion Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

New job on instance eessi-bot-deucalion for repository eessi.io-2026.06-software
Building on: a64fx
Building for: aarch64/a64fx
Job dir: /home/eessibot/new-bot/jobs/2026.09/pr_308/1961435

date job status comment
Sep 30 10:58:23 UTC 2026 submitted job id 1961435 awaits release by job manager
Sep 30 10:59:07 UTC 2026 released job awaits launch by Slurm scheduler
Sep 30 11:00:22 UTC 2026 running job 1961435 is running
Sep 30 11:04:41 UTC 2026 finished
😁 SUCCESS (click triangle for details)
Details
✅ job output file slurm-1961435.out
✅ no message matching FATAL:
✅ no message matching ERROR:
✅ no message matching FAILED:
✅ no message matching required modules missing:
✅ found message(s) matching No missing installations
✅ found message matching .tar.* created!
Artefacts
eessi-2026.06-software-linux-aarch64-a64fx-17907661400.tar.zstsize: 0 MiB (34795 bytes)
entries: 1
modules under 2026.06/software/linux/aarch64/a64fx/modules/all
no module files in tarball
software under 2026.06/software/linux/aarch64/a64fx/software
no software packages in tarball
reprod directories under 2026.06/software/linux/aarch64/a64fx/reprod
no reprod directories in tarball
other under 2026.06/software/linux/aarch64/a64fx
no other files in tarball
Sep 30 11:04:41 UTC 2026 test result
😢 FAILURE (click triangle for details)
Reason
EESSI test suite was not run, test step itself failed to execute.
Details
✅ job output file slurm-1961435.out
❌ found message matching ERROR:
✅ no message matching [\s*FAILED\s*].*Ran .* test case
Sep 30 11:11:41 UTC 2026 uploaded transfer of eessi-2026.06-software-linux-aarch64-a64fx-17907661400.tar.zst to S3 bucket succeeded

@bedroge
bedroge merged commit 6327b3a into EESSI:main Sep 30, 2026
94 of 96 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025.06-software.eessi.io 2025.06 version of software.eessi.io a64fx bot:deploy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants