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
--- 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',