Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(723)

Unified Diff: import_from_android.sh

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « config/x64/openssl/opensslconf.h ('k') | openssl.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: import_from_android.sh
diff --git a/import_from_android.sh b/import_from_android.sh
deleted file mode 100755
index 60420d841d40badc5212c0a371d0ff9a0530ebc3..0000000000000000000000000000000000000000
--- a/import_from_android.sh
+++ /dev/null
@@ -1,483 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Sanitize environment.
-set -e
-export LANG=C
-export LC_ALL=C
-
-PROGDIR=$(dirname "$0")
-PROGNAME=$(basename "$0")
-
-# Defaults
-VERBOSE=1
-
-. "$PROGDIR/openssl-chromium.config"
-
-# Print error message and exit script.
-# $1+: Error message.
-panic () {
- echo "ERROR: $@"
- exit 1
-}
-
-# $1: Variable name
-# Output: variable value.
-var_value () {
- # NOTE: Don't use 'echo' here, it is sensitive to options like -n.
- eval printf \"%s\\n\" \$$1
-}
-
-# Print a message if verbosity is sufficiently high.
-# $1: Verbosity threshold, only if '$VERBOSE > $1' does this print.
-# $2+: Message.
-dump_n () {
- local LEVEL=$1
- shift
- if [ "$VERBOSE" -gt "$LEVEL" ]; then
- printf "%s\n" "$@"
- fi
-}
-
-# Print a message, unless --quiet was used.
-dump () {
- dump_n 0 "$@"
-}
-
-# Print a message if --verbose was used.
-log () {
- dump_n 1 "$@"
-}
-
-# Print a message if --verbose --verbose was used.
-log2 () {
- dump_n 2 "$@"
-}
-
-# Run a command silently, unless --verbose is used.
-# More specifically:
-# - By default, this runs the command but redirects its stdout/stderr
-# to /dev/null to avoid printing anything.
-# - If --verbose is used, this prints the command's name, and stderr
-# will not be redirected.
-# - If '--verbose --verbose' is used, this prints the commands and its
-# complete output.
-# $1+: Command
-# Return: Command status
-run () {
- if [ "$VERBOSE" -gt 1 ]; then
- echo "COMMAND: $@"
- fi
- case $VERBOSE in
- 0)
- "$@" > /dev/null 2>&1
- ;;
- 1)
- "$@" > /dev/null
- ;;
- *)
- "$@"
- ;;
- esac
-}
-
-# Support cleaning up stuff when the script exits, even in case of
-# error.
-_ALL_CLEANUPS=
-
-clean_atexit () {
- local CLEANUPS CLEANUP
- CLEANUPS=$_ALL_CLEANUPS
- _ALL_CLEANUPS=
- for CLEANUP in $CLEANUPS; do
- ($CLEANUP)
- done
- exit $1
-}
-
-trap "clean_atexit 0" EXIT
-trap "clean_atexit \$?" HUP INT QUIT TERM
-
-# Add a cleanup function to the list of cleanups that will be run when
-# the script exits.
-atexit () {
- # Prepend to ensure that the cleanup steps are performed in reverse
- # order or registration.
- _ALL_CLEANUPS="$* $_ALL_CLEANUPS"
-}
-
-# Support code to write into a gyp file
-_GYP_MARGIN=""
-
-# Increment margin of gyp printer.
-incr_gyp_margin () {
- _GYP_MARGIN="$_GYP_MARGIN "
-}
-
-decr_gyp_margin () {
- _GYP_MARGIN=$(echo "$_GYP_MARGIN" | cut --bytes=3-)
-}
-
-print_gyp () {
- printf "%s%s\n" "$_GYP_MARGIN" "$@"
-}
-
-# This prints a list variable definition in a gyp file.
-# $1: Variable name (e.g. 'openssl_common_defines')
-# $2+: List items (e.g. defines)
-print_gyp_variable () {
- local VARNAME=$1
- local VALUE
- shift
- print_gyp "'$VARNAME': ["
- for VALUE; do
- print_gyp " '$VALUE',"
- done
- print_gyp "],"
-}
-
-# Same as print_gyp_variable, but for source file lists, this
-# prepends openssl/ as required by the Chromium build to each item
-# in the list.
-# $1: Variable name (e.g. 'openssl_common_sources')
-# $2+: List items (source file names).
-print_gyp_source_variable () {
- local VARNAME=$1
- local VALUE
- shift
- print_gyp "'$VARNAME': ["
- for VALUE; do
- print_gyp " 'openssl/$VALUE',"
- done
- print_gyp "],"
-}
-
-# Print usage instructions.
-usage () {
- echo \
-"Usage: $PROGNAME [options]
-
-This script is used to regenerate the content of the Chromium
-third_party/openssl/ directory according to the configuration file
-named 'openssl-chromium.config'.
-
-In particular, it will perform the following steps:
-
- 1) Download the Android sources from the AOSP git servers.
-
- 2) Add Chromium-specific patches to the Android source tree.
- (they must be under patches.chromium/ in $PROGDIR).
-
- 3) Download a versioned openssl package from the official OpenSSL
- servers, and check its MD5. The version is taken from the
- 'openssl.version' file in the Android source tree.
-
- 4) Run the Android 'import_openssl.sh' script that rebuilds all sources
- from a clean slate.
-
- 5) Generate the 'openssl.gypi' that contains gyp-specific declarations
- for the library.
-
- 6) Generate 64-bit compatible opensslconf.h header.
-
-Valid options are the following (defaults are in brackets):
-
- --help|-h|-? Display this message.
- --aosp-git=<url> Change git source for Android repository.
- [$ANDROID_OPENSSL_GIT_SOURCE]
- --aosp-commit=<name> Specify git commit or branch name [$ANDROID_OPENSSL_GIT_COMMIT]
- --temp-dir=<path> Specify temporary directory, will not be cleaned.
- [<random-temp-file-cleaned-on-exit>]
- --verbose Increase verbosity.
- --quiet Decrease verbosity.
-"
- exit 1
-}
-
-# Parse command-line.
-DO_HELP=
-
-for OPT; do
- OPTARG=$()
- case $OPT in
- --help|-h|-?)
- DO_HELP=true
- ;;
- --aosp-commit=*)
- ANDROID_OPENSSL_GIT_COMMIT=${OPT#--aosp-commit=}
- if [ -z "$ANDROID_OPENSSL_GIT_COMMIT" ]; then
- panic "Missing option value: $OPT"
- fi
- ;;
- --aosp-git=*)
- ANDROID_OPENSSL_GIT_SOURCE=${OPT#--aosp-git=}
- if [ -z "$ANDROID_OPENSSL_GIT_SOURCE" ]; then
- panic "Missing option value: $OPT"
- fi
- ;;
- --temp-dir=*)
- TEMP_DIR=${OPT#--temp-dir=}
- if [ -z "$TEMP_DIR" ]; then
- panic "Missing option value: $OPT"
- fi
- ;;
- --quiet)
- VERBOSE=$(( $VERBOSE - 1 ))
- ;;
- --verbose)
- VERBOSE=$(( $VERBOSE + 1 ))
- ;;
- -*)
- panic "Invalid option '$OPT', see --help for details."
- ;;
- *)
- panic "This script doesn't take parameters. See --help for details."
- ;;
- esac
-done
-
-if [ "$DO_HELP" ]; then
- usage
-fi
-
-# Create temporary directory. Ensure it's always cleaned up on exit.
-if [ -z "$TEMP_DIR" ]; then
- TEMP_DIR=$(mktemp -d)
- clean_tempdir () {
- rm -rf "$TEMP_DIR"
- }
- atexit clean_tempdir
- log "Temporary directory created: $TEMP_DIR"
-else
- log "Using user-provided temp directory: $TEMP_DIR"
-fi
-
-GIT_FLAGS=
-case $VERBOSE in
- 0|1)
- GIT_CLONE_FLAGS="--quiet"
- GIT_CHECKOUT_FLAGS="--quiet"
- CURL_FLAGS="-s"
- ;;
- 2)
- GIT_CLONE_FLAGS=""
- GIT_CHECKOUT_FLAGS=""
- CURL_FLAGS=""
- ;;
- *)
- GIT_CLONE_FLAGS="--verbose"
- GIT_CHECKOUT_FLAGS=""
- CURL_FLAGS=""
- ;;
-esac
-
-BUILD_DIR=$TEMP_DIR/build
-mkdir -p "$BUILD_DIR" && rm -rf "$BUILD_DIR"/*
-
-# Download the Android sources.
-ANDROID_SRC_DIR=$BUILD_DIR/android-openssl
-dump "Downloading Android sources"
-log "Downloading branch $ANDROID_OPENSSL_GIT_COMMIT from: $ANDROID_OPENSSL_GIT_SOURCE"
-(
- run mkdir -p $ANDROID_SRC_DIR
- run cd $ANDROID_SRC_DIR
- run git clone $GIT_CLONE_FLAGS $ANDROID_OPENSSL_GIT_SOURCE .
- run git checkout $GIT_CHECKOUT_FLAGS $ANDROID_OPENSSL_GIT_COMMIT
- run rm -rf .git
-)
-
-# Apply chromium-specific patches located in patches.chromium
-CHROMIUM_PATCHES_DIR=$PROGDIR/patches.chromium
-if [ ! -d "$CHROMIUM_PATCHES_DIR" ]; then
- dump "No Chromium-specific patches to apply."
-else
- dump "Applying Chromium-specific patches:"
- CHROMIUM_PATCHES=$(/bin/ls $CHROMIUM_PATCHES_DIR/*.patch 2>/dev/null)
- for CHROMIUM_PATCH in $CHROMIUM_PATCHES; do
- dump "Applying: $CHROMIUM_PATCH"
- (cd $ANDROID_SRC_DIR && run patch -p1) < $CHROMIUM_PATCH
- done
-fi
-
-# Get the openssl version
-. $ANDROID_SRC_DIR/openssl.version
-if [ -z "$OPENSSL_VERSION" ]; then
- panic "Could not find OPENSSL_VERSION definition from $ANDROID_SRC_DIR!"
-fi
-dump "Found OpenSSL version: $OPENSSL_VERSION"
-
-# Download OpenSSL package
-DOWNLOAD_DIR=$BUILD_DIR/download
-mkdir -p "$DOWNLOAD_DIR"
-
-OPENSSL_PACKAGE=openssl-$OPENSSL_VERSION.tar.gz
-dump "Downloading $OPENSSL_PACKAGE from $OPENSSL_TAR_SOURCE"
-run curl $CURL_FLAGS -o $DOWNLOAD_DIR/$OPENSSL_PACKAGE $OPENSSL_TAR_SOURCE/$OPENSSL_PACKAGE
-run curl $CURL_FLAGS -o $DOWNLOAD_DIR/$OPENSSL_PACKAGE.md5 $OPENSSL_TAR_SOURCE/$OPENSSL_PACKAGE.md5
-
-OPENSSL_SHA1_DOWNLOADED=$(sha1sum $DOWNLOAD_DIR/$OPENSSL_PACKAGE | cut -d" " -f1)
-OPENSSL_SHA1_EXPECTED=$OPENSSL_TAR_SHA1
-if [ "$OPENSSL_SHA1_DOWNLOADED" != "$OPENSSL_SHA1_EXPECTED" ]; then
- echo "ERROR: Content mismatch for downloaded OpenSSL package:"
- echo " Downloaded SHA-1: $OPENSSL_SHA1_DOWNLOADED"
- echo " Expected SHA-1 : $OPENSSL_SHA1_EXPECTED"
- exit 1
-fi
-dump "Checking content of downloaded package: ok"
-
-# The import_openssl.sh script will really remove the existing 'openssl'
-# directory and replace it with something completely new. This is a problem
-# when using subversion because this also gets rid of all .svn
-# subdirectories. This makes it impossible to commit the right set of
-# changes with "gcl commit".
-#
-# To work-around this, copy all the .svn subdirectories into a temporary
-# tarball, which will be extracted after the import process.
-#
-dump "Saving .svn subdirectories"
-SVN_LIST_FILE=$BUILD_DIR/svn-subdirs
-run find . -type d -name ".svn" > $SVN_LIST_FILE
-SAVED_SVN_TARBALL=$BUILD_DIR/saved-svn-subdirs.tar.gz
-run tar czf $SAVED_SVN_TARBALL -T $SVN_LIST_FILE
-
-# Re-run the import_openssl.sh script.
-dump "Re-running the 'import_openssl.sh' script to reconfigure all sources."
-(
- cd $ANDROID_SRC_DIR
- run ./import_openssl.sh import $DOWNLOAD_DIR/$OPENSSL_PACKAGE
-)
-
-dump "Copying new Android sources to final location."
-clean_openssl_new () {
- rm -rf "$PROGDIR/openssl.new"
-}
-atexit clean_openssl_new
-
-run cp -rp "$ANDROID_SRC_DIR" "$PROGDIR/openssl.new"
-run mv "$PROGDIR/openssl" "$PROGDIR/openssl.old"
-run mv "$PROGDIR/openssl.new" "$PROGDIR/openssl"
-run rm -rf "$PROGDIR/openssl.old"
-
-dump "Restoring .svn subdirectores"
-run tar xzf $SAVED_SVN_TARBALL
-
-# Extract list of source files or compiler defines from openssl.config
-# variable definition. This assumes that the lists are in variables that
-# are named as <prefix><suffix> or <prefix><suffix><arch>.
-#
-# A few examples:
-# get_gyp_list "FOO BAR" _SOURCES
-# -> returns '$FOO_SOURCES $BAR_SOURCES'
-#
-# get_gyp_list FOO _SOURCES_ "arm x86"
-# -> returns '$FOO_SOURCES_arm $FOO_SOURCES_x86"
-#
-# get_gyp_list "FOO BAR" _SOURCES_ "arm x86"
-# -> returns '$FOO_SOURCES_arm $FOO_SOURCES_x86 $BAR_SOURCES_arm $BAR_SOURCES_x86'
-#
-# $1: list of variable prefixes
-# $2: variable suffix
-# $3: optional list of architectures.
-get_gyp_list () {
- local ALL_PREFIXES="$1"
- local SUFFIX="$2"
- local ALL_ARCHS="$3"
- local LIST PREFIX ARCH
- for PREFIX in $ALL_PREFIXES; do
- if [ "$ALL_ARCHS" ]; then
- for ARCH in $ALL_ARCHS; do
- LIST="$LIST $(var_value ${PREFIX}${SUFFIX}${ARCH})"
- done
- else
- LIST="$LIST $(var_value ${PREFIX}${SUFFIX})"
- fi
- done
- echo "$LIST"
-}
-
-generate_gyp_file () {
- echo "# Auto-generated file - DO NOT EDIT"
- echo "# To regenerate - run import_from_android.sh."
- echo "# See 'import_from_android.sh --help' for details."
-
- local ALL_PREFIXES="OPENSSL_CRYPTO OPENSSL_SSL"
- local ALL_ARCHS="arm mips x86 x86_64 mac_ia32"
- local PREFIX ARCH LIST
-
- print_gyp "{"
- incr_gyp_margin
-
- print_gyp "'variables': {"
- incr_gyp_margin
-
- # First, the common sources and defines
- print_gyp_source_variable "openssl_common_sources" \
- $(get_gyp_list "$ALL_PREFIXES" _SOURCES)
-
- print_gyp_variable "openssl_common_defines" \
- $(get_gyp_list "$ALL_PREFIXES" _DEFINES)
-
- # Now, conditions section with add architecture-specific sub-sections.
- for ARCH in $ALL_ARCHS; do
- # Convert ARCH to gyp-specific architecture name
- case $ARCH in
- x86)
- GYP_ARCH=ia32
- ;;
- x86_64)
- GYP_ARCH=x64
- ;;
- *)
- GYP_ARCH=$ARCH
- ;;
- esac
-
- print_gyp_source_variable "openssl_${ARCH}_source_excludes" \
- $(get_gyp_list "$ALL_PREFIXES" _SOURCES_EXCLUDES_ $ARCH)
-
- print_gyp_source_variable "openssl_${ARCH}_sources" \
- $(get_gyp_list "$ALL_PREFIXES" _SOURCES_ $ARCH)
-
- print_gyp_variable "openssl_${ARCH}_defines" \
- $(get_gyp_list "$ALL_PREFIXES" _DEFINES_ $ARCH)
-
- done # for ARCH
-
- decr_gyp_margin
- print_gyp "}" # variables
-
- decr_gyp_margin
- print_gyp "}" # top-level dict.
-}
-
-dump "Generating 64-bit configuration header file."
-mkdir -p $PROGDIR/config/x64/openssl/
-sed \
- -e 's|^#define RC4_INT unsigned char|#define RC4_INT unsigned int|g' \
- -e 's|^#define BN_LLONG|#undef BN_LLONG|g' \
- -e 's|^#define THIRTY_TWO_BIT|#undef THIRTY_TWO_BIT|g' \
- -e 's|^#undef SIXTY_FOUR_BIT_LONG|#define SIXTY_FOUR_BIT_LONG|g' \
- -e 's|^#define BF_PTR|#undef BF_PTR|g' \
- $PROGDIR/openssl/include/openssl/opensslconf.h \
- > $PROGDIR/config/x64/openssl/opensslconf.h
-
-dump "Generating OS X 32-bit configuration header file."
-mkdir -p $PROGDIR/config/mac/ia32/openssl/
-sed \
- -e '4a#ifndef OPENSSL_SYSNAME_MACOSX\n# define OPENSSL_SYSNAME_MACOSX\n#endif' \
- -e 's|^#define RC4_INT unsigned char|#define RC4_INT unsigned int|g' \
- -e 's|^#define DES_LONG unsigned int|#define DES_LONG unsigned long|g' \
- $PROGDIR/openssl/include/openssl/opensslconf.h \
- > $PROGDIR/config/mac/ia32/openssl/opensslconf.h
-
-dump "Generating .gypi file."
-. $ANDROID_SRC_DIR/openssl.config
-generate_gyp_file > $PROGDIR/openssl.gypi.new
-run mv $PROGDIR/openssl.gypi $PROGDIR/openssl.gypi.old
-run mv $PROGDIR/openssl.gypi.new $PROGDIR/openssl.gypi
-run rm $PROGDIR/openssl.gypi.old
-
-dump "Done."
« no previous file with comments | « config/x64/openssl/opensslconf.h ('k') | openssl.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698