.. _spkg_glpk:

glpk: GNU Linear Programming Kit
================================

Description
-----------

The GLPK (GNU Linear Programming Kit) package is intended for solving
large-scale linear programming (LP), mixed integer programming (MIP),
and other related problems. It is a set of routines written in ANSI C
and organized in the form of a callable library.

GLPK supports the GNU MathProg modelling language, which is a subset of
the AMPL language.

The GLPK package includes the following main components:

-  primal and dual simplex methods
-  primal-dual interior-point method
-  branch-and-cut method
-  translator for GNU MathProg
-  application program interface (API)
-  stand-alone LP/MIP solver

License
-------

The GLPK package is GPL version 3.


Upstream Contact
----------------

GLPK is currently being maintained by:

-  Andrew Makhorin (mao@gnu.org, mao@mai2.rcnet.ru)

http://www.gnu.org/software/glpk/#maintainer

Special Update/Build Instructions
---------------------------------

-  ``configure`` doesn't support specifying the location of the GMP
   library to use; only ``--with-gmp[=yes]`` or ``--with-gmp=no``
   are valid options. (So we \*have to\* add Sage's include and
   library directories to ``CPPFLAGS`` and ``LDFLAGS``, respectively.)

-  Do we need the ``--disable-static``? The stand-alone solver presumably
   runs faster when built with a static library; also other
   (stand-alone)
   programs using it would.
   (Instead, we should perhaps use ``--enable-static --enable-shared``
   to
   go safe.)

Patches
~~~~~~~

-  All patches below are currently used by spkg-src
-  src/01-zlib.patch: don't build the included zlib library.
-  src/02-cygwin_sharedlib.patch: Let a shared library be built on
   Cygwin by
   passing the -no-undefined flag to libtool.

   The numbering reflect the order in which they have been created from
   glpk pristine's sources

Type
----

standard


Dependencies
------------

- $(MP_LIBRARY)
- :ref:`spkg_zlib`

Version Information
-------------------

package-version.txt::

    5.0.p0


Equivalent System Packages
--------------------------

arch:

.. CODE-BLOCK:: bash

    $ sudo pacman -S  glpk


conda:

.. CODE-BLOCK:: bash

    $ conda install  glpk


cygwin:

.. CODE-BLOCK:: bash

    $ apt-cyg install glpk libglpk-devel


Debian/Ubuntu:

.. CODE-BLOCK:: bash

    $ sudo apt-get install  glpk-utils libglpk-dev


Fedora/Redhat/CentOS:

.. CODE-BLOCK:: bash

    $ sudo yum install  glpk glpk-devel glpk-utils


freebsd:

.. CODE-BLOCK:: bash

    $ sudo pkg install math/glpk


gentoo:

.. CODE-BLOCK:: bash

    $ sudo emerge sci-mathematics/glpk


homebrew:

.. CODE-BLOCK:: bash

    $ brew install glpk


macports:
install the following packages: glpk

nix:

.. CODE-BLOCK:: bash

    $ nix-env --install glpk


opensuse:

.. CODE-BLOCK:: bash

    $ sudo zypper install glpk glpk-devel


void:

.. CODE-BLOCK:: bash

    $ sudo xbps-install  glpk-devel


See https://repology.org/project/glpk/versions


If the system package is installed, ./configure will check whether it can be used.

