DRM and the GPL
It’s not immediately clear how DRM could work in the context of "free software." All currently extant DRM systems work based on the principle of obscurity; the decryption key is embedded in a program that abides by the restrictions imposed by the DRM, and software that doesn’t impose these conditions is not allowed the key. If the software’s source code is freely available, it would be relatively easy for someone to remove the restrictions.
One possible answer is not to store the key in the software at all. If the key is embedded in some kind of hardware device, then this technique starts to become feasible. The software could then request the key from the hardware, which would only release it if the software were signed by an authorized distributor. This software could incorporate GPL’d code and comply with all of the restrictions without damaging the DRM system. A user could modify the code, but if he or she tried to run that code, it wouldn’t work, because it wouldn’t be signed.
The hardware required to do this is being built into most new PCs, under the name Trusted Computing. Note that this term refers to the computer deciding whether it can trust the user, rather than the other way around.
The third version of the GNU General Public License, currently in draft form, is rapidly approaching completion. One of the most contentious clauses in this license relates to DRM. In particular, it states that the code must be accompanied by a cryptographic key, if such a key is required in order to run the software on a particular piece of hardware with which the software is distributed. If adopted, this clause would prevent GPL’d code from being used by DRM developers.