Opened 21 months ago

Closed 7 weeks ago

#31531 closed enhancement (fixed)

Update topcom to 1.1.2, fix cddlib header search

Reported by: Matthias Köppe Owned by:
Priority: major Milestone: sage-9.8
Component: packages: optional Keywords: upgrade, topcom
Cc: François Bissey, gh-kliem, Michael Orlitzky, Samuel Lelièvre, Antonio Rojas, Travis Scrimshaw Merged in:
Authors: Dima Pasechnik Reviewers: Matthias Koeppe
Report Upstream: Reported upstream. No feedback yet. Work issues:
Branch: e481535 (Commits, GitHub, GitLab) Commit: e4815355b7eadfd5c7d7697bf08c1749cb4660bc
Dependencies: Stopgaps:

Status badges

Description (last modified by Matthias Köppe)

Part of #29413.

TOPCOM home page has moved to:

For what's new in 1.1.x, see the changelog at:

Our 0.17.7 tarball was built using spkg-src and deposited in https://github.com/mkoeppe/topcom; but there is no git repository.

Arch linux already has an 1.1.x package - https://github.com/archlinux/svntogit-community/blob/packages/topcom/trunk/PKGBUILD

Change History (38)

comment:1 Changed 21 months ago by Samuel Lelièvre

Changelog at ​http://www.rambau.wm.uni-bayreuth.de/TOPCOM/ChangeLog does not say what's new in 0.17.8

The TOPCOM home page has this about changes in 0.17.8:

TOPCOM version 0.17.8 updates to gmp-6.1.1 and current automake/autoconf initialization. In the previous version 0.17.7, accidentally a wrong version of gmp was included. Furthermore, a bug was fixed where a new[] was not followed by a delete[] but a delete.

comment:2 Changed 21 months ago by Samuel Lelièvre

For very large problems, one can use Jordan-Joswig-Kastner's parallel mptopcom which in addition to TOPCOM, is based on Polymake and mts.

comment:3 Changed 21 months ago by Matthias Köppe

Milestone: sage-9.3sage-9.4

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.

comment:4 Changed 16 months ago by Matthias Köppe

Milestone: sage-9.4sage-9.5

comment:5 Changed 15 months ago by Matthias Köppe

Cc: Michael Orlitzky added

Last package to fix for the cddlib header situation... #29413

comment:6 Changed 13 months ago by Samuel Lelièvre

Cc: Samuel Lelièvre added
Description: modified (diff)
Keywords: upgrade topcom added

comment:7 Changed 13 months ago by Samuel Lelièvre

Description: modified (diff)

The TOPCOM homepage announces an upcoming new version:

current version is 0.17.8, improved multi-threaded version 1.0.5 currently in test phase

and also points to MTOPCOM.

comment:8 Changed 12 months ago by gh-kliem

I didn't have any luck with it. I tried to figure it out the entire forenoon, which is way more time then I wanted to spend with it.

Tried to use the check from latte, but it always ends like this:

[topcom-0.17.8-beta.11] checking for CDDLIB >= 093c... configure: headers are not in cddlib/
[topcom-0.17.8-beta.11] configure: headers are not in inclusion directory
[topcom-0.17.8-beta.11] configure: headers are not in cdd/
[topcom-0.17.8-beta.11] not found
[topcom-0.17.8-beta.11] checking for CDDLIB >= 093c... configure: headers are not in cddlib/
[topcom-0.17.8-beta.11] configure: headers are not in inclusion directory
[topcom-0.17.8-beta.11] configure: headers are not in cdd/
[topcom-0.17.8-beta.11] not found
[topcom-0.17.8-beta.11] configure: error: The cddlib headers and library are required for topcom.

Probably didn't have gmp linked in and thus couldn't compile the tests.

I pushed the tries here: https://github.com/kliem/topcom/

All that seems to be needed is to modify lib-src-reg/LPinterface.hh to use #include CDDLIB_SETOPER_H and #include CDDLIB_CDD_H.

Anyway, it seems to be one big mess.

comment:9 Changed 12 months ago by Matthias Köppe

Milestone: sage-9.5sage-9.6

comment:10 Changed 9 months ago by Matthias Köppe

Milestone: sage-9.6sage-9.7

comment:11 Changed 5 months ago by Samuel Lelièvre

