WinAPI, MFC, DirectX 등을 사용하는 소프트웨어가 GPL을 사용할 수 있나요?

vudghkzm의 이미지

윈도용 소프트웨어가 있고, 이것이 WinAPI, MFC, DirectX 등에 의존적이라고 한다면, 이 소프트웨어가 GPL을 사용하는데 아무런 문제가 없나요?

L 이라는 라이브러리가 GPL이라면, L에 의존적인 소프트웨어 S는 반드시 GPL이어야 하는 것으로 알고 있습니다.
위 상황은 이의 반대되는 상황으로.. GPL을 사용하고픈 소프트웨어 S가 있는데, S가 라이브러리 L에 의존적이지만 L은 소스 비공개이거나 GPL과는 호환되지 않는 라이센스를 사용하는 경우라고 할 수 있겠네요.

P.S. WinAPI, MFC, DirectX 등의 라이센스가 갑자기 궁금해지네요.

hys545의 이미지

http://sourceforge.net/search/?type_of_search=soft&words=&fq%5B%5D=trove%3A15
보니까 win32api 사용하면서 gpl인 프로그램 많은데여

그리고 gnu libc사용하면서도 gpl아닌 프로그램도 있습니다.

http://sdconsult.no/linux/wine-doc/mfc-legal-issues.html
보니까 mfc 라이센스 관련내용이 잇네여
걱정되면 wine팀에서 구현한 MFC사용하능것도 좋을듯

즐린

즐린

vudghkzm의 이미지

적어주신 wine 문서에 의하면, MFC를 사용하게 되면 GPL을 사용하면 안되는 군요. 그러나 MFC 라이센스에 따라 달라질 수도 있겠네요.

그리고 glibc는 LGPL을 사용하기 때문에, glibc를 사용하는 소프트웨어가 GPL일 필요는 없습니다.

그나저나 windows api에 관련된 라이센스는 어디서 찾아봐야 하는걸까요?

danskesb의 이미지

GPLv3에는 시스템 라이브러리에 대한 규정이 있습니다.

http://wiki.kldp.org/wiki.php/GNU/GPLV3Translation wrote:
실행 가능한 저작물의 “시스템 라이브러리”는 (a)주요 구성요소의 일부가 아니면서 주요 구성요소를 패키징하는 일반적 형태에 포함된 것과 (b)그 주요 구성요소와의 작동을 가능토록 도와주기만 하거나, 혹은 표준 인터페이스를 구현하기만 하는 것으로써 그 구현이 대중에게 소스 코드 형태로 제공되는, 저작물 전체가 아닌 모든 것을 포함합니다. 이 맥락에서 “주 요 구성요소”는 실행 가능한 저작물을 구동할 수 있는 특정 OS의 주요 필수 구성요소(커널, 윈도 시스템, 등등)나 그 저작물을 생산하는 데에 사용된 컴파일러, 또는 저작물을 실행하기 위해 사용되는 목적코드 인터프리터를 의미합니다.

말씀하신 API는 시스템 라이브러리의 일부로 볼 수 있겠네요.

---- 절취선 ----
http://blog.peremen.name

vudghkzm의 이미지

답변 감사합니다.

그렇다면 MFC는 "시스템 라이브러리"로 볼 수는 없는 것인가요?

cynicjj의 이미지

eMule이 mfc를 사용한 gpl인것 같네요. 아닌가요?

vudghkzm의 이미지

그러네요. eMule이 MFC를 사용하고 있고, GPLv2를 사용하고 있네요. 그리고 GPL에 예외 사항도 전혀 두지 않았구요.

그럼 위의 wine documentation에서 말하고 있는건 도대체 뭔지;;

뭐가 옳고 그른지 알 수가 없네요. ㅠㅠ

cynicjj의 이미지

만들고 싶은게 있다면 만드세요.
이미 eMule이란 선례가 있잖아요.
제가 라이센스 조항을 세세히 읽어보지는 않았지만,
mfc를 사용하면 gpl이 안된다는건 상식적으로 말이 안 되 보이네요.

neogeo의 이미지

참 애매한 문제인데, mfc 는 문제가 되지 않을지도 모릅니다만 mfc 같은 상황을 막아야 하는 이유는

gpl 소스를 가져다 쓰면서 고칠부분을 라이브러리화 해서 링크하는 식으로만 만든뒤 링크 부분만 오픈하고 라이브러리 부분은 얼마든지 비공개로 할 여지가 남기 때문입니다.

그래서 특정 OS 에서 쓰지 않으면 어쩔 수 없는 시스템 라이브러리 일부만을 예외로 허용하는 것 입니다.

Neogeo - Future is Now.

Neogeo - Future is Now.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.