mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-22 15:48:14 +00:00
e1e48a485d
Master fixed debuild-xcat-genesis-base and added a bats test for it. The branch deleted that script as unused. The merge keeps the script and moves it to xCAT-genesis-base with the other Genesis base files. Master also stages verify-genesis-payload for the spec %install check. stage_genesis_base_sources() now stages it too, and genesis_base_sources_staged.t expects it in the tarball. The workflow, builds.rst and xcat_probe_package_payload.t take the master version. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
88 lines
2.9 KiB
Bash
Executable File
88 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# DEPRECATED: Use builddeb-genesis-base for native Ubuntu builds.
|
|
# This script converts an EL-built RPM to .deb via alien.
|
|
# Kept for backward compatibility only.
|
|
#
|
|
|
|
# xCAT-genesis-base-x86_64-2.13.10-snap201801090246.noarch.rpm
|
|
RPM_PACKAGE="$1"
|
|
if [ -z "${RPM_PACKAGE}" ]
|
|
then
|
|
echo "Usage: ${0##*/} /path/to/xCAT-genesis-base.rpm"
|
|
exit 0
|
|
fi
|
|
|
|
set -x
|
|
|
|
[ -n "${RPM_PACKAGE}" ] || exit 1
|
|
[ -f "${RPM_PACKAGE}" ] || exit 1
|
|
|
|
umask 0022
|
|
|
|
EXTRACT_DIR="${RPM_PACKAGE##*/}"
|
|
EXTRACT_DIR="${EXTRACT_DIR%%-snap*}"
|
|
|
|
rm -rf "${EXTRACT_DIR}"
|
|
rm -rf "${EXTRACT_DIR}.orig"
|
|
alien -d -g -c -k "${RPM_PACKAGE}" || exit 1
|
|
|
|
PACKAGE_ARCH="${EXTRACT_DIR%-*}"
|
|
PACKAGE_ARCH="${PACKAGE_ARCH##*-}"
|
|
|
|
# The rpm carries the Genesis target architecture, the deb must carry the Debian architecture.
|
|
# alien copies the rpm name into the deb and writes "_" as "-", so x86_64 arrives as x86-64.
|
|
case "${PACKAGE_ARCH}" in
|
|
x86_64)
|
|
ALIEN_ARCH="x86-64" ; DEB_ARCH="amd64" ;;
|
|
ppc64|ppc64le)
|
|
ALIEN_ARCH="${PACKAGE_ARCH}" ; DEB_ARCH="ppc64el" ;;
|
|
*)
|
|
ALIEN_ARCH="${PACKAGE_ARCH}" ; DEB_ARCH="${PACKAGE_ARCH}" ;;
|
|
esac
|
|
|
|
if [[ "${DEB_ARCH}" != "${PACKAGE_ARCH}" ]]
|
|
then
|
|
rm -rf "${EXTRACT_DIR//${PACKAGE_ARCH}/${DEB_ARCH}}"
|
|
mv "${EXTRACT_DIR}" "${EXTRACT_DIR//${PACKAGE_ARCH}/${DEB_ARCH}}"
|
|
EXTRACT_DIR="${EXTRACT_DIR//${PACKAGE_ARCH}/${DEB_ARCH}}"
|
|
|
|
sed -i -e "s/${ALIEN_ARCH}/${DEB_ARCH}/g" "${EXTRACT_DIR}/debian/control"
|
|
sed -i -e "s/${ALIEN_ARCH}/${DEB_ARCH}/g" "${EXTRACT_DIR}/debian/changelog"
|
|
fi
|
|
|
|
# The Genesis debs carry the architecture in the package name, so the packages an upgrade has
|
|
# to displace carry it too. 2.19 renames the ppc64 debs to ppc64el; dpkg keeps the old package,
|
|
# and its copy of the same files, unless the new one replaces it by name.
|
|
case "${DEB_ARCH}" in
|
|
ppc64el)
|
|
SUPERSEDED="xcat-genesis-ppc64, xcat-genesis-base-ppc64" ;;
|
|
*)
|
|
SUPERSEDED="xcat-genesis-${DEB_ARCH}" ;;
|
|
esac
|
|
|
|
sed -i -e "/^Description:/i Replaces: ${SUPERSEDED}" \
|
|
-e "/^Description:/i Breaks: ${SUPERSEDED}, xcat-genesis-scripts-${DEB_ARCH} (<< 2.13.10)" \
|
|
"${EXTRACT_DIR}/debian/control"
|
|
|
|
cat >"${EXTRACT_DIR}/debian/preinst" <<EOF
|
|
#!/bin/bash
|
|
|
|
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/bin ] &&
|
|
rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/bin
|
|
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/sbin ] &&
|
|
rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/sbin
|
|
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib ] &&
|
|
rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib
|
|
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib64 ] &&
|
|
rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/lib64
|
|
[ -d /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/var/run ] &&
|
|
rm -rf /opt/xcat/share/xcat/netboot/genesis/${PACKAGE_ARCH}/fs/var/run
|
|
|
|
exit 0
|
|
EOF
|
|
|
|
chmod 0755 "${EXTRACT_DIR}/debian/preinst"
|
|
|
|
( cd "${EXTRACT_DIR}" && debian/rules binary )
|