GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - SMSpp-Project/ppa: Debian packaging of SMS++: the source package of a release, out of which Launchpad builds one package per module and per tool | mirror of https://gitlab.com/smspp/ppa

BranchesTags
Open more actions menu

Latest commit

 

History

28 Commits
28 Commits

Folders and files

NameName
Last commit message
Last commit date
__pycache__
__pycache__
 
 
ablemon
ablemon
 
 
daqp
daqp
 
 
debian
debian
 
 
qpoases
qpoases
 
 
.gitlab-ci.yml
.gitlab-ci.yml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
README.md
README.md
 
 
gen_debian.py
gen_debian.py
 
 
mk-ppa-source
mk-ppa-source
 
 

Repository files navigation

Debian packaging of SMS++

The source package of the SMS++ umbrella for the PPA, out of which Launchpad builds one library package per module, one command package per tool and the smspp-project metapackage of them all:

sudo add-apt-repository ppa:smspp-project/smspp
sudo apt install smspp-project     # everything
sudo apt install smspp-ucblock     # the Unit Commitment tool alone
sudo apt install libsmspp-mcf-dev  # the headers of the MCFBlock module

The umbrella is built once, and the install of each module goes to its own package: libsmspp-<module><soname> holds the shared library, libsmspp-<module>-dev the headers and the CMake configuration that find_package() finds, smspp-<tool> the executable with its configuration files, its examples and its man page.

Layout

debian/           the packaging, with the tables of the packages that
                  gen_debian.py writes: control, modules.tsv, tools.tsv
gen_debian.py     generator of those tables, whose own tables carry the
                  modules, the tools and their dependencies
mk-ppa-source     source package of a release, for one or more series
daqp/             the source package of DAQP, a QP solver of the MILP
                  Solvers, which no Ubuntu series carries
qpoases/          the source package of qpOASES, another QP solver of
                  the MILP Solvers, which no Ubuntu series carries
ablemon/          the source package of abLEMON, the maintained fork
                  of LEMON that MCFLemonSolver needs

A release

The tag of the umbrella publishes the release tarball, from which

./mk-ppa-source 0.6.0 resolute --upload

builds the source package of that version for that series and uploads it to the PPA, which then builds the binary packages for every architecture. The upload needs a GPG key registered on Launchpad, and devscripts and dput installed.

Adding a module

A new module needs its row in the LIBS table of gen_debian.py (directory, package base, the modules it needs, the -dev packages outside the project that its CMake configuration finds, and its description), and a new tool its row in TOOLS. The version of a package comes from the VERSION.txt of its module, so a minor bump renames the library package: that is the point of the name, since the SONAME changes with it.

What the packages do not carry

CPLEX, Gurobi, SCIP and MOSEK are not redistributable, and the C interface of Clarabel is in no package, so libsmspp-milp carries the HiGHS, DAQP and qpOASES backends alone; a build against the others is still the one of the sources. FastFlow, which the core fetches at configure time, travels in the source package as a second component, so that the build needs no network.

DAQP

DAQP, the dual active-set solver of DAQPMILPSolver, is in no Ubuntu series, so the PPA carries it as a source package of its own, out of the tag of its release and of daqp/debian: libdaqp0.10 holds the shared library, whose SONAME is libdaqp.so.0.10, and libdaqp-dev the headers, the static library and the CMake configuration. The patch in daqp/debian/patches builds the static library without linking the shared one, links the math library and installs the CMake configuration where find_package() looks for it.

daqp/mk-ppa-source noble resolute --upload

builds the source package of DAQP for both series and uploads it; it has to be built on Launchpad before the first upload of SMS++ that depends on libdaqp-dev. A new release of DAQP is DAQP_VERSION in that script, and a new SONAME the name of the library package in daqp/debian/control and of its .install file.

qpOASES

qpOASES, the online active-set solver of QPOASESMILPSolver, is in no Ubuntu series either, and the PPA carries it the same way, out of the tag of its release and of qpoases/debian: libqpoases3.2 holds the shared library, whose SONAME is libqpOASES.so.3.2 and whose own BLAS and LAPACK replacements are renamed, and libqpoases-dev the headers and the CMake configuration. The rules drop the RPATH that upstream puts on the library and let the newer CMake accept the old minimum version of the project.

qpoases/mk-ppa-source noble resolute --upload

builds it for both series and uploads it, before the first upload of SMS++ that depends on libqpoases-dev.

abLEMON

abLEMON, the maintained fork of LEMON that MCFLemonSolver needs, is in no Ubuntu series, whose liblemon-dev is the LEMON of COIN-OR; the PPA carries it the same way, out of the tag of its release and of ablemon/debian: libablemon1.9 holds the shared library, whose SONAME is libemon.so.1.9, and ablemon-dev the headers, the pkg-config file and the CMake configuration, which takes the place of liblemon-dev, since both install the headers in /usr/include/lemon. The library alone is built, without the LP backends, the tests, the demos and the tools.

ablemon/mk-ppa-source noble resolute --upload

builds it for both series and uploads it, before the first upload of SMS++ that depends on ablemon-dev. A new release of abLEMON is ABLEMON_VERSION in that script, and a new SONAME the name of the library package in ablemon/debian/control and of its .install file.

About

Debian packaging of SMS++: the source package of a release, out of which Launchpad builds one package per module and per tool | mirror of https://gitlab.com/smspp/ppa

Resources

Readme
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.