next_file() {
FILENUM=$((FILENUM+1))
eval FILE_SRC="\$FILE${FILENUM}_SRC"
eval FILE_DST="\$FILE${FILENUM}_DST"
eval FILE_PRM="\$FILE${FILENUM}_PRM"
[ -n "$FILE_SRC" ]
}

check_sig() {
rpmkeys --quiet --dbpath=/usr/share/licenses/amdgpupro-opencl-orca --import /usr/share/licenses/amdgpupro-opencl-orca/rocm.gpg.key
(rpmkeys --quiet --dbpath=/usr/share/licenses/amdgpupro-opencl-orca --checksig /tmp/amdgpupro-opencl-orca/amdgpu-pro.rpm || (echo "---AMD package signature check failed---" ; rm -f /tmp/amdgpupro-opencl-orca/amdgpu-pro.rpm ; exit 1)) && echo "Valid signature and Installation can continue"
}

tar_extract() {

extractdir="/tmp/amdgpupro-opencl-orca"/extract
mkdir "$extractdir"

if [ -z "$extractdir" ]; then
echo "Error during extraction." >&2
exit 1
fi

cd "$extractdir" || exit 1

rpm2cpio ../amdgpu-pro.rpm | cpio -idmv

# Avoid leaving old files in case of failure below
FILENUM=0
while next_file; do
rm -f "$FILE_DST"
done

FILENUM=0
while next_file; do
if [ ! -f "$FILE_SRC" ]; then
echo "Warning: $FILE_SRC not found in the AMDGPUPRO archive," >&2
echo " skipping installation of $FILE_DST." >&2
echo " Please file a bug report at https://bugs.mageia.org/ ." >&2
continue
fi

chmod "$FILE_PRM" "$FILE_SRC"
mv -f "$FILE_SRC" "$FILE_DST"
done

cd ../..
rm -rf "amdgpupro-opencl-orca"

}
