blob: 8ce70ae12fadfcdbd4ec02d936288cd597ca34fd [file] [log] [blame]
#/bin/bash
set -ex
if [ -z $1 ] ; then
echo "Gem file needed!" && exit 1;
fi
GEM=$1
GEM_FILENAME=$(basename -- "$GEM")
GEM_NAME="${GEM_FILENAME%.gem}"
# Extract all files onto a temporary directory
TMPDIR=$(mktemp -d -t gem-XXXXXXXXXX)
gem unpack $GEM --target=$TMPDIR
gem spec $GEM --ruby > ${TMPDIR}/${GEM_NAME}/${GEM_NAME}.gemspec
# Run patchelf to all so files to strip out unnecessary libcrypt.so.2 dependency
find $TMPDIR/${GEM_NAME} -name "*.so" \
-printf '%p\n' \
-exec patchelf --remove-needed libcrypt.so.2 {} \;
# Rebuild the gem again with modified so files
pushd $TMPDIR/${GEM_NAME}
gem build ${GEM_NAME}.gemspec
popd
# Keep the new result
mv $TMPDIR/${GEM_NAME}/${GEM_NAME}.gem $GEM
rm -rf $TMPDIR