gecko-dev/modules/pdfium/update.sh
Wes Kocher 7459418fd6 Backed out 16 changesets (bug 1364714) for android reftest failures in out-of-bounds-selectedindex.html a=backout
Backed out changeset b00b74e9d34b (bug 1364714)
Backed out changeset 1f52db2530d3 (bug 1364714)
Backed out changeset e3dda4fe9dae (bug 1364714)
Backed out changeset ff188112de35 (bug 1364714)
Backed out changeset 0e26a8c07cae (bug 1364714)
Backed out changeset e0cf94cb8666 (bug 1364714)
Backed out changeset 6f758a7673d3 (bug 1364714)
Backed out changeset 4b915e42b36d (bug 1364714)
Backed out changeset 80ca8faf1dac (bug 1364714)
Backed out changeset 2bd5a2d0ea09 (bug 1364714)
Backed out changeset aa5a89aac5ea (bug 1364714)
Backed out changeset 7634973c46ad (bug 1364714)
Backed out changeset b02a1d99e603 (bug 1364714)
Backed out changeset a297dc40177e (bug 1364714)
Backed out changeset 40e902ed7dbe (bug 1364714)
Backed out changeset d653fc499c9b (bug 1364714)

MozReview-Commit-ID: AyHF7oPwAs4
2017-08-21 16:16:29 -07:00

141 lines
4.6 KiB
Bash

#!/bin/sh
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Script to update the mozilla in-tree copy of the PDFium library.
# Run this within the /modules/pdfium directory of the source tree.
set -e
COMMIT_SELECTOR=""
COMMIT=""
COMMIT_DATE=""
print_help() {
echo "usage: ./update.sh [--commit COMMIT]"
echo ""
echo "Update Tool for PDFium Library"
echo "optional arguments:"
echo " --commit COMMIT specify a commit hash or a branch name (default: master)"
}
checkout_commit() {
if [ -d "pdfium" ]; then
echo "Removing pdfium"
rm -rf pdfium
fi
echo "Downloading pdfium"
git clone https://pdfium.googlesource.com/pdfium
echo "Parsing $1"
if [[ $1 =~ ^[0-9A-Fa-f]+$ ]]; then
COMMIT=$(git -C pdfium rev-parse "$1")
else
COMMIT=$(git -C pdfium rev-parse remotes/origin/"$1")
fi
COMMIT_DATE=$(git -C pdfium show -s --format=%ci "$COMMIT")
echo "Checking out $COMMIT"
git -C pdfium checkout "$COMMIT"
}
cleanup_files() {
# Remove git source control files.
echo "Removing pdfium/.git and pdfium/.gitignore"
rm -rf pdfium/.git
rm pdfium/.gitignore
# We remove PDFium's copy of FreeType and link directly to our in-tree copy
# at /modules/freetype2.
# (Our in-tree copy of FreeType is kept up-to-date and the FreeType API is
# generally backwards compatible, so it is unlikely that our copy of the
# PDFium source will be incompatible with our in-tree copy of FreeType.)
echo "Removing pdfium/third_party/freetype"
rm -rf pdfium/third_party/freetype
# We link PDFium to our in-tree copy of libjpeg at /media/libjpeg
echo "Removing pdfium/third_party/libjpeg"
rm -rf pdfium/third_party/libjpeg
# We link PDFium to our in-tree copy of zlib at /modules/zlib
echo "Removing pdfium/third_party/zlib_v128"
rm -rf pdfium/third_party/zlib_v128
# We don't use libpng since the XFA features are disabled.
echo "Removing pdfium/third_party/libpng16"
rm -rf pdfium/third_party/libpng16
# We don't use libtiff since the XFA features are disabled.
echo "Removing pdfium/third_party/libtiff"
rm -rf pdfium/third_party/libtiff
# We don't use pymock since we don't run the pymock based tests.
echo "Removing pdfium/third_party/pymock"
rm -rf pdfium/third_party/pymock
# We don't currently need PDfium to support JPEG 2000 since we are not
# currently using PDFium as a general PDF viewer. Currently we only
# process PDF files generated by SkiaPDF, and SkiaPDF doesn't output
# JPEG 2000 images.
echo "Removing pdfium/third_party/libopenjpeg20"
rm -rf pdfium/third_party/libopenjpeg20
# We don't currently use any testing data or any testing programs of PDFium.
echo "Removing pdfium/test and pdfium/testing"
rm -rf pdfium/test
rm -rf pdfium/testing
# We don't need XFA implementations since the XFA features are disabled.
echo "Removing pdfium/xfa"
rm -rf pdfium/xfa
}
apply_patches() {
# Patch to fix build errors due to lacking GDI+ prerequisite headers
echo "Applying patches/bug1368948_gdiplus_prerequisite.patch"
patch -p3 < patches/bug1368948_gdiplus_prerequisite.patch
# Patch to use freetype library within Gecko
echo "Applying patches/bug1368948_use_gecko_freetype.patch"
patch -p3 < patches/bug1368948_use_gecko_freetype.patch
# Patch to use libjpeg library within Gecko
echo "Applying patches/bug1368948_use_gecko_libjpeg.patch"
patch -p3 < patches/bug1368948_use_gecko_libjpeg.patch
# Patch to use zlib library within Gecko
echo "Applying patches/bug1368948_use_gecko_zlib.patch"
patch -p3 < patches/bug1368948_use_gecko_zlib.patch
# Patch to remove openjpeg support
echo "Applying patches/bug1368948_remove_openjpeg.patch"
patch -p3 < patches/bug1368948_remove_openjpeg.patch
# Patch to avoid using GDIPlusExt while rendering EMF
echo "Applying patches/bug1367948_avoid_using_GDIPlusExt.patch"
patch -p3 < patches/bug1367948_avoid_using_GDIPlusExt.patch
}
update_readme() {
echo "Updating README_MOZILLA"
PREFIX="The git commit ID last used to import was"
perl -p -i -e "s/${PREFIX} [0-9A-Fa-f]+ \(.+\)/${PREFIX} ${COMMIT} (${COMMIT_DATE})/" README_MOZILLA
}
if [ "$#" == 0 ]; then
COMMIT_SELECTOR="master"
elif [ "$#" == 2 -a "$1" == "--commit" ]; then
COMMIT_SELECTOR="$2"
else
print_help
exit 1
fi
cd $(dirname $0)
checkout_commit "$COMMIT_SELECTOR"
cleanup_files
apply_patches
update_readme