#!/usr/bin/env bash set -o errexit set -o nounset set -o pipefail if [[ "${TRACE-0}" == "1" ]]; then set -o xtrace fi if [[ "${1-}" =~ ^-*h(elp)?$ || $# -eq 0 ]]; then echo "Usage: ./$(basename "$0") package.deb Convert .deb package to .rpm hopefully avoiding conflicts and speeding up rpmbuild. Uses /tmp and copies resulting .rpm to directory where script was run. Requires: alien, rpmbuild, sudo, bash, find, sed. " exit fi sudo -v PKG_FILE="$1" OLD_DIR="$PWD" TEMP_DIR=$(mktemp -d) cp "$PKG_FILE" "$TEMP_DIR" cd "$TEMP_DIR" sudo alien -g -v -r "$PKG_FILE" WORK_DIR=$(find ./ -mindepth 1 -maxdepth 1 -type d | sed 's#./##') sudo sed -i 's#^%dir.*"/"##' "$WORK_DIR"/*.spec sudo sed -i 's#^%dir.*"/usr/"##' "$WORK_DIR"/*.spec sudo sed -i 's#^%dir.*"/usr/bin/"##' "$WORK_DIR"/*.spec sudo sed -i 's#^%dir.*"/usr/lib/"##' "$WORK_DIR"/*.spec sudo sed -i 's#^%dir.*"/usr/share/"##' "$WORK_DIR"/*.spec cd "$WORK_DIR" sudo rpmbuild --define "_binary_payload w7T0.zstdio" --buildroot="$PWD" \ -bb "$PWD/$WORK_DIR"*.spec --noclean mv -v "$TEMP_DIR"/*.rpm "$OLD_DIR" sudo rm -rf "$TEMP_DIR"