Blob Blame History Raw
#!/bin/bash

# Generates the 'source tarball' for JDK 8 projects.
#
# Usage: generate_source_tarball.sh project_name repo_name tag
#
# Examples:
#  sh generate_source_tarball.sh jdk8u jdk8u40 jdk8u40-b25
#   ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79
#   ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13
#   ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE}
#
# This script creates a single source tarball out of the repository
# based on the given tag and removes code not allowed in fedora. For
# consistency, the source tarball will always contain 'openjdk' as the top
# level folder.

set -e

PROJECT_NAME="$1"
REPO_NAME="$2"
VERSION="$3"
OPENJDK_URL=http://hg.openjdk.java.net

if [[ "${PROJECT_NAME}" = "" ]] ; then
    echo "No repository specified."
    exit -1
fi
if [[ "${REPO_NAME}" = "" ]] ; then
    echo "No repository specified."
    exit -1
fi
if [[ "${VERSION}" = "" ]]; then
    echo "No version/tag specified."
    exit -1;
fi

mkdir "${REPO_NAME}"
pushd "${REPO_NAME}"

REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"

wget "${REPO_ROOT}/archive/${VERSION}.tar.gz"
tar xf "${VERSION}.tar.gz"
rm  "${VERSION}.tar.gz"

mv "${REPO_NAME}-${VERSION}" openjdk
pushd openjdk

repos="corba hotspot jdk jaxws jaxp langtools nashorn"
if [ aarch64-port = $PROJECT_NAME ] ; then
repos="hotspot"
fi;

for subrepo in $repos
do
    wget "${REPO_ROOT}/${subrepo}/archive/${VERSION}.tar.gz"
    tar xf "${VERSION}.tar.gz"
    rm "${VERSION}.tar.gz"
    mv "${subrepo}-${VERSION}" "${subrepo}"
done

echo "Removing EC source code we don't build"
rm -vrf jdk/src/share/native/sun/security/ec/impl

echo "Syncing EC list with NSS"
patch -Np0 < ../../pr2126.patch

popd

tar cJf ${REPO_NAME}-${VERSION}.tar.xz openjdk

popd

mv "${REPO_NAME}/${REPO_NAME}-${VERSION}.tar.xz" .