TOPCOM homepage now has TOPCOM 0.17.10, and pre-announces:

improved multi-threaded version 1.0.x currently in test phase

comment:12 Changed 4 months ago by Matthias Köppe

Milestone: sage-9.7sage-9.8

comment:13 Changed 3 months ago by Samuel Lelièvre

Description: modified (diff)
Summary: Update topcom to 0.17.8, fix cddlib header searchUpdate topcom to 1.1.0, fix cddlib header search

comment:14 Changed 2 months ago by Matthias Köppe

Summary: Update topcom to 1.1.0, fix cddlib header searchUpdate topcom to 1.1.1, fix cddlib header search

comment:15 Changed 2 months ago by Matthias Köppe

Cc: Antonio Rojas added
Description: modified (diff)

comment:16 Changed 2 months ago by Matthias Köppe

Upstream topcom still doesn't handle the changed cddlib header locations

[topcom-1.1.1] mv -f .deps/SPXinterface.Tpo .deps/SPXinterface.Po
[topcom-1.1.1] mv -f .deps/QSOinterface.Tpo .deps/QSOinterface.Po
[topcom-1.1.1] In file included from LPinterface.cc:12:
[topcom-1.1.1] ./LPinterface.hh:24:10: fatal error: 'setoper.h' file not found
[topcom-1.1.1] #include "setoper.h"
[topcom-1.1.1]          ^~~~~~~~~~~
[topcom-1.1.1] 1 error generated.
[topcom-1.1.1] make[4]: *** [LPinterface.o] Error 1
[topcom-1.1.1] make[4]: *** Waiting for unfinished jobs....
[topcom-1.1.1] In file included from RegularityCheck.cc:13:
[topcom-1.1.1] In file included from ./RegularityCheck.hh:27:
[topcom-1.1.1] ./LPinterface.hh:24:10: fatal error: 'setoper.h' file not found
[topcom-1.1.1] #include "setoper.h"
[topcom-1.1.1]          ^~~~~~~~~~~
[topcom-1.1.1] 1 error generated.

comment:17 Changed 2 months ago by Matthias Köppe

Branch: u/mkoeppe/update_topcom_to_1_1_1__fix_cddlib_header_search

comment:18 Changed 2 months ago by Antonio Rojas

Commit: 186ef1bad4e2cf88d5576e47805f0a89979ab922

In 1.1.1 they finally support using system gmp, so for the Arch package I decided to give up on patching/rewriting the makefiles to use system cddlib and I'm just using the vendored one (not as bad as vendoring gmp IMO).


New commits:

186ef1bbuild/pkgs/topcom: Update to 1.1.1

comment:19 Changed 2 months ago by Dima Pasechnik

we'd need to patch ./configure, as there is still unconditional

make -C external cdd

in configure.ac

comment:20 Changed 2 months ago by Dima Pasechnik

[topcom-1.1.1] Attempting to download from https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM-Downloads/TOPCOM-1_1_1.tgz
[topcom-1.1.1] [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
[topcom-1.1.1] ERROR [transfer|run:135]: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)

