On Tue, 2021-01-05 at 17:38 -0800, Christian Diener wrote:
> Hi,
>
> we are observing build failures on conda-forge for GLPK 5.0. The used
> build instructions are in brief:
>
> ```
> cd w%ARCH%
> copy config_VC config.h
>
> :: Get the major minor version info (e.g. `4_60`)
> python -c "import os;
> print('_'.join(os.environ['PKG_VERSION'].split('.')[:2]))" > temp.txt
> set /p MAJ_MIN_VER=<temp.txt
>
> nmake /f Makefile_VC
> nmake /f Makefile_VC_DLL
>
> copy glpsol.exe %LIBRARY_BIN%
> copy ..\src\glpk.h %LIBRARY_INC%
> copy glpk.lib %LIBRARY_LIB%
> copy glpk_%MAJ_MIN_VER%.dll %LIBRARY_BIN%
> copy glpk_%MAJ_MIN_VER%.dll %LIBRARY_BIN%\glpk.dll
>
> if errorlevel 1 exit 1
> ```
>
> Which will error out with the following on the Azure runner:
>
> ```
> glpk_5_0.def : error LNK2001: unresolved external symbol
> glp_netgen_prob
> glpk_5_0.lib : fatal error LNK1120: 1 unresolved externals
> ```
Thank you for your bug report.
To fix the bug please replace file glpk/src/api/netgen.c by the attached
one and then rebuild the package as usual.
>
> A full log and definition of the runner can be found at https://dev.az
> ure.com/conda-forge/feedstock-
> builds/_build/results?buildId=252916&view=logs&j=a70f640f-cc53-5cd3-
> 6cdc-236a1aa90802&t=f5d15007-a01c-5ad8-c9ce-4d519d3b275f
>
> Thanks for your help!
>
>
> Christian Diener, PhD
> [email protected]
> +1 (206) 732 1363
>
> Institute for Systems Biology
> 401 Terry Ave. N.
> 98109 Seattle, WA, USA
>
> Website | Twitter | Github
/* netgen.c */
#include "env.h"
#include "glpk.h"
int glp_netgen(glp_graph *G_, int v_rhs_, int a_cap_, int a_cost_,
const int parm[1+15])
{ static const char func[] = "glp_netgen";
xassert(G_ == G_);
xassert(v_rhs_ == v_rhs_);
xassert(a_cap_ == a_cap_);
xassert(a_cost_ == a_cost_);
xassert(parm == parm);
xerror("%s: sorry, this routine is temporarily disabled due to li"
"censing problems\n", func);
abort();
return -1;
}
void glp_netgen_prob(int nprob, int parm[1+15])
{ static const char func[] = "glp_netgen_prob";
xassert(nprob == nprob);
xassert(parm == parm);
xerror("%s: sorry, this routine is temporarily disabled due to li"
"censing problems\n", func);
abort();
return;
}
/* eof */