Skip to content

Adds tarball builder for CONOPT#14008

Open
stephenjmaher wants to merge 11 commits into
JuliaPackaging:masterfrom
stephenjmaher:master
Open

Adds tarball builder for CONOPT#14008
stephenjmaher wants to merge 11 commits into
JuliaPackaging:masterfrom
stephenjmaher:master

Conversation

@stephenjmaher

Copy link
Copy Markdown

I am a developer of CONOPT and want to make CONOPT_jll available to Julia users. We are repackaging these binaries for distribution via Yggdrasil and we hold the rights to do so.

@odow

odow commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@DilumAluthge here's a good example of re-hosting a closed source binary. This may need discussion/review before merging.

@stephenjmaher see the backstory:

@DilumAluthge

Copy link
Copy Markdown
Member

AFAICT, this is fine from the point-of-view of General registry policy. Specifically, this appears to be an "Yggdrasil recipe that reuses the existing binaries instead of building them from source", as described in FAQ number 5 of the manual JLL docs.

So I think this is fine - but let's make sure that @giordano agrees.

@DilumAluthge

DilumAluthge commented Jul 9, 2026

Copy link
Copy Markdown
Member

Ah, I did find one problem: I looked inside one of the .zip files, and I don't see a LICENSE file.

@stephenjmaher Can you add a LICENSE file? For non-Julia-software in Yggdrasil, the requirement is a license that permits redistribution.

IIUC, you don't actually have to modify the .zip files - instead, you could modify the Yggdrasil recipe to put the appropriate license file in the appropriate location. @giordano can correct me if I'm wrong.

Examples of other proprietary software (that we redistributed in Yggdrasil) that have licenses that permit redistribution include CUDA and MKL.

@giordano

giordano commented Jul 9, 2026

Copy link
Copy Markdown
Member

Yes, having a license file would be good

Comment thread C/CONOPT/build_tarballs.jl Outdated
Comment thread C/CONOPT/build_tarballs.jl Outdated
@imciner2

imciner2 commented Jul 9, 2026

Copy link
Copy Markdown
Member

Yes, having a license file would be good

I think having the license file is actually mandatory... and the audit stage does fail with an error about it, but the actual CI has returned that it passed...

@stephenjmaher

Copy link
Copy Markdown
Author

Regarding the license, we are working on this. Unfortunately, this is not something that we had previously, since CONOPT was always downloaded from our website.

You give examples of CUDA and MKL; however, these are closed-source software that are free to use and distribute. While CONOPT is not free to use. I couldn't find any other commercial optimisation solvers in Yggdrasil that I could use as a reference. @odow Do you have any good reference for me?

@odow

odow commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

I couldn't find any other commercial optimisation solvers in Yggdrasil

I think this might be the first such package since the policy was introduced.

One option might be along the lines of https://github.com/leyffer/BQPD_jll.jl#license

Sven gave the binaries a BSD-3 license, which allows anyone to redistribute them. The source code is still private. Note that this doesn't mean that CONOPT needs to be free to use. You can still require a commercial license to use it at runtime.

Yggdrasil needs is a license so that we can host and redistribute the binaries. (Because they will be copied and stored as GitHub release assets in a JuliaBinaryWrappers/CONOPT_jll.jl repository. They won't be pulled from your link, so you won't see any download counts etc.)

Your options are:

  • Don't use Yggdrasil and make users of CONOPT.jl manually download and install the binaries
  • Use Yggdrasil

The policy of requiring packages like this use Yggdrasil is precisely to avoid situations like Gurobi_jll and KNITRO_jll, where we end up redistributing the binaries with permission from companies, but there's no explicit license that allows this, and people can't trace the binaries that we ship. (In the kNITRO case, I manually repackage their pypi binaries. I could be malicious and inject something when I repackage.)

@stephenjmaher

Copy link
Copy Markdown
Author

Thanks @odow for pointing to BQPD. That is helpful.

We want to distribute using Yggdrasil, so we are working on getting a license in place. All I was saying is that we haven't had to think about this before. So it is a learning experience.

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.

6 participants