|
| 1 | +# CBMC packages |
| 2 | + |
| 3 | +This project builds installation packages for the tip of the develop |
| 4 | +branch for MacOS, Windows, and Ubuntu. |
| 5 | + |
| 6 | +There exist installation packages for the latest stable releases of |
| 7 | +CBMC on MacOS and Ubuntu. |
| 8 | + |
| 9 | +On MacOS: |
| 10 | +* brew install cbmc |
| 11 | + |
| 12 | +On Ubuntu: |
| 13 | +* sudo apt-get install software-properties-common |
| 14 | +* sudo add-apt-repository ppa:mt-debian/cbmc-backports |
| 15 | +* sudo apt-get update |
| 16 | +* sudo apt-get install cbmc |
| 17 | + |
| 18 | +This project uses GitHub Actions to build installation packages for |
| 19 | +the tip of the develop branch for MacOS, Windows, and Ubuntu each time |
| 20 | +new commits is added to develop. The packages reside on GitHub as |
| 21 | +artifacts that can be listed using the GitHub Actions API. |
| 22 | + |
| 23 | +A separate project implements a web page hosted on GitHub Pages that makes |
| 24 | +it easy to find the installation package for the tip of develop. |
| 25 | + |
| 26 | +The stable installation packages describe above for MacOS and Ubuntu |
| 27 | +install into the local operating system's equivalent of |
| 28 | +/usr/local/bin. |
| 29 | +This project builds two kinds of packages: |
| 30 | +* cbmc installs into the equvalent of /usr/local/bin |
| 31 | +* cbmc-latest installs into the equivalent of /usr/local/cbmc-latest/bin, |
| 32 | + and makes it possible to have two copies of cbmc --- a stable release |
| 33 | + and a tip of develop --- side-by-side on the same machine. |
| 34 | + |
| 35 | +For each operatin system: |
| 36 | +* The MacOS package is just a tar file of a directory containing the |
| 37 | + binaries. The directory should be unpacked and placed in the search |
| 38 | + path. Using Homebrew, "brew install cbmc" will install the latest |
| 39 | + stable release. These tar files are intended only to distribute the |
| 40 | + development versions between stable releases (Homebrew repository |
| 41 | + updates of the stable versions are quick). |
| 42 | + |
| 43 | +* The Windows package is an Microsoft Installer (msi) for Windows 10 |
| 44 | + with Visual Studio 2019. It can be installed by double-clicking on the |
| 45 | + installer or runnin `msexec /i <filename>`. |
| 46 | + |
| 47 | +* The Ubuntu package is a Debian package that can be installed with |
| 48 | + `dpkg -i <filename>`. There are packages for Ubuntu 18 and Ubuntu 16. |
| 49 | + These packages are intended to distribute the development versions |
| 50 | + between stable releases, but also to produce the stable packages uploaded |
| 51 | + to a Debian or Ubuntu PPA. |
| 52 | + |
| 53 | +The file packages.yaml defines the workflow for GitHub Actions to build the |
| 54 | +packages. Each package is defined by a job that runs in its own |
| 55 | +container. The subdirectories contain files and data needed to build |
| 56 | +each of the packages. |
0 commit comments