Rails waves goodbye to mimemagic, welcomes Marcel to fix GPL MIME drama

If the license doesn't fit, you must commit

The maintainers of Rails, a Ruby-based framework for making web apps, have released three new versions to resolve a software licensing conflict that surfaced last week.

A Rails component called Active Storage included a dependency called mimemagic, which turned out to have been distributed under the wrong license. The mimemagic software library provided a component of Rails called Active Storage with mime type data – used to identify file formats – and was initially distributed under an MIT license.

But mimemagic has a dependency of its own called shared-mime-info that is distributed under the GPLv2 license. Under the terms of the GPLv2 license, mimemagic should have been GPLv2 licensed as well.

When the author mimemagic learned of the error, he withdrew the previous MIT-licensed version of his code, breaking many app build processes, and issued new versions under GPLv2.

Railway crash

Ruby off the Rails: Code library yanked over license blunder, sparks chaos for half a million projects


That proved unsatisfactory for Rails and other projects that preferred or required the MIT license because they don't want to be obliged to release their own code incorporating GPL source code under the same license. Thus began two days of trying to figure out how to replace a library incorporated into 172 other packages and found in over half a million software repositories.

Some developers created a revised version of mimemagic that removed the GPLv2 licensed data and made the software compliant with the MIT license once again. But the Rails team ultimately decided to drop mimemagic for another library called Marcel.

Late Friday, Rails 5.2.5, and were posted with a revised version of its Active Storage service that replaces its mimemagic dependency with Marcel 1.0.0.

"Before 1.0.0, Marcel – which is distributed under the terms of the MIT License, like Rails – indirectly depended on MIME type data released under the incompatible GNU General Public License," explained George Claghorn, a developer at Rails creator Basecamp, in a blog post announcing the release. "Marcel 1.0.0 instead directly packages MIME type data adapted from Apache Tika, released under the permissive and compatible Apache License 2.0."

A bit of work was required to make this happen. Marcel was essentially a wrapper around mimemagic so parts of it had to be adapted to be put under the MIT license. Marcel's table of mime signature data (known as magic number signatures) now comes from Apache Tika and thus is free of the GPLv2. ®

Similar topics

Other stories you might like

  • We can unify HPC and AI software environments, just not at the source code level

    Compute graphs are the way forward

    Register Debate Welcome to the latest Register Debate in which writers discuss technology topics, and you the reader choose the winning argument. The format is simple: we propose a motion, the arguments for the motion will run this Monday and Wednesday, and the arguments against on Tuesday and Thursday. During the week you can cast your vote on which side you support using the poll embedded below, choosing whether you're in favour or against the motion. The final score will be announced on Friday, revealing whether the for or against argument was most popular.

    This week's motion is: A unified, agnostic software environment can be achieved. We debate the question: can the industry ever have a truly open, unified, agnostic software environment in HPC and AI that can span multiple kinds of compute engines?

    Arguing today FOR the motion is Rob Farber, a global technology consultant and author with an extensive background in HPC and in developing machine-learning technology that he applies at national laboratories and commercial organizations. Rob can be reached at info@techenablement.com.

    Continue reading
  • But why that VPN? How WireGuard made it into Linux

    Even the best of ideas can take their own sweet time making it into the kernel

    Maybe someday – maybe – Zero Trust will solve many of our network security problems. But for now, if you want to make sure you don't have an eavesdropper on your network, you need a Virtual Private Network (VPN).

    There's only one little problem with commercial VPNs: many of them are untrustworthy. So, what can you do? Well, run your own of course is the open-source answer. And, today, your VPN of choice is Linux's built-in VPN: WireGuard.

    Why WireGuard rather than OpenVPN or IKEv2? Because it's simpler to implement while maintaining security and delivering faster speeds. And, when it comes to VPNs, it's all about balancing speed and security.

    Continue reading
  • Boffins demonstrate a different kind of floppy disk: A legless robot that hops along a surface

    This is fine

    Those of us who fear future enslavement by robot overlords may have one more reason not to sleep at night: engineers have demonstrated a few of the legless, floppy variety making some serious leaps.

    Animated pancake-like droids have demonstrated their ability to execute a series of flops in a fashion their creators – soft robotics engineers based in China – describe as "rapid, continuous, and steered jumping."

    "Jumping is an important locomotion function to extend navigation range, overcome obstacles, and adapt to unstructured environments," Rui Chen of Chongqing University and Huayan Pu of Shanghai University said.

    Continue reading

Biting the hand that feeds IT © 1998–2021