Skip to content

Commit

Permalink
workable java
Browse files Browse the repository at this point in the history
  • Loading branch information
sophia-guo committed Oct 7, 2024
1 parent 0708226 commit 25cbffc
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
14 changes: 8 additions & 6 deletions tooling/reproducible/repro_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ function removeSystemModulesHashBuilderParams() {
# reprohex - A hex UUID to identify the binary version, again generated from binary content
function removeWindowsNonComparableData() {
local JDK_DIR="$1"
local work_JAVA="$2"
echo "Removing EXE/DLL timestamps, CRC and debug repro hex from ${JDK_DIR}"

# We need to do this for all executables if patching VS_VERSION_INFO
Expand Down Expand Up @@ -183,7 +184,7 @@ function removeWindowsNonComparableData() {
rm -f "$dmpfile"
# Neutralize reprohex string
if [ -n "$reprohex" ]; then
if ! "${JDK_DIR}"/bin/java "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${reprohex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA"; then
if ! $work_JAVA "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${reprohex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA"; then
echo " FAILED ==> java $TEMURIN_TOOLS_BINREPL --inFile \"$f\" --outFile \"$f\" --hex \"${reprohex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA\""
exit 1
fi
Expand All @@ -193,12 +194,12 @@ function removeWindowsNonComparableData() {
hexstr="00000000"
timestamphex=${hexstr:0:-${#timestamp}}$timestamp
timestamphexLE="${timestamphex:6:2}:${timestamphex:4:2}:${timestamphex:2:2}:${timestamphex:0:2}"
if ! "${JDK_DIR}"/bin/java "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${timestamphexLE}-AA:AA:AA:AA"; then
if ! $work_JAVA "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${timestamphexLE}-AA:AA:AA:AA"; then
echo " FAILED ==> java $TEMURIN_TOOLS_BINREPL --inFile \"$f\" --outFile \"$f\" --hex \"${timestamphexLE}-AA:AA:AA:AA\""
exit 1
fi
if [ -n "$reprohexhalf" ]; then
if ! "${JDK_DIR}"/bin/java "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${reprohexhalf}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA"; then
if ! $work_JAVA "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${reprohexhalf}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA"; then
echo " FAILED ==> java $TEMURIN_TOOLS_BINREPL --inFile \"$f\" --outFile \"$f\" --hex \"${reprohexhalf}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA\""
exit 1
fi
Expand All @@ -209,7 +210,7 @@ function removeWindowsNonComparableData() {
hexstr="00000000"
checksumhex=${hexstr:0:-${#checksum}}$checksum
checksumhexLE="${checksumhex:6:2}:${checksumhex:4:2}:${checksumhex:2:2}:${checksumhex:0:2}"
if ! "${JDK_DIR}"/bin/java "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${checksumhexLE}-AA:AA:AA:AA" --firstOnly --32bitBoundaryOnly; then
if ! $work_JAVA "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${checksumhexLE}-AA:AA:AA:AA" --firstOnly --32bitBoundaryOnly; then
echo " FAILED ==> java $TEMURIN_TOOLS_BINREPL --inFile \"$f\" --outFile \"$f\" --hex \"${checksumhexLE}-AA:AA:AA:AA\" --firstOnly --32bitBoundaryOnly"
exit 1
fi
Expand All @@ -225,6 +226,7 @@ function removeWindowsNonComparableData() {
# See https://github.com/adoptium/temurin-build/issues/2899#issuecomment-1153757419
function removeMacOSNonComparableData() {
local JDK_DIR="$1"
local work_JAVA="$2"
echo "Removing MacOS dylib non-comparable UUID from ${JDK_DIR}"
MAC_JDK_ROOT="${JDK_DIR}/../../Contents"
FILES=$(find "${MAC_JDK_ROOT}" \( -type f -and -path '*.dylib' -or -path '*/bin/*' -or -path '*/lib/jspawnhelper' -not -path '*/modules_extracted/*' -or -path '*/jpackageapplauncher*' \))
Expand All @@ -237,8 +239,8 @@ function removeMacOSNonComparableData() {
else
# Format uuid for BINREPL
uuidhex="${uuid:0:2}:${uuid:2:2}:${uuid:4:2}:${uuid:6:2}:${uuid:8:2}:${uuid:10:2}:${uuid:12:2}:${uuid:14:2}:${uuid:16:2}:${uuid:18:2}:${uuid:20:2}:${uuid:22:2}:${uuid:24:2}:${uuid:26:2}:${uuid:28:2}:${uuid:30:2}"
if ! java "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${uuidhex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA" --firstOnly; then
echo " FAILED ==> ${JDK_DIR}/bin/java \"$TEMURIN_TOOLS_BINREPL\" --inFile \"$f\" --outFile \"$f\" --hex \"${uuidhex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA\" --firstOnly"
if ! $work_JAVA "$TEMURIN_TOOLS_BINREPL" --inFile "$f" --outFile "$f" --hex "${uuidhex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA" --firstOnly; then
echo " FAILED ==> $work_JAVA \"$TEMURIN_TOOLS_BINREPL\" --inFile \"$f\" --outFile \"$f\" --hex \"${uuidhex}-AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA\" --firstOnly"
exit 1
fi
fi
Expand Down
9 changes: 7 additions & 2 deletions tooling/reproducible/repro_process.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ source $(dirname "$0")/repro_common.sh
JDK_DIR="$1"
OS="$2"

mkdir "${JDK_DIR}_BK"
cp -R "${JDK_DIR}"/* "${JDK_DIR}"_BK
BK_JDK_DIR=$(realpath ${JDK_DIR}_BK/)
WORK_JAVA="${BK_JDK_DIR}/bin/java"

# This script unpacks the JDK_DIR and removes windows signing Signatures in a neutral way
# ensuring identical output once Signature is removed.

Expand All @@ -37,11 +42,11 @@ if [[ "$OS" =~ CYGWIN* ]] || [[ "$OS" =~ Darwin* ]]; then
fi

if [[ "$OS" =~ CYGWIN* ]]; then
removeWindowsNonComparableData "$JDK_DIR"
removeWindowsNonComparableData "$JDK_DIR" "$WORK_JAVA"
fi

if [[ "$OS" =~ Darwin* ]]; then
removeMacOSNonComparableData "$JDK_DIR"
removeMacOSNonComparableData "$JDK_DIR" "$$WORK_JAVA"
fi

patchManifests "${JDK_DIR}"
Expand Down

0 comments on commit 25cbffc

Please sign in to comment.