Bug 1284589 - Move mp4parse source to match upstream. r?kinetik draft
authorRalph Giles <giles@mozilla.com>
Tue, 05 Jul 2016 11:08:37 -0700
changeset 384167 23bcb438c27ee455482c35207a80a55a7a186416
parent 384060 dbb31bcad5a1f60a35b5600ea1578d9b9fa55237
child 384168 630cde5991cf7cca00c3be1cb41e81f30a14531a
child 384208 cba18c7a453c09383d646bddc10072192259d423
push id22186
push userbmo:giles@thaumas.net
push dateTue, 05 Jul 2016 18:19:05 +0000
reviewerskinetik
bugs1284589
milestone50.0a1
Bug 1284589 - Move mp4parse source to match upstream. r?kinetik Make Cargo.toml, build.rs and standard cargo source package layout available in-tree to facilitate testing cargo-driven builds of rust code. Update the moz.build script to build using plain rustc as before, but referencing the new source location. MozReview-Commit-ID: 11zuebic9tU
media/libstagefright/binding/byteorder-mod.patch
media/libstagefright/binding/mp4parse-mod.patch
media/libstagefright/binding/update-rust.sh
media/libstagefright/moz.build
--- a/media/libstagefright/binding/byteorder-mod.patch
+++ b/media/libstagefright/binding/byteorder-mod.patch
@@ -1,12 +1,12 @@
-diff --git a/media/libstagefright/binding/mp4parse/byteorder/mod.rs b/media/libstagefright/binding/mp4parse/byteorder/mod.rs
+diff --git a/media/libstagefright/binding/mp4parse/src/byteorder/mod.rs b/media/libstagefright/binding/mp4parse/src/byteorder/mod.rs
 index a25bab6..13db30a 100644
---- a/media/libstagefright/binding/mp4parse/byteorder/mod.rs
-+++ b/media/libstagefright/binding/mp4parse/byteorder/mod.rs
+--- a/media/libstagefright/binding/mp4parse/src/byteorder/mod.rs
++++ b/media/libstagefright/binding/mp4parse/src/byteorder/mod.rs
 @@ -36,24 +36,17 @@ assert_eq!(wtr, vec![5, 2, 0, 3]);
  ```
  */
  
 -#![crate_name = "byteorder"]
  #![doc(html_root_url = "http://burntsushi.net/rustdoc/byteorder")]
  
 -#![cfg_attr(not(feature = "std"), no_std)]
@@ -36,20 +36,20 @@ index a25bab6..13db30a 100644
  
  macro_rules! read_num_bytes {
      ($ty:ty, $size:expr, $src:expr, $which:ident) => ({
 -        assert!($size == ::core::mem::size_of::<$ty>());
 +        assert!($size == ::std::mem::size_of::<$ty>());
          assert!($size <= $src.len());
          let mut data: $ty = 0;
          unsafe {
-diff --git a/media/libstagefright/binding/mp4parse/byteorder/new.rs b/media/libstagefright/binding/mp4parse/byteorder/new.rs
+diff --git a/media/libstagefright/binding/mp4parse/src/byteorder/new.rs b/media/libstagefright/binding/mp4parse/src/byteorder/new.rs
 index b5f3770..b32f97b 100644
---- a/media/libstagefright/binding/mp4parse/byteorder/new.rs
-+++ b/media/libstagefright/binding/mp4parse/byteorder/new.rs
+--- a/media/libstagefright/binding/mp4parse/src/byteorder/new.rs
++++ b/media/libstagefright/binding/mp4parse/src/byteorder/new.rs
 @@ -1,6 +1,6 @@
  use std::io::{self, Result};
  
 -use ByteOrder;
 +use byteorder::ByteOrder;
  
  /// Extends `Read` with methods for reading numbers. (For `std::io`.)
  ///
--- a/media/libstagefright/binding/mp4parse-mod.patch
+++ b/media/libstagefright/binding/mp4parse-mod.patch
@@ -1,12 +1,12 @@
-diff --git a/media/libstagefright/binding/mp4parse/lib.rs b/media/libstagefright/binding/mp4parse/lib.rs
+diff --git a/media/libstagefright/binding/mp4parse/src/lib.rs b/media/libstagefright/binding/mp4parse/src/lib.rs
 index af62402..7c8e382 100644
---- a/media/libstagefright/binding/mp4parse/lib.rs
-+++ b/media/libstagefright/binding/mp4parse/lib.rs
+--- a/media/libstagefright/binding/mp4parse/src/lib.rs
++++ b/media/libstagefright/binding/mp4parse/src/lib.rs
 @@ -4,7 +4,7 @@
  // License, v. 2.0. If a copy of the MPL was not distributed with this
  // file, You can obtain one at https://mozilla.org/MPL/2.0/.
  
 -extern crate byteorder;
 +mod byteorder; // 'extern crate' upstream.
  use byteorder::ReadBytesExt;
  use std::error::Error as ErrorTrait; // For Err(e) => e.description().
--- a/media/libstagefright/binding/update-rust.sh
+++ b/media/libstagefright/binding/update-rust.sh
@@ -13,30 +13,32 @@ echo "Fetching sources..."
 rm -rf _upstream
 git clone https://github.com/mozilla/mp4parse-rust _upstream/mp4parse
 pushd _upstream/mp4parse
 git checkout ${VER}
 echo "Constructing C api header..."
 cargo build
 popd
 rm -rf mp4parse
-mkdir mp4parse
-cp _upstream/mp4parse/src/*.rs mp4parse/
+mkdir -p mp4parse/src
+cp _upstream/mp4parse/Cargo.toml mp4parse/
+cp _upstream/mp4parse/build.rs mp4parse/
+cp _upstream/mp4parse/src/*.rs mp4parse/src/
 cp _upstream/mp4parse/include/mp4parse.h include/
 
 # TODO: download deps from crates.io.
 
 git clone https://github.com/BurntSushi/byteorder _upstream/byteorder
 pushd _upstream/byteorder
 git checkout 0.5.3
 popd
-rm -rf mp4parse/byteorder
-mkdir mp4parse/byteorder
-cp _upstream/byteorder/src/lib.rs mp4parse/byteorder/mod.rs
-cp _upstream/byteorder/src/new.rs mp4parse/byteorder/new.rs
+rm -rf mp4parse/src/byteorder
+mkdir mp4parse/src/byteorder
+cp _upstream/byteorder/src/lib.rs mp4parse/src/byteorder/mod.rs
+cp _upstream/byteorder/src/new.rs mp4parse/src/byteorder/new.rs
 
 echo "Applying patches..."
 patch -p4 < byteorder-mod.patch
 patch -p4 < mp4parse-mod.patch
 
 echo "Cleaning up..."
 rm -rf _upstream
 
--- a/media/libstagefright/moz.build
+++ b/media/libstagefright/moz.build
@@ -76,17 +76,17 @@ SOURCES += [
     'system/core/libutils/RefBase.cpp',
     'system/core/libutils/String16.cpp',
     'system/core/libutils/String8.cpp',
     'system/core/libutils/VectorImpl.cpp',
 ]
 
 if CONFIG['MOZ_RUST']:
     SOURCES += [
-        'binding/mp4parse/lib.rs',
+        'binding/mp4parse/src/lib.rs',
     ]
     EXPORTS += [
         'binding/include/mp4parse.h',
     ]
 
 UNIFIED_SOURCES += [
     'binding/Adts.cpp',
     'binding/AnnexB.cpp',