mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
7459418fd6
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
141 lines
4.6 KiB
Bash
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
|