ohpc: Problem and solution to issue when using EasyBuild with Xvfb eb files

Hello

I have recently had a problem when I was trying to install Xvfb-21.1.6-GCCcore-12.2.0 using EasyBuild 4.7.2. When I was trying to install this using Xvfb-21.1.6-GCCcore-12.2.0.eb (/opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb), I got an error where the checksum for the patch for xvfb-run was not correct:

[rocky@rockygpu Gaussian_test]$ eb Xvfb-21.1.6-GCCcore-12.2.0.eb --robot --parallel=4
== Temporary log file in case of crash /tmp/eb-vqz5vkh0/easybuild-hcskrz89.log
== found valid index for /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs, so using it...
== found valid index for /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs, so using it...
== resolving dependencies ...
== processing EasyBuild easyconfig /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb
== building and installing Xvfb/21.1.6-GCCcore-12.2.0...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== FAILED: Installation ended unsuccessfully (build directory: /home/rocky/.local/easybuild/build/Xvfb/21.1.6/GCCcore-12.2.0): build failed (first 300 chars): Checksum verification for /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/xvfb-run using fd6d13182b77871d4f65fccdaebb8a72387a726426066d3f8e6aa26b010ea0e8 failed. (took 0 secs)

I looked for this checksum in the Xvfb-21.1.6-GCCcore-12.2.0.eb file and found this is associated to a patch file called xvfb-run. I did some investigating and found that if I ran eb --search Xvfb, there was an entry for xvfb-run:

[rocky@rockygpu ~]$ eb --search Xvfb
== found valid index for /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs, so using it...
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/m/matlab-proxy/matlab-proxy-0.5.4_fix_xvfb_startup.patch
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.2.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.3.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-9.3.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-10.2.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.11-GCCcore-10.3.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.13-GCCcore-11.2.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.3-GCCcore-11.3.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb
 * /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/xvfb-run

I ran the checksum for the entry for xvfb-run:

[rocky@rockygpu ~]$ sha256sum  /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/xvfb-run
a70efee6934d53d7c228a4a8b2a7966b6eb4b47203d66818f122c66b1ab4e7c0  /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/xvfb-run

and changed the checksum currently in Xvfb-21.1.6-GCCcore-12.2.0.eb with this one:

    (name, version, {
        'source_urls': ['https://www.x.org/releases/individual/xserver/'],
        'sources': ['xorg-server-%(version)s.tar.gz'],
        'patches': [('xvfb-run', '.')],
        'checksums': [
            '6f9c73ccc50e2731adac17671c8e33687738c8cd556b49ecb9f410ce7217be11',  # xorg-server-21.1.3.tar.gz
            'a70efee6934d53d7c228a4a8b2a7966b6eb4b47203d66818f122c66b1ab4e7c0',  # xvfb-run  # <-- this is for the checksum when running "sha256sum /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/xvfb-run" . original checksum sha256: 'fd6d13182b77871d4f65fccdaebb8a72387a726426066d3f8e6aa26b010ea0e8'
        ],
        'start_dir': 'xorg-server-%(version)s',
        'configopts': local_xvfb_configopts,
        'buildopts': local_xvfb_buildopts,
        'installopts': local_xvfb_buildopts,
    }),

and then retried running eb Xvfb-21.1.6-GCCcore-12.2.0.eb --robot and this seemed to do the trick.

I assume that the /opt/ohpc/pub/libs/easybuild/4.7.2/easybuild/easyconfigs/x/Xvfb/xvfb-run has been updated recently but the checksums for this file in the Xvfb eb files have not been updated.

I also tried installing Xvfb-21.1.3-GCCcore-11.3.0.eb (eb Xvfb-21.1.3-GCCcore-11.3.0.eb --robot --parallel=4), got the same problem, and the same solution fixed this. I assume this will be a problem for all the Xvfb eb files.

I didnt know where to update this code in this github directory, so I thought to added it here as an issue. Hopefully this helps sort the problem out 😃

I have attached my updated Xvfb-21.1.6-GCCcore-12.2.0.eb and Xvfb-21.1.3-GCCcore-11.3.0.eb files here.

Xvfb-21.1.3-GCCcore-11.3.0.eb.txt Xvfb-21.1.6-GCCcore-12.2.0.eb.txt

Thanks for all the work. Setting up a HPC and OpenHPC is great!

Kindest regards,

Geoffrey


EasyBuild Details:

Name         : EasyBuild-ohpc
Version      : 4.7.2
Release      : 300.ohpc.3.2
Architecture : x86_64
Size         : 60 M
Source       : EasyBuild-ohpc-4.7.2-300.ohpc.3.2.src.rpm
Repository   : @System
From repo    : OpenHPC
Summary      : Software build and installation framework
URL          : https://easybuilders.github.io/easybuild
License      : GPLv2
Description  : EasyBuild is a software build and installation framework that allows
             : you to manage (scientific) software on High Performance Computing (HPC)
             : systems in an efficient way.

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Comments: 17 (9 by maintainers)

Most upvoted comments

A quick test shows that setting __brp_mangle_shebangs_exclude_from to *easyconfigs* should be enough to make it work. Let’s keep this open until we fix it in 3.1.

That is the script doing it https://gitlab.com/redhat/centos-stream/rpms/redhat-rpm-config/-/blob/c9s/brp-mangle-shebangs and it looks like it should be easy to exclude certain paths from it.