License compatibility is the question of whether code covered by one license can be legally combined with code covered by another into a single distributed work. The Free Software Foundation defines two licenses as compatible when code under them can be merged while respecting all of the terms of both. When the requirements of the two licenses cannot be satisfied at the same time, the licenses are incompatible and the combined work cannot be lawfully distributed at all.
The FSF compatibility page sorts free licenses into three groups: lax permissive licenses such as BSD, X11, and Apache that allow code to be folded into proprietary software; copyleft licenses such as the GPL and AGPL that require derivatives to carry the same license; and intermediate licenses such as Mozilla and Eclipse that have redistribution requirements without being full copyleft. Permissive licenses generally combine with everything, because they add few conditions. The hard cases arise between copyleft licenses, because each demands the whole derivative carry its own terms.
Copyleft compatibility tends to be one-way. Permissively licensed code can be pulled into a GPL project and redistributed under the GPL, because the permissive terms do not forbid adding the GPL’s conditions. The reverse does not hold: GPL code cannot be relicensed under a permissive license, because that would strip the freedoms the GPL requires to travel forward. The FSF notes that even two strong copyleft licenses can collide. As the compatibility page puts it, if license A requires derivatives under A and license B requires them under B, the two have “an irreconcilable disagreement,” which is precisely why GPL version 2 and GPL version 3 are mutually incompatible unless a project chose the “or later” option.
A classic incompatibility comes not from copyleft at all but from an extra obligation. The GNU license list describes the original four-clause BSD license as a permissive license “with a serious flaw: the ‘obnoxious BSD advertising clause.’” That clause required advertising materials to credit the original authors, and because the GPL forbids adding restrictions beyond its own, the advertising requirement makes the original BSD license incompatible with the GPL. The fix was the modified three-clause BSD license, which simply removed the offending clause.
These rules are not abstractions; they govern what software can actually be shipped together. A project that wants to draw on the broadest pool of existing code must reason carefully about which licenses can be mixed, and the FSF maintains its detailed license list and compatibility guidance precisely so that maintainers can answer the question before, rather than after, they ship a combined work.