1P by GN⁺ | ★ favorite | 댓글 1개
  • Winamp는 오래된 데스크톱 플레이어 코드를 공개해 외부 기여를 기대했지만, 한 달도 지나지 않아 GitHub 저장소 전체를 삭제하며 협업 시도가 흔들림
  • 공개 코드는 Winamp Collaborative License 1.0.1 아래 배포됐고, 수정본의 소스·바이너리 배포를 금지해 일반적인 오픈소스 방식과 거리가 있었음
  • 원래 Winamp 핵심 개발자였던 Justin Frankel은 라이선스를 “완전히 터무니없다”고 봤고, 포크를 막는 듯한 조건에도 저장소는 공개 당시 기준 최소 2,600회 포크
  • 개발자 검토 과정에서 다른 프로젝트 코드, SHOUTcast 서버 소스 유출 가능성, Git 이력에 남은 삭제 파일, Intel·Microsoft 독점 패키지 포함 가능성이 잇따라 드러남
  • Winamp는 매달 수천만 명의 Windows 사용자를 근거로 연 2회 주요 공식 버전을 계획했지만, 저장소 삭제와 논란으로 개발자 커뮤니티의 신뢰를 잃음

공개 한 달도 안 돼 삭제된 Winamp 소스 저장소

  • Winamp의 벨기에 소유사 Llama Group은 9월 24일 “Legacy Player Code” 소스를 공개함
    • 개발자들이 전문성, 아이디어, 열정을 기여해 Winamp를 발전시키도록 하려는 목적이었음
  • 이후 한 달도 지나지 않아 WinampDesktop GitHub 저장소가 전체 삭제됨
  • 삭제 전 저장소는 여러 문제에 부딪혔거나 이를 위반한 것으로 보였음
    • 서로 다른 코드 라이선스가 뒤섞여 있었음
    • 비오픈 소프트웨어 패키지의 소스 코드가 드러난 것으로 보였음
    • 오픈소스 커뮤니티에 나쁜 인상을 남김

“Collaborative” 라이선스의 제약

  • Winamp 코드는 9월 말 공개됐지만, 일반적인 의미의 오픈소스와는 거리가 있었음
  • Winamp Collaborative License (WCL) Version 1.0.1은 수정된 소프트웨어를 소스나 바이너리 형태로 배포하지 못하게 함
    • 공식 저장소 유지관리자만 소프트웨어와 수정본을 배포할 수 있음
    • 누구나 기여할 수 있지만, 배포 권한은 Winamp 쪽에만 남는 구조임
  • 원래 Winamp 핵심 개발자이자 Nullsoft 창립자인 Justin Frankel은 Q&A 사이트에서 기여 의향을 묻는 질문을 받음
    • Frankel은 라이선스 조건이 작성 방식상 “completely absurd”하다고 답함
    • 의도한 대로 해석하더라도 “terrible”하다며 “No thank you”라고 함

포크와 코드 검토에서 드러난 문제들

Windows 98 시대 플레이어와 현대 개발 플랫폼의 충돌

  • GitHub 이슈 스레드에는 Windows 98 시대 Winamp의 전성기 이후 코딩 방식이 크게 달라졌고, Winamp가 잘 이해하지 못하는 플랫폼에 코드를 급하게 올린 것 같다는 반응이 나옴
  • Winamp는 Napster, Limewire, Kazaa 같은 불법 MP3 네트워크와 비슷한 시기에 성장함
    • 잘못된 메타데이터가 붙은 고압축 음악을 정리하고 재생하는 더 나은 수단을 제공했음
  • 2013년 웹 종료 이후 Winamp 자산은 2014년 Radionomy에 인수됨
  • 2019년에는 로컬 음악 라이브러리와 팟캐스트·라디오 웹 스트리밍을 결합하려는 새 버전이 예정돼 있었음
  • 2022년에는 큰 업데이트가 나왔지만, 당시에도 앱은 여러 면에서 “ancient app”으로 평가됨
  • 2022년 말에는 음악 NFT 지원 기능도 추가됨

Llama Group의 계획과 남은 응답 공백

  • 브뤼셀 기반 Llama Group SA는 코드 공개 보도자료에서 매달 수천만 명이 Windows용 Winamp를 여전히 사용한다고 밝힘
  • 회사는 새 기능을 담은 연 2회 주요 공식 버전 출시를 계획함
  • Winamp for Creators는 아티스트나 레이블이 여러 플랫폼에서 음악, 라이선싱, 배포, 수익화를 관리하도록 하려는 서비스임
  • Llama Group은 직원이 약 100명이라고 밝혔지만, 약 30명에 가깝다는 반박도 있음
  • Winamp는 소스 코드 공개 당시와 저장소 삭제 이후 모두 논평 요청에 응답하지 않음

