Commit 02dbe642 authored by Marc Shaw's avatar Marc Shaw Committed by Heinrich Lee Yu

Create a fake mimemagic gem

Issue: gitlab.com/gitlab-org/gitlab/-/issues/325851
MR: gitlab.com/gitlab-org/gitlab/-/merge_requests/57443

There is a current issue affecting mimemagic where it was
using a magic number dataset which turned out to be under
a GPL licence, which in turn meant the maintainer of mimemagic
had to switch to the same licence. We can not use this licence.
There are still dependencies in our gemfile which require mimemagic,
and instead of removing all these, we create a fake gem that we
require.
parent 344d8cd6
...@@ -276,6 +276,9 @@ gem 'charlock_holmes', '~> 0.7.7' ...@@ -276,6 +276,9 @@ gem 'charlock_holmes', '~> 0.7.7'
# Detect mime content type from content # Detect mime content type from content
gem 'ruby-magic', '~> 0.3' gem 'ruby-magic', '~> 0.3'
# Fake version of the gem to trick bundler
gem 'mimemagic', '0.3.5', path: 'vendor/shims/mimemagic', require: false
# Faster blank # Faster blank
gem 'fast_blank' gem 'fast_blank'
......
PATH
remote: vendor/shims/mimemagic
specs:
mimemagic (0.3.5)
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
...@@ -728,7 +733,6 @@ GEM ...@@ -728,7 +733,6 @@ GEM
mime-types (3.3.1) mime-types (3.3.1)
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2020.0512) mime-types-data (3.2020.0512)
mimemagic (0.3.5)
mini_histogram (0.3.1) mini_histogram (0.3.1)
mini_magick (4.10.1) mini_magick (4.10.1)
mini_mime (1.0.2) mini_mime (1.0.2)
...@@ -1482,6 +1486,7 @@ DEPENDENCIES ...@@ -1482,6 +1486,7 @@ DEPENDENCIES
marginalia (~> 1.10.0) marginalia (~> 1.10.0)
memory_profiler (~> 0.9) memory_profiler (~> 0.9)
method_source (~> 1.0) method_source (~> 1.0)
mimemagic (= 0.3.5)!
mini_magick (~> 4.10.1) mini_magick (~> 4.10.1)
minitest (~> 5.11.0) minitest (~> 5.11.0)
multi_json (~> 1.14.1) multi_json (~> 1.14.1)
......
---
title: Switch to using a fake mimemagic gem
merge_request: 57443
author:
type: other
source "https://rubygems.org"
# Specify your gem's dependencies in mimemagic.gemspec
gemspec
gem "rake", "~> 12.0"
The MIT License (MIT)
Copyright (c) 2021 GitLab B.V.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
This is a fake gem to prevent mimemagic from being included into GitLab.
require "bundler/gem_tasks"
task :default => :spec
require "mimemagic/version"
module MimeMagic
class Error < StandardError; end
raise Error, 'This gem should never be required'
end
module MimeMagic
VERSION = "0.3.5"
end
require_relative 'lib/mimemagic/version'
Gem::Specification.new do |spec|
spec.name = "mimemagic"
spec.version = MimeMagic::VERSION
spec.authors = ["Marc Shaw"]
spec.email = ["mshaw@gitlab.com"]
spec.summary = %q{MimeMagic shim}
spec.description = %q{A shim for mimemagic}
spec.license = "MIT"
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
end
spec.require_paths = ["lib"]
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment