Skip to content

Commit d724708

Browse files
committed
Attempt to sign binary inside nested jar
1 parent 26c2ac7 commit d724708

File tree

1 file changed

+69
-21
lines changed

1 file changed

+69
-21
lines changed

.github/scripts/sign-osx-distro-file.sh

+69-21
Original file line numberDiff line numberDiff line change
@@ -50,36 +50,84 @@ function signExecutableInsideJar() {
5050
done
5151
}
5252

53-
# sign libjansi.jnilib inside kotlin-compiler-embeddable.jar
54-
for f in `find ${dir}/${destination_folder_name}/SpringToolSuite4.app -type f | grep -E ".*/kotlin-compiler-embeddable.*\.jar$"`
55-
do
56-
echo "Looking for 'libjansi.jnilib' files inside ${f} to sign..."
57-
f_name="$(basename -- $f)"
58-
extracted_jar_dir=extracted_${f_name}
59-
rm -rf $extracted_jar_dir
60-
mkdir $extracted_jar_dir
61-
echo "Extracting archive ${f}"
62-
unzip -q $f -d ./${extracted_jar_dir}
63-
for jnilib_file in `find $extracted_jar_dir -type f | grep -E ".*/libjansi\.jnilib$"`
53+
function signExecutableInsideJar2() {
54+
for f in `find $1 -type f | grep -E $2`
55+
do
56+
echo "Looking for '$3' files inside ${f} to sign..."
57+
f_name="$(basename -- $f)"
58+
extracted_jar_dir=extracted_${f_name}
59+
rm -rf $extracted_jar_dir
60+
mkdir $extracted_jar_dir
61+
echo "Extracting archive ${f}"
62+
unzip -q $f -d ./${extracted_jar_dir}
63+
for jnilib_file in `find $extracted_jar_dir -type f | grep -E "$4"`
64+
do
65+
echo "Signing binary file: ${jnilib_file}"
66+
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $jnilib_file
67+
done
68+
cd $extracted_jar_dir
69+
zip -r -u ../$f .
70+
cd ..
71+
rm -rf $extracted_jar_dir
72+
73+
echo "Signing binary file: ${f}"
74+
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $f
75+
done
76+
}
77+
78+
function signExecutableInsideNestedJar() {
79+
for f in `find $1 -type f | grep -E $2`
6480
do
65-
echo "Signing binary file: ${jnilib_file}"
66-
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $jnilib_file
81+
echo "Looking for '$3' files inside ${f} to sign..."
82+
f_name="$(basename -- $f)"
83+
extracted_jar_dir=extracted_${f_name}
84+
rm -rf $extracted_jar_dir
85+
mkdir $extracted_jar_dir
86+
echo "Extracting archive ${f}"
87+
unzip -q $f -d ./${extracted_jar_dir}
88+
signExecutableInsideJar2 $extracted_jar_dir $3 $4 $5
89+
zip -r -u ../$f .
90+
cd ..
91+
rm -rf $extracted_jar_dir
92+
echo "Signing binary file: ${f}"
93+
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $f
6794
done
68-
cd $extracted_jar_dir
69-
zip -r -u ../$f .
70-
cd ..
71-
rm -rf $extracted_jar_dir
95+
}
7296

73-
echo "Signing binary file: ${f}"
74-
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $f
75-
done
97+
# sign libjansi.jnilib inside kotlin-compiler-embeddable.jar
98+
signExecutableInsideJar2 {dir}/${destination_folder_name}/SpringToolSuite4.app ".*/kotlin-compiler-embeddable.*\.jar$" "libjansi.jnilib" ".*/libjansi\.jnilib$"
99+
#for f in `find ${dir}/${destination_folder_name}/SpringToolSuite4.app -type f | grep -E ".*/kotlin-compiler-embeddable.*\.jar$"`
100+
#do
101+
# echo "Looking for 'libjansi.jnilib' files inside ${f} to sign..."
102+
# f_name="$(basename -- $f)"
103+
# extracted_jar_dir=extracted_${f_name}
104+
# rm -rf $extracted_jar_dir
105+
# mkdir $extracted_jar_dir
106+
# echo "Extracting archive ${f}"
107+
# unzip -q $f -d ./${extracted_jar_dir}
108+
# for jnilib_file in `find $extracted_jar_dir -type f | grep -E ".*/libjansi\.jnilib$"`
109+
# do
110+
# echo "Signing binary file: ${jnilib_file}"
111+
# codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $jnilib_file
112+
# done
113+
# cd $extracted_jar_dir
114+
# zip -r -u ../$f .
115+
# cd ..
116+
# rm -rf $extracted_jar_dir
117+
#
118+
# echo "Signing binary file: ${f}"
119+
# codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $f
120+
#done
76121

77122
# sign libsnappyjava.jnilib and libsnappyjava.dylib inside snappy-java.jar
78-
signExecutableInsideJar ".*/snappy-java.*\.jar$" "libsnappyjava.jnilib" ".*/libsnappyjava\.(jni|dy)lib$"
123+
signExecutableInsideJar2 {dir}/${destination_folder_name}/SpringToolSuite4.app ".*/snappy-java.*\.jar$" "libsnappyjava.jnilib" ".*/libsnappyjava\.(jni|dy)lib$"
79124

80125
# sign libjnidispatch.jnilib inside jna.jar
81126
signExecutableInsideJar ".*/jna-\d+.*\.jar$" "libjnidispatch.jnilib.jnilib" ".*/libjnidispatch\.jnilib$"
82127

128+
#sign libjnidispatch.jnilib inside jna.jar which is inside org.springframework.ide.eclipse.docker.client.jar bundle
129+
signExecutableInsideNestedJar {dir}/${destination_folder_name}/SpringToolSuite4.app ".*/org.springframework.ide.eclipse.docker.client.*\.jar$" "org.springframework.ide.eclipse.docker.client.jar" "libjnidispatch.jnilib.jnilib" ".*/libjnidispatch\.jnilib$"
130+
83131
# Sign the app
84132
ls -la ${dir}/${destination_folder_name}/SpringToolSuite4.app/
85133
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" ${dir}/${destination_folder_name}/SpringToolSuite4.app

0 commit comments

Comments
 (0)