ibex-team / ibex-lib

IBEX is a C++ library for constraint processing over real numbers.
http://ibex-team.github.io/ibex-lib/
GNU Lesser General Public License v3.0
67 stars 51 forks source link

Packages for IBEX #506

Open lebarsfa opened 3 years ago

lebarsfa commented 3 years ago

Hello,

This is just to let you know that I am trying to push on https://chocolatey.org/packages/ibex/2.8.9 a package for Chocolatey, which is a popular package manager for Windows (choco command, not be confused with choco-solver…). Since it is not yet accepted, the quick start procedure described on https://chocolatey.org/packages/ibex/2.8.9#description does not work yet unless you manually download the package in a folder and run choco source add -n=current-directory -s ., but I think this would greatly simplify the installation for new users. The idea is since Ibex is currently a dependency of Codac (ex Tubex), Codac could be installed similarly later (in practice it is already possible if we then download manually in the same folder https://www.ensta-bretagne.fr/packages/choco/codac.0.1.3.nupkg and https://www.ensta-bretagne.fr/packages/choco/eigen.3.3.4.nupkg and run choco install codac).

In the same idea for Ubuntu (currently only for amd64 16.04, 18.04, 20.04) :

echo "deb [trusted=yes] https://www.ensta-bretagne.fr/packages/`lsb_release --id -s | tr [:upper:] [:lower:]`/`lsb_release -cs` ./" | sudo tee -a /etc/apt/sources.list.d/ensta-bretagne.list
sudo apt-get update
sudo apt-get -y install libcodac-dev build-essential cmake
wget https://www.ensta-bretagne.fr/lebars/Share/test_codac.zip
unzip -q test_codac.zip
cd test_codac
cmake .
make
./my_project

libcodac-dev installs libibex-dev as dependency. It is probably not yet ready to be submitted as is to official repositories but it is a first step. See https://github.com/lebarsfa/ibex-lib/actions for the packages generation details.

What are your thoughts about that?

BTW, I guess issues #71 and #253 could be closed, especially with the addition of CMake support, IBEX (at least version 2.8.9) builds correctly with multiple versions of recent Visual Studio and MinGW both in 32 and 64 bit, see e.g. https://github.com/lebarsfa/codac/actions/runs/693650891 and https://github.com/lebarsfa/codac/actions/runs/693650892.

gchabert commented 3 years ago

Hi Fabrice, It sounds great! Many thanks for reporting your work. It just perfeclty complete the work made by Cyril to basically do the same under Linux (Debian package). I have a question: can Chocolatey generate installers (you know, with the usual graphical interface) ? Sorry if it is a stupid question, I'm not a Windows user.

I was not aware that Ibex could compile under MinGW 64, thanks! I have to test that and update the documentation.

And you are right, I'm closing these old issues.

lebarsfa commented 3 years ago

Hello,

In the meantime, it seems the Chocolatey moderators would like that one of the "software authors" be among the "package maintainers" and anyway it would be logical, is it possible that you or maybe Cyril create an account on https://community.chocolatey.org/account/Register so that I can add you to the list of "package maintainers"?

For the GUI installers, it is definitely not a stupid question! I don't know if Chocolatey helps, there is a Chocolatey GUI but it is not exactly what you probably meant. I have not much played with them but I think InnoSetup is a typical installer type often used for open-source projects, but among the different solutions (e.g. WiX, Windows Installer and other variants) I don't really know which one would be the easiest, especially if we want a way to install automatically dependencies such as a compiler or IDE for first-time users.

About the Debian packages made by Cyril, do you have more info about that, are they already available somewhere?

SimonRohou commented 3 years ago

Hi Fabrice, very good!

This will be very helpful for our developments.

@gchabert , @cyrilbouvier > any news about it? Can you register in Choco in order to make IBEX available on this platform?

cyrilbouvier commented 3 years ago

Details about the debian package progress are discussed in https://github.com/ibex-team/ibex-lib/discussions/486. I will update it soon with new info.

lebarsfa commented 3 years ago

Thank you, I searched in Issues and PRs but missed the Discussions tab!

In the meantime, IBEX package has just been approved on Chocolatey, people can now just install Chocolatey and follow https://community.chocolatey.org/packages/ibex#description to quickly test IBEX on Windows, and then get package updates easily with choco update -y all command just as we are used to do on Ubuntu with sudo apt -y upgrade.

The procedure can be summarized as :

From #486, I see that it seems more difficult to get a package accepted on the default repos of Ubuntu. I plan to propose soon a PR with what I describe somehow in the beginning of this issue : generation using GitHub actions (see also what I say in #511) of the Chocolatey package and simple Ubuntu packages that could be hosted easily on almost any website e.g. https://www.ensta-bretagne.fr/packages as an example :

echo "deb [trusted=yes] https://www.ensta-bretagne.fr/packages/`lsb_release --id -s | tr [:upper:] [:lower:]`/`lsb_release -cs` ./" | sudo tee -a /etc/apt/sources.list.d/ensta-bretagne.list
sudo apt-get update
sudo apt-get -y install libibex-dev build-essential cmake
wget https://www.ensta-bretagne.fr/lebars/Share/test_ibex.zip
unzip -q test_ibex.zip
cd test_ibex
cmake .
make
./my_project

Then, a sudo apt -y upgrade should work as expected if a new version of IBEX is published on https://www.ensta-bretagne.fr/packages.

paulk-asert commented 2 years ago

@lebarsfa Any chance you could do an ibex Chocolatey update with the ibex-java plugin also included? The instructions for including that plugin are here: http://www.ibex-lib.org/doc/java-install.html (though not updated for 64bit) Using the Choco Solver (https://choco-solver.org/) with Ibex is what I'd like to make easy for Windows users. I am happy to help with testing.