댓글과 토론

Hacker News 의견들
  • 이 저장소가 삭제되면서 잃은 게 많음. 코드는 이미 여기저기 퍼졌으니 그게 아니라, 서드파티 비자유 소프트웨어를 조각조각 지우려던 이슈, 풀 리퀘스트, 커밋 기록의 부조리 코미디가 사라진 게 아쉬움

    • 이슈는 아직 archive.org에 보존돼 있음. 예: https://web.archive.org/web/20241009234026/https://github.co...
    • 진짜로 그 과정이 펼쳐지는 걸 보는 게 웃겼음. 일부는 이유 없이 너무 가혹했던 것 같기도 함. 저장소 소유자는 반응도 빠르고 풀 리퀘스트 병합도 하고 있었음
    • 실제로 우리는 코드를 가진 적이 없다고 봐야 함. 제대로 된 라이선스가 없으면 그 코드는 내게 아무 쓸모가 없음
    • 미안하지만 이건 정말 난장판이었음. 사람들이 그런 식으로 저장소를 스팸처럼 뒤덮는 게 대체 어떻게 유용하다고 생각했는지 이해가 안 됨
    • 그래, 정말 라마 엉덩이를 제대로 걷어찼네…
  • 삭제되기 전 마지막 커밋 기준 저장소 미러가 여기 있음:
    https://git.cbraaten.dev/AtRiskRepos/winamp
    그리고 여기에는 복제할 수 있는 git bundle 파일도 있음:
    https://litter.catbox.moe/dwhadv.bundle

  • 관련 글: https://news.ycombinator.com/item?id=41662105
    Winamp에 수정된 GPL 코드가 포함되어 GPL을 위반함(github.com/winamp)
    mepian이 19일 전 올림, 18점 | 댓글 6개

    • 원래 이슈는 볼 수 없지만, 제목이 GPL 코드가 “수정됐다”는 점을 강조한 게 흥미로움. 사실 GPL에서는 그 사실이 중요하지 않음
      Winamp 플레이어에 수정 여부와 관계없이 GPL 코드가 조금이라도 들어 있었다면 그 GPL 코드의 파생 저작물이고, Winamp 사본을 받은 누구든 GPL 라이선스하의 전체 대응 소스 제공을 요구할 권리가 있음
    • 펼쳐 쓰면 이렇음:
      Winamp contained modified GPL code, violating the GPL - https://news.ycombinator.com/item?id=41662105 - 2024년 9월(댓글 6개)
      Winamp removed "No forking" restriction from license - https://news.ycombinator.com/item?id=41650355 - 2024년 9월(댓글 12개)
      Winamp Legacy player source code - https://news.ycombinator.com/item?id=41636804 - 2024년 9월(댓글 328개)
  • 누군가 자기 땅에서 선사시대 손도끼를 발견함. 당시 기준으로도 아주 훌륭한 손도끼였을 거라고 깨닫고, 모두가 인류 문명의 경이로움을 감상할 수 있게 박물관에 기증하기로 함
    워낙 훌륭한 도끼였으니 원 제작자는 잘 관리하고 깨끗하게 보관했겠지만, 세월이 흐르며 흙도 묻고 몇 가지 변형도 생겼음. 중요한 역사 유물을 망치고 싶지 않았던 발견자는 녹과 때를 그대로 둔 채 발견 상태 그대로 기증함
    박물관은 기증자에게 전시 라벨을 붙이라고 요구함. 그런데 기증자가 벨기에 사람이고 프랑스어만 해서, 도끼의 목적을 두고 심각한 오해가 생김
    전시가 처음 공개된 날 난리가 남. 더러운 선사시대 도끼가 현대 도끼에 적용되는 모든 규정을 위반한다며 소송하겠다고 위협하는 사람들이 나옴. 흙을 제거하려는 시도도 있었지만, 흙을 보존하는 방식으로만 이루어져 반대편을 더 격분시킴
    결국 전시는 박물관에서 철수됐지만, 다행히 많은 사람이 복사본과 3D 복제본을 만들어 개인 소장품으로 안전하게 보관하게 됨

    • 이 비유에서는 도끼를 박물관에 기증한 사람들이 원래 그 도끼를 만든 사람들이고, 그 도끼가 만들어졌을 때도 지금도 불법이었다고 보는 게 더 맞지 않나 싶음
      세부 사항을 완전히 놓쳤을 수도 있음. 많이 따라가진 않았으니 틀렸다면 바로잡아 줬으면 함
  • 그래서 상용 소프트웨어 공개가 드문 것임. 제대로 하려면 꽤 신중한 노력이 필요함. 그렇지 않으면 이런 참사가 됨

    • 물론 예전에 저작권 있는 코드를 불법으로 썼을수록, 상용 코드를 공개할 때 더 조심해야 함
    • 꼭 그렇진 않음. 이 경우에는 자기들 지휘 아래에서 직접 협업할 수 있게 소스 코드만 공유하고 싶었던 게 이유였음
      그래서 이해할 수 없고 앞뒤가 안 맞는 라이선스를 작성했고, 모두가 헛소리라고 지적하자 포기한 것임
    • 아니면 그냥 법을 어기지 않으면 됨
  • 언젠가 누가 “인터넷과 소프트웨어 라이선스가 어떻게 돌아가는지 몰라서 자기 발등을 찍는 법”이라는 책을 쓴다면, 여기에 또 하나의 이야기를 넣으면 됨
    뒤에 올라온 ArsTechnica 링크 중 하나에서 전직 개발자가 WA Legacy 개발자 4명이 해고됐고 자신도 곧 떠났다고 말했음. 그렇다면 공개 전에 코드를 감사하기 가장 좋은 위치에 있던, 그 코드를 아는 인력이 거의 없었거나 아예 없었을 가능성이 큼
    이건 단순히 자기 발등을 찍은 게 아니라 지뢰 위에서 춤춘 것처럼 보임

    • 선의로 공개된 상용 코드에는 어떤 예외가 있어야 할 것 같기도 함. 다만 회사가 코드 통제권을 유지하고 싶다면 그게 제대로 작동할지는 모르겠음
      소프트웨어가 작성된 방식 자체가 불법이었다면 이상적이진 않음. 그래도 코드를 공개해 두는 이점이 모든 라이선스 위반을 소송으로 끌고 가는 이점보다 커 보임
  • 하, 내가 그럴 줄 알았음:
    https://news.ycombinator.com/item?id=41645867

    아… 외부 의존성을 전부 벤더링했네. 외부 x86 바이너리도 잔뜩 포함해서. 32비트와 64비트 둘 다. 젠장.
    그리고 그 부분들의 라이선스를 제대로 처리했길 정말 바람…

  • 이 이야기는 땅주인과 동네 아이들 이야기와 비슷함. 땅주인이 아이들이 자기 들판에서 야구하도록 허락했는데, 아이들이 잔디가 안 깎였다고 불평하고 밤늦게까지 놀고, 몇몇은 화단을 훼손함. 변호사들은 안전 조치를 전부 하지 않으면 소송당할 거라고 말하고, 결국 땅주인은 “됐어” 하고 울타리를 세움

    • 이 비유에서는 오히려 땅주인이 들판 전체를 소유한 게 아니었고, 자기가 무엇을 소유하고 무엇을 소유하지 않았는지 제대로 관리하지 못한 책임이 아이들에게 돌아간 셈임
    • “변호사들이 말한다”는 게 미국에서는 흔한가? 이탈리아나 프랑스 사람이 이런 글을 쓰는 건 상상하기 어려움
    • 비유의 문제는 전부 만들어낸 이야기라는 데 있음
    • 어느 정도는 맞음. 이 경우엔 다른 사람들이 말했듯이 “집주인”이 꽤 의심스러운 일을 했음
  • 이런 식으로 라이선스를 꼬투리 잡는 건 지나쳐 보임. 직관에 반하고 GitHub 지침 위반인 건 이해하지만, 여러분, 이건 Winamp
    요즘 이걸 업데이트하거나 포크하는 데는, 사람들이 예전 구현 요령을 배울 기회를 주는 것 말고는 본질적 가치가 없음. 지금은 훨씬 낫고 오픈소스인 대안들이 있음. 2024년에 Winamp를 ‘취소’하는 일은 2000년 이후 내 인생 목표 목록에는 없었음
    여기에는 Internet Archive를 둘러싼 위선도 있음. 아카이브에 저작권 콘텐츠를 보관하는 건 괜찮지만, 회사가 자기 쪽에서 그렇게 하는 건 안 된다는 식임

    • 이건 라이선스 꼬투리가 아님. 라이브러리 자체가 모순적이었음. 카피레프트라고 주장하면서도 권리자 외에는 수정본 배포를 허용하지 않았음
      그리고 회사가 허락 없이 소스 코드를 공개해 벤더와의 계약을 어겼기 때문에 문제가 되는 것임. 그 소프트웨어 벤더가 Internet Archive에 문제가 있다면 DMCA 요청을 내면 됨
  • 이 소프트웨어는 재배포하지 말라면서, 부주의로 비공개 소프트웨어를 재배포하겠다는 건가. 남에게만 적용되는 규칙이고 자기에게는 아닌 셈임