New Upstream Release - ruby-marcel

Ready changes

Summary

Merged new upstream version: 1.0.2 (was: 1.0.1+dfsg).

Resulting package

Built on 2022-05-16T14:10 (took 2m15s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases ruby-marcel

Lintian Result

Diff

diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index d758c0c..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-language: ruby
-sudo: false
-cache: bundler
-
-# Bundler/RubyGems incompat on Ruby 2.5.0
-before_install: gem install bundler
-
-rvm:
-  - 2.3
-  - 2.4
-  - 2.5
-  - 2.6
-  - 2.7
-  - 3.0
-  - ruby-head
-
-matrix:
-  allow_failures:
-    - rvm: ruby-head
-  fast_finish: true
diff --git a/README.md b/README.md
index 8789b2a..ec06532 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,12 @@ Marcel::MimeType.for Pathname.new("example.png"), name: "example.ai"
 
 Marcel was extracted from Basecamp 3, in order to make our file detection logic both easily reusable but more importantly, easily testable. Test fixtures have been added for all of the most common file types uploaded to Basecamp, and other common file types too. We hope to expand this test coverage with other file types as and when problems are identified.
 
+## Contributing
+
+Marcel generates MIME lookup tables with `bundle exec rake tables`. MIME types are seeded from data found in `data/*.xml`. Custom MIMEs may be added to `data/custom.xml`, while overrides to the standard MIME database may be added to `lib/marcel/mime_type/definitions.rb`.
+
+Marcel follows the same contributing guidelines as [rails/rails](https://github.com/rails/rails#contributing).
+
 ## Testing
 
 The main test fixture files are split into two folders, those that can be recognised by magic numbers, and those that can only be recognised by name. Even though strictly unnecessary, the fixtures in both folders should all be valid files of the type they represent.
diff --git a/data/custom.xml b/data/custom.xml
index 058b351..42b5134 100644
--- a/data/custom.xml
+++ b/data/custom.xml
@@ -18,6 +18,14 @@
     </magic>
   </mime-type>
 
+  <mime-type type="application/x-ole-storage">
+    <sub-class-of type="application/x-tika-msoffice" />
+
+    <magic priority="50">
+      <match value="0xd0cf11e0a1b11ae1" type="string" offset="0:8" />
+    </magic>
+  </mime-type>
+
   <mime-type type="application/vnd.openxmlformats-officedocument.wordprocessingml.document">
     <sub-class-of type="application/x-tika-ooxml" />
 
@@ -72,7 +80,25 @@
     <magic priority="50">
       <match value="0x1a45dfa3" type="string" offset="0">
         <match value="\x42\x82" type="string" offset="4:4096">
-          <match value="webm" type="string" offset="4:4096" />
+          <match value="webm" type="string" offset="4:4096">
+            <match value="V_VP8" type="string" offset="4:4096" />
+            <match value="V_VP9" type="string" offset="4:4096" />
+          </match>
+        </match>
+      </match>
+    </magic>
+  </mime-type>
+
+  <mime-type type="audio/webm">
+    <sub-class-of type="application/x-matroska" />
+
+    <magic priority="50">
+      <match value="0x1a45dfa3" type="string" offset="0">
+        <match value="\x42\x82" type="string" offset="4:4096">
+          <match value="webm" type="string" offset="4:4096">
+            <match value="A_VORBIS" type="string" offset="4:4096" />
+            <match value="A_OPUS" type="string" offset="4:4096" />
+          </match>
         </match>
       </match>
     </magic>
@@ -99,4 +125,16 @@
 
     <glob pattern="*.woff2" />
   </mime-type>
+
+  <mime-type type="text/x-scss">
+    <glob pattern="*.scss" />
+
+    <sub-class-of type="text/plain"/>
+  </mime-type>
+
+  <mime-type type="text/x-sass">
+    <glob pattern="*.sass" />
+
+    <sub-class-of type="text/plain"/>
+  </mime-type>
 </mime-info>
diff --git a/debian/changelog b/debian/changelog
index 8283ed2..7aa405e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ruby-marcel (1.0.2-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 16 May 2022 14:09:20 -0000
+
 ruby-marcel (1.0.1+dfsg-2) unstable; urgency=medium
 
   * Team upload.
diff --git a/debian/patches/0002-skip-ttf-fixtures.patch b/debian/patches/0002-skip-ttf-fixtures.patch
index 4d717be..458f745 100644
--- a/debian/patches/0002-skip-ttf-fixtures.patch
+++ b/debian/patches/0002-skip-ttf-fixtures.patch
@@ -8,9 +8,11 @@ Bug: https://github.com/basecamp/marcel/issues/21
  test/test_helper.rb | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/test/test_helper.rb
-+++ b/test/test_helper.rb
-@@ -35,7 +35,7 @@
+Index: ruby-marcel/test/test_helper.rb
+===================================================================
+--- ruby-marcel.orig/test/test_helper.rb
++++ ruby-marcel/test/test_helper.rb
+@@ -35,7 +35,7 @@ class Marcel::TestCase < MiniTest::Test
            if File.file?(name)
              _, content_type, extra, extension = *name.match(/\A([^\/]+\/[^\/]*)\/?(.*)\.(\w+)\Z/)
              extra = nil if content_type[-content_type.size..-1] == extra
diff --git a/lib/marcel/mime_type/definitions.rb b/lib/marcel/mime_type/definitions.rb
index bba230c..022a77f 100644
--- a/lib/marcel/mime_type/definitions.rb
+++ b/lib/marcel/mime_type/definitions.rb
@@ -30,15 +30,37 @@ Marcel::MimeType.extend "application/vnd.apple.pages", extensions: %w( pages ),
 Marcel::MimeType.extend "application/vnd.apple.numbers", extensions: %w( numbers ), parents: "application/zip"
 Marcel::MimeType.extend "application/vnd.apple.keynote", extensions: %w( key ), parents: "application/zip"
 
+Marcel::MimeType.extend "audio/aac", extensions: %w( aac ), parents: "audio/x-aac"
+
+
 Marcel::MimeType.extend "image/vnd.dwg", magic: [[0, "AC10"]]
 
+Marcel::MimeType.extend "application/x-x509-ca-cert", magic: [[0, '-----BEGIN CERTIFICATE-----']], extensions: %w( pem ), parents: "application/x-x509-cert;format=pem"
+
+Marcel::MimeType.extend "image/avif", magic: [[4, "ftypavif"]], extensions: %w( avif )
 Marcel::MimeType.extend "image/heif", magic: [[4, "ftypmif1"]], extensions: %w( heif )
 Marcel::MimeType.extend "image/heic", magic: [[4, "ftypheic"]], extensions: %w( heic )
 
 Marcel::MimeType.extend "video/mp4", magic: [[4, "ftypisom"], [4, "ftypM4V "]], extensions: %w( mp4 m4v )
 
+Marcel::MimeType.extend "audio/flac", magic: [[0, 'fLaC']], extensions: %w( flac ), parents: "audio/x-flac"
+Marcel::MimeType.extend "audio/x-wav", magic: [[0, 'RIFF', [[8, 'WAVE']]]], extensions: %w( wav ), parents: "audio/vnd.wav"
+Marcel::MimeType.extend "audio/mpc", magic: [[0, "MPCKSH"]], extensions: %w( mpc )
+
 Marcel::MimeType.extend "font/ttf", magic: [[0, "\x00\x01\x00\x00"]], extensions: %w( ttf ttc )
 Marcel::MimeType.extend "font/otf", magic: [[0, "OTTO"]], extensions: %w( otf ), parents: "font/ttf"
 Marcel::MimeType.extend "application/vnd.adobe.flash.movie", magic: [[0, "FWS"], [0, "CWS"]], extensions: %w( swf )
 Marcel::MimeType.extend "application/sql", extensions: %w( sql )
 Marcel::MimeType.extend "text/vcard", magic: [[0, "BEGIN:VCARD"]], extensions: %w( vcf ), parents: "text/plain"
+
+Marcel::MimeType.extend(
+  "application/vnd.ms-access",
+  extensions: %w( mdb mde accdb accde ),
+  magic: [
+    [0, "\x00\x01\x00\x00\x53\x74\x61\x6e\x64\x61\x72\x64\x20\x4a\x65\x74\x20\x44\x42"], # \x00\x01\x00\xStandard Jet DB
+    [0, "\x00\x01\x00\x00\x53\x74\x61\x6e\x64\x61\x72\x64\x20\x41\x43\x45\x20\x44\x42"], # \x00\x01\x00\xStandard ACE DB
+  ],
+  parents: "application/x-msaccess"
+)
+
+Marcel::MimeType.extend "text/markdown", extensions: %w(md mdtext markdown mkd), parents: "text/x-web-markdown"
diff --git a/lib/marcel/version.rb b/lib/marcel/version.rb
index 854ac76..fe44424 100644
--- a/lib/marcel/version.rb
+++ b/lib/marcel/version.rb
@@ -1,3 +1,3 @@
 module Marcel
-  VERSION = "1.0.1"
+  VERSION = "1.0.2"
 end
diff --git a/marcel.gemspec b/marcel.gemspec
index 602993b..dfa1d35 100644
--- a/marcel.gemspec
+++ b/marcel.gemspec
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
   spec.homepage      = 'https://github.com/rails/marcel'
   spec.licenses      = %w[ MIT Apache-2.0 ]
 
-  spec.files         = Dir['lib/**/*', 'MIT-LICENSE', 'APACHE-LICENSE' 'README.md']
+  spec.files         = Dir['lib/**/*', 'MIT-LICENSE', 'APACHE-LICENSE', 'README.md']
   spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
   spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
   spec.require_paths = ['lib']
diff --git a/script/generate_tables.rb b/script/generate_tables.rb
index 5fc4438..bb83900 100755
--- a/script/generate_tables.rb
+++ b/script/generate_tables.rb
@@ -168,6 +168,10 @@ magics = (common_magics.compact + magics).uniq
 
 puts "# -*- coding: binary -*-"
 puts "# frozen_string_literal: true"
+puts ""
+puts "# This file is auto-generated. Instead of editing this file, please"
+puts "# add MIMEs to data/custom.xml or lib/marcel/mime_type/definitions.rb."
+puts ""
 puts "module Marcel"
 puts "  # @private"
 puts "  # :nodoc:"
diff --git a/test/fixtures/magic/application/vnd.ms-access/db.accdb b/test/fixtures/magic/application/vnd.ms-access/db.accdb
new file mode 100644
index 0000000..c49fe3f
Binary files /dev/null and b/test/fixtures/magic/application/vnd.ms-access/db.accdb differ
diff --git a/test/fixtures/magic/application/vnd.ms-access/db.accde b/test/fixtures/magic/application/vnd.ms-access/db.accde
new file mode 100644
index 0000000..c5b56fb
Binary files /dev/null and b/test/fixtures/magic/application/vnd.ms-access/db.accde differ
diff --git a/test/fixtures/magic/application/vnd.ms-access/db.mdb b/test/fixtures/magic/application/vnd.ms-access/db.mdb
new file mode 100644
index 0000000..3dc9745
Binary files /dev/null and b/test/fixtures/magic/application/vnd.ms-access/db.mdb differ
diff --git a/test/fixtures/magic/application/vnd.ms-access/db.mde b/test/fixtures/magic/application/vnd.ms-access/db.mde
new file mode 100644
index 0000000..0a85f4b
Binary files /dev/null and b/test/fixtures/magic/application/vnd.ms-access/db.mde differ
diff --git a/test/fixtures/magic/application/x-ole-storage/oft.oft b/test/fixtures/magic/application/x-ole-storage/oft.oft
new file mode 100644
index 0000000..263ca79
Binary files /dev/null and b/test/fixtures/magic/application/x-ole-storage/oft.oft differ
diff --git a/test/fixtures/magic/application/x-x509-ca-cert/x-x509-ca-cert.pem b/test/fixtures/magic/application/x-x509-ca-cert/x-x509-ca-cert.pem
new file mode 100644
index 0000000..dca303a
--- /dev/null
+++ b/test/fixtures/magic/application/x-x509-ca-cert/x-x509-ca-cert.pem
@@ -0,0 +1 @@
+-----BEGIN CERTIFICATE-----
diff --git a/test/fixtures/magic/audio/x-flac.flac b/test/fixtures/magic/audio/flac.flac
similarity index 100%
rename from test/fixtures/magic/audio/x-flac.flac
rename to test/fixtures/magic/audio/flac.flac
diff --git a/test/fixtures/magic/audio/mpc/musepack.mpc b/test/fixtures/magic/audio/mpc/musepack.mpc
new file mode 100644
index 0000000..88e4330
Binary files /dev/null and b/test/fixtures/magic/audio/mpc/musepack.mpc differ
diff --git a/test/fixtures/magic/audio/vnd.wave/wav.wav b/test/fixtures/magic/audio/vnd.wave/wav.wav
deleted file mode 100644
index 8dbde95..0000000
Binary files a/test/fixtures/magic/audio/vnd.wave/wav.wav and /dev/null differ
diff --git a/test/fixtures/magic/audio/webm/webm.webm b/test/fixtures/magic/audio/webm/webm.webm
new file mode 100644
index 0000000..9959429
Binary files /dev/null and b/test/fixtures/magic/audio/webm/webm.webm differ
diff --git a/test/fixtures/magic/audio/vnd.wave/x-wav.wav b/test/fixtures/magic/audio/x-wav.wav
similarity index 100%
rename from test/fixtures/magic/audio/vnd.wave/x-wav.wav
rename to test/fixtures/magic/audio/x-wav.wav
diff --git a/test/fixtures/magic/image/avif/avif.avif b/test/fixtures/magic/image/avif/avif.avif
new file mode 100644
index 0000000..c357186
Binary files /dev/null and b/test/fixtures/magic/image/avif/avif.avif differ
diff --git a/test/fixtures/name/application/json/json.json b/test/fixtures/name/application/json/json.json
index d86af17..aa0560f 100644
--- a/test/fixtures/name/application/json/json.json
+++ b/test/fixtures/name/application/json/json.json
@@ -1,3 +1,3 @@
 {
-  name: 'JSON'
+  "name": "JSON"
 }
diff --git a/test/fixtures/name/application/vnd.ms-access/db.accdb b/test/fixtures/name/application/vnd.ms-access/db.accdb
new file mode 100644
index 0000000..c49fe3f
Binary files /dev/null and b/test/fixtures/name/application/vnd.ms-access/db.accdb differ
diff --git a/test/fixtures/name/application/vnd.ms-access/db.accde b/test/fixtures/name/application/vnd.ms-access/db.accde
new file mode 100644
index 0000000..c5b56fb
Binary files /dev/null and b/test/fixtures/name/application/vnd.ms-access/db.accde differ
diff --git a/test/fixtures/name/application/vnd.ms-access/db.mdb b/test/fixtures/name/application/vnd.ms-access/db.mdb
new file mode 100644
index 0000000..3dc9745
Binary files /dev/null and b/test/fixtures/name/application/vnd.ms-access/db.mdb differ
diff --git a/test/fixtures/name/application/vnd.ms-access/db.mde b/test/fixtures/name/application/vnd.ms-access/db.mde
new file mode 100644
index 0000000..0a85f4b
Binary files /dev/null and b/test/fixtures/name/application/vnd.ms-access/db.mde differ
diff --git a/test/fixtures/name/application/x-x509-ca-cert/x-x509-ca-cert.pem b/test/fixtures/name/application/x-x509-ca-cert/x-x509-ca-cert.pem
new file mode 100644
index 0000000..dca303a
--- /dev/null
+++ b/test/fixtures/name/application/x-x509-ca-cert/x-x509-ca-cert.pem
@@ -0,0 +1 @@
+-----BEGIN CERTIFICATE-----
diff --git a/test/fixtures/name/audio/aac.aac b/test/fixtures/name/audio/aac.aac
new file mode 100644
index 0000000..11dc5b4
Binary files /dev/null and b/test/fixtures/name/audio/aac.aac differ
diff --git a/test/fixtures/name/audio/x-flac.flac b/test/fixtures/name/audio/flac.flac
similarity index 100%
rename from test/fixtures/name/audio/x-flac.flac
rename to test/fixtures/name/audio/flac.flac
diff --git a/test/fixtures/name/audio/mpc/musepack.mpc b/test/fixtures/name/audio/mpc/musepack.mpc
new file mode 100644
index 0000000..88e4330
Binary files /dev/null and b/test/fixtures/name/audio/mpc/musepack.mpc differ
diff --git a/test/fixtures/name/audio/vnd.wave/x-wav.wav b/test/fixtures/name/audio/x-wav.wav
similarity index 100%
rename from test/fixtures/name/audio/vnd.wave/x-wav.wav
rename to test/fixtures/name/audio/x-wav.wav
diff --git a/test/fixtures/name/text/css.css b/test/fixtures/name/text/css.css
new file mode 100644
index 0000000..4075f03
--- /dev/null
+++ b/test/fixtures/name/text/css.css
@@ -0,0 +1,3 @@
+html {
+  color: red;
+}
diff --git a/test/fixtures/name/text/markdown/sample.markdown b/test/fixtures/name/text/markdown/sample.markdown
new file mode 100644
index 0000000..2965834
--- /dev/null
+++ b/test/fixtures/name/text/markdown/sample.markdown
@@ -0,0 +1 @@
+# Hello World
diff --git a/test/fixtures/name/text/markdown/sample.md b/test/fixtures/name/text/markdown/sample.md
new file mode 100644
index 0000000..2965834
--- /dev/null
+++ b/test/fixtures/name/text/markdown/sample.md
@@ -0,0 +1 @@
+# Hello World
diff --git a/test/fixtures/name/text/markdown/sample.mdtext b/test/fixtures/name/text/markdown/sample.mdtext
new file mode 100644
index 0000000..2965834
--- /dev/null
+++ b/test/fixtures/name/text/markdown/sample.mdtext
@@ -0,0 +1 @@
+# Hello World
diff --git a/test/fixtures/name/text/markdown/sample.mkd b/test/fixtures/name/text/markdown/sample.mkd
new file mode 100644
index 0000000..2965834
--- /dev/null
+++ b/test/fixtures/name/text/markdown/sample.mkd
@@ -0,0 +1 @@
+# Hello World
diff --git a/test/fixtures/name/text/x-sass/sass.sass b/test/fixtures/name/text/x-sass/sass.sass
new file mode 100644
index 0000000..75eefb0
--- /dev/null
+++ b/test/fixtures/name/text/x-sass/sass.sass
@@ -0,0 +1,5 @@
+html
+  color: red
+  p
+    color: blue
+
diff --git a/test/fixtures/name/text/x-scss/scss.scss b/test/fixtures/name/text/x-scss/scss.scss
new file mode 100644
index 0000000..7cf38c0
--- /dev/null
+++ b/test/fixtures/name/text/x-scss/scss.scss
@@ -0,0 +1,7 @@
+html {
+  color: red;
+
+  p {
+    color: blue;
+  }
+}

More details

Full run details