Skip to content

Move third-party MiniSat to 3p/, replacing download-and-patch#9115

Open
kroening wants to merge 2 commits into
developfrom
3p-minisat
Open

Move third-party MiniSat to 3p/, replacing download-and-patch#9115
kroening wants to merge 2 commits into
developfrom
3p-minisat

Conversation

@kroening

@kroening kroening commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Vendors MiniSat 2.2.1 (CBMC's default SAT solver) in the source tree instead of downloading it from Debian at build time:
    • 3p/minisat-2.2.1-original/ is byte-for-byte identical to the Debian source tarball minisat2_2.2.1.orig.tar.gz, for reference
    • 3p/minisat-2.2.1-patched/ is the copy that is built; it equals the original plus the previous scripts/minisat-2.2.1-patch, which is hereby retired (it can be re-created by diffing the two directories)
    • 3p/copyright.minisat-2.2.1 (Debian copyright-format 1.0) documents provenance and the local modifications
  • Removes the patch and the CMake download_project machinery; the glue from scripts/minisat2_CMakeLists.txt moves into src/solvers/CMakeLists.txt
  • The minisat2-download make target remains as a deprecated stub that prints a note that MiniSat is now in-tree
  • Updates CI workflows, COMPILING.md, and the vcxproj generator accordingly
  • Building CBMC with the default solver no longer requires network access

Includes the commit from #9114 (this PR needs its 3p/ lint exclusions); the diff reduces to the MiniSat commit once #9114 merges.

Test plan

  • Fresh CMake configure without network access, full cbmc build, and a verification run with --sat-solver minisat2 succeed
  • make -C src/solvers builds the MiniSat objects from 3p/ with -Werror; make clean removes them (keeps the CI cleanup check happy)
  • make -C src minisat2-download prints the deprecation note
  • Full CI build passes

🤖 Generated with Claude Code

Moves the vendored miniz sources from jbmc/src/miniz/ to 3p/miniz-3.0.2/,
and adds 3p/copyright.miniz-3.0.2 (Debian copyright-format 1.0) documenting
provenance (upstream commit 0c30a001bc3c70, Expat license) and the local
modifications. The build glue remains in jbmc/src/miniz/.

Also removes the stale src/miniz/module_dependencies.txt, left behind when
miniz moved to jbmc/src.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
MiniSat 2.2.1, CBMC's default SAT solver, was downloaded from Debian at
build time and patched via scripts/minisat-2.2.1-patch. This vendors it in
the source tree instead:

- 3p/minisat-2.2.1-original/ is byte-for-byte identical to the Debian
  source tarball minisat2_2.2.1.orig.tar.gz, for reference.
- 3p/minisat-2.2.1-patched/ is the copy that is built; it equals the
  original plus the previous patch, which is hereby retired. The patch can
  be re-created by diffing the two directories.
- 3p/copyright.minisat-2.2.1 (Debian copyright-format 1.0) documents
  provenance and the local modifications.

The patch and the CMake download machinery are removed; the CMake glue
from scripts/minisat2_CMakeLists.txt moves into src/solvers/CMakeLists.txt.
The minisat2-download make target remains as a deprecated stub that prints
a note that MiniSat is now in-tree. Building CBMC with the default solver
no longer requires network access.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kroening kroening changed the base branch from 3p-miniz to develop July 12, 2026 16:41
@kroening kroening requested a review from TGWDB as a code owner July 12, 2026 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant