Rails mimemagic 0.3.5 could not be found 에러 해결, 그 이면

Error

지난주 Rails 앱에 수정할게 있어서 작업을 진행했었는데, 아래와 같은 에러를 겪었습니다 😭

Your bundle is locked to mimemagic (0.3.5), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of mimemagic (0.3.5) has removed it. You'll need to update your
bundle to a version other than mimemagic (0.3.5) that hasn't been removed in order to install.

mimemagic의 버전의 문제인데, rails 코어 라이브러리에서 문제가 나온다는게 좀 이상했었습니다. 그래서 뒤적뒤적 찾아서 해결했고, 이면에 라이선스와 관련된 이야기가 있어서 글로 풀어봅니다.

Problem

저도 정확하게 히스토리를 아는건 아니지만 대충 찾아본 내용으론 mimemagic이 GPL-2.0으로 릴리즈(3.0.6) 하면서 라이선스 정책에 따라 기존(3.0.5) 아래의 버전이 Archived된 것 같습니다.

https://github.com/rails/rails/issues/41750

For now I decided to archive the project. The last released versions are 0.3.6 and 0.4.0 released under the GPL-2.0.

그래서 0.3.5 버전까지 사용중이던 mimemagic은 gem 이 없기 떄문에 에러가 발생한 것 같은데, 여기서 문제는 mimemagic이 rails core 라이브러리이고 버전 명시가 있었던 없었던 0.3.5가 최신이였던 시기가 있었기 떄문에 대다수의 Rails 서버는 동일한 에러를 겪었을거란 거죠..

I did not understand the root cause of yanked versions, but what is the solution for this scenario? Force everyone in the world to upgrade to 0.3.6? I will ask this in mimemagic repo, but the repo was archived (that I also not understand why was archived). Crazy day!

반응

Solution

효과적인 대응은 아니였던 것 같고 커뮤니티 자체의 반응도 안좋습니다. 어쩄던 우리는 일단 문제를 해결해야하니 0.3.6 이상으로 업데이트 해야합니다. 다만 아래에도 한번 이야기하겠지만 0.3.6과 0.3.7 이상 버전은 라이선스가 다르기 떄문에 가급적이면 0.3.7 이상으로 업데이트 하시는걸 추천합니다.

Gemfile

gem 'mimemagic', '~> 0.3.10'

0.3.6은 GPL-2.0, 0.3.7 이상부턴 다시 MIT로 돌아왔네요.

물론 최신버전은 MIT라 괜찮겠지만, 라이선스 이슈가 있었던지라 조금 경계는 필요할 것 같아요.

References