their website setup :-(

$ wget https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM-Downloads/TOPCOM-1_1_1.tgz
--2022-10-03 11:35:16--  
https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM-Downloads/TOPCOM-1_1_1.tgz
Resolving www.wm.uni-bayreuth.de (www.wm.uni-bayreuth.de)... 132.180.6.1
Connecting to www.wm.uni-bayreuth.de (www.wm.uni-bayreuth.de)|132.180.6.1|:443... connected.
ERROR: The certificate of ‘www.wm.uni-bayreuth.de’ is not trusted.
ERROR: The certificate of ‘www.wm.uni-bayreuth.de’ doesn't have a known issuer.
Last edited 2 months ago by Dima Pasechnik (previous) (diff)

comment:21 Changed 2 months ago by Dima Pasechnik

Report Upstream: N/AReported upstream. No feedback yet.

comment:22 Changed 2 months ago by Matthias Köppe

Upstream confirmed by email that they are not interested in having a github repo. So I'd suggest that we create a repo for tracking upstream in github.com/sagemath, updating ​https://github.com/kliem/topcom/

comment:23 Changed 2 months ago by Dima Pasechnik

Meanwhile I have patches for 1.1.1, which make it build. Testing now.

comment:24 Changed 2 months ago by Dima Pasechnik

Branch: u/mkoeppe/update_topcom_to_1_1_1__fix_cddlib_header_searchu/dimpase/update_topcom_to_1_1_1__fix_cddlib_header_search
Commit: 186ef1bad4e2cf88d5576e47805f0a89979ab922e97a2cdd3e76b37a52964f02d30c1f0662a28de9

New commits:

0125185build/pkgs/topcom: Update to 1.1.1
e97a2cdpatches for topcom 1.1.1

comment:25 Changed 2 months ago by Dima Pasechnik

not sure whether this works with Sage-built cddlib, but it does with system cddlib

comment:26 in reply to:  22 Changed 2 months ago by Dima Pasechnik

Replying to Matthias Köppe:

Upstream confirmed by email that they are not interested in having a github repo. So I'd suggest that we create a repo for tracking upstream in github.com/sagemath, updating ​https://github.com/kliem/topcom/

I am not sure whether proper updating makes much sense. It seems topcom underwent a serious rewrite since the last changes in https://github.com/kliem/topcom/, with qiute a bit of C++ and examples added - while changes in https://github.com/kliem/topcom/ were not used. I sure can overwrite https://github.com/kliem/topcom/ with 1.1.1+my patches, otherwise it looks like too much work for little gain.

comment:27 Changed 2 months ago by Dima Pasechnik

Authors: Matthias Koeppe, Dima Pasechnik
Status: newneeds_review

apart from the issue of proper tarball hosting (Rambau asked his IT to look into it), looks good, and works on Linux (and on M1 macOS), with or without cddlib from the system.

Last edited 2 months ago by Dima Pasechnik (previous) (diff)

comment:28 Changed 2 months ago by git

Commit: e97a2cdd3e76b37a52964f02d30c1f0662a28de942708223bf9427498f5a5862ee268dc6d1012d38

Branch pushed to git repo; I updated commit sha1. New commits:

4270822better download location

comment:29 Changed 2 months ago by Dima Pasechnik

automatic downloading should work now, I put the tarball on my pages.

comment:30 Changed 2 months ago by Matthias Köppe

Reviewers: ..., Matthias Koeppe

seems to work on macOS Intel too.

comment:31 Changed 2 months ago by Matthias Köppe

Cc: Travis Scrimshaw added

comment:32 Changed 2 months ago by Dima Pasechnik

Status: needs_reviewneeds_work

topcom 1.1.2 has been released

comment:33 Changed 8 weeks ago by Dima Pasechnik

Summary: Update topcom to 1.1.1, fix cddlib header searchUpdate topcom to 1.1.2, fix cddlib header search

comment:34 Changed 8 weeks ago by Dima Pasechnik

Branch: u/dimpase/update_topcom_to_1_1_1__fix_cddlib_header_searchu/dimpase/update_topcom_to_1_1_2__fix_cddlib_header_search
Commit: 42708223bf9427498f5a5862ee268dc6d1012d38779b1dff1ab6f73624ec2b2f6e2394d74c1efc9d

New commits:

779b1dfupdate topcom to 1.1.2

comment:35 Changed 7 weeks ago by git

Commit: 779b1dff1ab6f73624ec2b2f6e2394d74c1efc9de4815355b7eadfd5c7d7697bf08c1749cb4660bc

Branch pushed to git repo; I updated commit sha1. New commits:

e481535reformat doctest

comment:36 Changed 7 weeks ago by Dima Pasechnik

Status: needs_workneeds_review

While our (or any system) cddlib is not thead-safe, TOPCOM interface does not use multithreading, so it can be used as it is. So this can go forward. (TOPCOM bundles an oldish (0.94j) cddlib with multithreading patches).

The next release of cddlib will contain the necessary for multithreading patch, see https://github.com/cddlib/cddlib/commit/1210faf9ee9cf02e29fc67e11a8ea4e847c58ddd

comment:37 Changed 7 weeks ago by Matthias Köppe

Authors: Matthias Koeppe, Dima PasechnikDima Pasechnik
Reviewers: ..., Matthias KoeppeMatthias Koeppe
Status: needs_reviewpositive_review

comment:38 Changed 7 weeks ago by Volker Braun

Branch: u/dimpase/update_topcom_to_1_1_2__fix_cddlib_header_searche4815355b7eadfd5c7d7697bf08c1749cb4660bc
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.