bsd is gpl compatible, but gpl does not permit the use of gpl
licensed code in non-gpl code. This is especially annoying if
important libraries users expect are gpl. For example the very
popular readline library is gpl licensed. Users of OS X will know
that, because interactive shells of Python and other non gpl
applications sucks there. People tried to rewrite readline to get
rid of the gpl problem but the alternatives are not as well
maintained as the original one.
"I guess this is also what Steve Ballmer referred to as
"cancer". Unfortunately he's not entirely wrong there. For example
I tried to develop an interactive administration shell for Zine but
without readline (which I cannot use as Zine is bsd licensed) the
user experience is just meh. I would have to relicense the entire
application to GPL just so that I can have an interactive shell
with readline support.
Now this depends on how you define freedom. The people behind the
gpl have a very communistic point of view in terms of freedom: free
software should be available to everybody under the same terms.
Unfortunately like communism it does not work out that well because
it turns out humans are not really compatible to that way to look
at things. On the other hand there are the permissive licenses like
bsd that just give away all rights except the copyright and do not
enforce freedom. You can take bsd code and re-license it under the
gpl if you want to. That kind of freedom however is a one-way
ticket. Once you made a gpl release of your code there will always
be a gpl version of it. If not for future releases, at least for
that one release as you can't revoke the license."