Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with multiple sources when one of them has to be downloaded manually and the other doesn't #4749

Open
verdurin opened this issue Jan 21, 2025 · 3 comments
Milestone

Comments

@verdurin
Copy link
Member

I'm trying to update CPLEX for GCCcore/12.3.0 and owing to a bug I have to run a Python script to allow it to work with Python 3.11:

https://www.ibm.com/support/pages/does-cplex-optimization-studio-2211-support-python-311

Having tried various methods of adding an extra source, I see this error when I want to add checksums:

== injecting sha256 checksums for sources & patches in CPLEX-22.1.1-GCCcore-12.3.0.eb...
== * cplex_studio2211.linux_x86_64.bin: ab6d3f0953fdb3cbd43854452357955ef96db8b751c0866de3572fc47a0df542

ERROR: Failed to read /apps/eb/el8/upstream/sources/c/CPLEX/: [Errno 21] Is a directory: '/apps/eb/el8/upstream/sources/c/CPLEX/'

Here is the easyconfig:

name = 'CPLEX'
version = '22.1.1'

homepage = 'https://www.ibm.com/analytics/cplex-optimizer'
description = """IBM ILOG CPLEX Optimizer's mathematical programming technology enables
 analytical decision support for improving efficiency,
 reducing costs, and increasing profitability."""

toolchain = {'name': 'GCCcore', 'version': '12.3.0'}

sources = ['cplex_studio%s.linux_x86_64.bin' % ''.join(version.split('.'))]
sources += ['https://www.ibm.com/support/pages/system/files/inline-files/']

source_urls = ['make_full.py_.zip']

checksums = ['ab6d3f0953fdb3cbd43854452357955ef96db8b751c0866de3572fc47a0df542']

download_instructions = """
1. Visit https://www.ibm.com/products/ilog-cplex-optimization-studio
2. Sign up and download the Academic Edition
"""

builddependencies = [('binutils', '2.40')]

dependencies = [
    ('Java', '17', '', SYSTEM),
    ('Python', '3.11.3'),
]

postinstallcmds = ['']

moduleclass = 'math'
@Flamefire
Copy link
Contributor

I think the bug is that easybuild tries to get the filename from https://www.ibm.com/support/pages/system/files/inline-files/ which is empty. That should be handled although the input is wrong

@boegel
Copy link
Member

boegel commented Jan 29, 2025

@verdurin You have source_urls and sources mixed up here, no?

@boegel boegel added this to the 4.x milestone Jan 29, 2025
@Flamefire
Copy link
Contributor

Yes there is a mixup. We should still catch the empty basename and report a better error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants