Skip to content

Fix pkgconfig files of zstd#24274

Merged
Micket merged 1 commit intoeasybuilders:developfrom
Flamefire:20251016131553_new_pr_zstd149
Oct 17, 2025
Merged

Fix pkgconfig files of zstd#24274
Micket merged 1 commit intoeasybuilders:developfrom
Flamefire:20251016131553_new_pr_zstd149

Conversation

@Flamefire
Copy link
Copy Markdown
Contributor

@Flamefire Flamefire commented Oct 16, 2025

(created using eb --new-pr)

The pkgconfig file is created in the build step using PREFIX defaulting to /usr/local which is sued as we set PREFIX only for the install step. This might lead to the linker of dependent software picking up system software instead of EB software.

As the change is small I fixed all ECs, especially as it can avoid major headaches when things go silently wrong

runtest = 'check'

installopts = "PREFIX=%(installdir)s"
buildopts = installopts = "PREFIX=%(installdir)s"
Copy link
Copy Markdown
Collaborator

@Thyre Thyre Oct 16, 2025

Choose a reason for hiding this comment

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

Minor nitpick. Not sure if we want to want to have this instead, just to make this a bit more readable (in my opinion):

Suggested change
buildopts = installopts = "PREFIX=%(installdir)s"
buildopts = "PREFIX=%(installdir)s"
installopts = buildopts

Otherwise, the change is quite straight-forward. We could even think about if we'd want to check that this is correctly set in the sanity check commands, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

IMO the current way is clearer: "set this and that to"

We could even think about if we'd want to check that this is correctly set in the sanity check commands, right?

Maybe do this in framework: For any "prefix=" line in installed pc files it should match the installdir or a subdir of it

@Thyre Thyre added this to the next release (5.2.0?) milestone Oct 16, 2025
@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Oct 16, 2025

Looks like this doesn't affect 1.5.7, but doesn't hurt to set this anyway

$ cat /opt/EasyBuild/apps/software/zstd/1.5.7-GCCcore-14.3.0/lib/pkgconfig/libzstd.pc
#   ZSTD - standard compression algorithm
#   Copyright (c) Meta Platforms, Inc. and affiliates.
#   BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)

prefix=/opt/EasyBuild/apps/software/zstd/1.5.7-GCCcore-14.3.0
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: zstd
Description: fast lossless compression algorithm library
URL: https://facebook.github.io/zstd/
Version: 1.5.7
Libs: -L${libdir} -lzstd 
Libs.private: -pthread
Cflags: -I${includedir} 
$ cat /opt/EasyBuild/apps/software/zstd/1.5.6-GCCcore-14.2.0/lib/pkgconfig/libzstd.pc 
#   ZSTD - standard compression algorithm
#   Copyright (c) Meta Platforms, Inc. and affiliates.
#   BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: zstd
Description: fast lossless compression algorithm library
URL: https://facebook.github.io/zstd/
Version: 1.5.6
Libs: -L${libdir} -lzstd
Libs.private: -pthread
Cflags: -I${includedir}

@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Oct 16, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ecpr-24274"

@Thyre Thyre added bug fix and removed change labels Oct 16, 2025
@boegelbot
Copy link
Copy Markdown
Collaborator

@Thyre: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24274 EB_ARGS="--installpath=/tmp/$USER/ecpr-24274" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24274 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8426

Test results coming soon (I hope)...

Details

- notification for comment with ID 3410451948 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@Flamefire
Copy link
Copy Markdown
Contributor Author

Flamefire commented Oct 16, 2025

Test report by @Flamefire
FAILED
Build succeeded for 9 out of 10 (10 easyconfigs in total)
c144 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/5fa479c063c7ffbd4ff37bcfed1c00c7 for a full test report.

Rebuild that 1:

Test report by @Flamefire
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
c144 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/8560cbd2cd71b9e55fd535c34ee651c4 for a full test report.

@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Oct 16, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
ZAM054 - Linux Zorin OS 17, x86_64, 12th Gen Intel(R) Core(TM) i7-1260P (skylake), 1 x NVIDIA NVIDIA GeForce MX550, 580.65.06, Python 3.10.12
See https://gist.github.com/Thyre/5e33fbb7745268954cc79119e5645d39 for a full test report.

@Flamefire
Copy link
Copy Markdown
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 13 out of 13 (10 easyconfigs in total)
i8019 - Linux Rocky Linux 9.6, x86_64, AMD EPYC 7352 24-Core Processor (zen2), 8 x NVIDIA NVIDIA A100-SXM4-40GB, 580.65.06, Python 3.9.21
See https://gist.github.com/Flamefire/ced03a6e269cb914bcc65e9df2400146 for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 10 out of 10 (10 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/606e15d4b8d8e93d71b554c3bded2c36 for a full test report.

@Flamefire
Copy link
Copy Markdown
Contributor Author

Looks like this doesn't affect 1.5.7, but doesn't hurt to set this anyway

Yes it was fixed in 1.5.7 "by accident" with facebook/zstd@f1f1ae3

Copy link
Copy Markdown
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

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

lgtm, i don't mind the one-line buildopts/installopts

@Micket
Copy link
Copy Markdown
Contributor

Micket commented Oct 17, 2025

Test report by @Micket
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
vera-icelake-build - Linux Rocky Linux 9.6, x86_64, Intel(R) Xeon(R) Silver 4316 CPU @ 2.30GHz, Python 3.9.21
See https://gist.github.com/Micket/135868b050f0a919b4855628332c7af5 for a full test report.

@Micket
Copy link
Copy Markdown
Contributor

Micket commented Oct 17, 2025

Going in, thanks @Flamefire!

@Micket Micket merged commit 7f86656 into easybuilders:develop Oct 17, 2025
8 checks passed
@Flamefire Flamefire deleted the 20251016131553_new_pr_zstd149 branch October 17, 2025 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants