| #/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 |