r-hub / rhub

R-hub API client
https://r-hub.github.io/rhub/
Other
353 stars 52 forks source link

Update GLPK version in windows-x86_64-release #517

Closed ntamas closed 2 years ago

ntamas commented 2 years ago

The windows-x86_64-release image contains a copy of GLPK 4.47, which is more than 10 years old now. Would it be possible to update it to a more recent version? The new version of igraph depends on GLPK 4.57 or later because it uses glp_at_error() and this was added in GLPK 4.57 only (which is also more than 6 years old). If GLPK 4.47 is installed in the image because it matches the version used in the CRAN build environment, then are there any plans to update the CRAN build environment to a newer version in the foreseeable future?

Note that other builders seem to use more recent GLPK versions (4.65 or so), and apparently rtools-packages also contains GLPK 4.65. The commit message even mentions that glpk was added because of igraph, but it seems like this version is not installed in windows-x86_64-release by default.

ntamas commented 2 years ago

I don't know how R-Hub processes the SystemRequirements field in the package metadata, but it seems like GLPK is missing from https://github.com/r-hub/sysreqsdb/tree/master/sysreqs for Windows. RStudio's database adds an entry for GLPK: https://github.com/rstudio/r-system-requirements/tree/master/rules

gaborcsardi commented 2 years ago

What version of GLPK does CRAN's Windows have?

R-hub does not use SystemRequirements on Windows.

gaborcsardi commented 2 years ago

It seems that the last version of the glpkAPI package was built with GLPK 4.47, so most likely that is indeed the version available on CRAN.

I can't speak for CRAN, but I would think that it will not be updated.

ntamas commented 2 years ago

Can we use a vendored GLPK then when compiling igraph, or is that against CRAN policy? We vendor GLPK 5.0 in C-igraph and it has been patched to get rid of abort() and printf() calls.

gaborcsardi commented 2 years ago

AFAIK it is against policy. OTOH some packages do this already. Other packages download static libs from https://github.com/rwinlib

ntamas commented 2 years ago

OK, how about newer R versions then -- is R-devel going to have a newer GLPK version? If it will, I probably won't bother with vendoring GLPK and just work around the issue by disabling the branch that uses glp_at_error(). I'm asking because igraph builds successfully in win-builder with R-devel so it seems like there's a newer version of GLPK there.

gaborcsardi commented 2 years ago

The coming R 4.2.0 will use a newer version: https://svn.r-project.org/R-dev-web/trunk/WindowsBuilds/winutf8/ucrt3/toolchain_libs/mxe/src/glpk.mk

Or this unofficial mirror is easier to browse: https://github.com/r-devel/r-dev-web/tree/master/WindowsBuilds/winutf8/ucrt3/toolchain_libs/mxe/src

ntamas commented 2 years ago

Thanks for the info; I'll just probably work around the older GLPK version then for the time being and looking forward to R-devel.