mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
![Masahiro Yamada](/assets/img/avatar_default.png)
The previous commit spotted that "Tarball successfully created ..." is displayed even if the "tar" command returns error code because it is followed by "| ${compress}". Let the build fail instead of printing the successful message since if the "tar" command fails, the output may not be what users expect. Avoid the use of the pipe. While we are here, refactor the script removing the use of sub-shell, ${compress}, ${file_ext}. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
135 lines
4.1 KiB
Bash
Executable file
135 lines
4.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
#
|
|
# buildtar 0.0.4
|
|
#
|
|
# (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
|
#
|
|
# This script is used to compile a tarball from the currently
|
|
# prepared kernel. Based upon the builddeb script from
|
|
# Wichert Akkerman <wichert@wiggy.net>.
|
|
#
|
|
|
|
set -e
|
|
|
|
#
|
|
# Some variables and settings used throughout the script
|
|
#
|
|
tmpdir="${objtree}/tar-install"
|
|
tarball="${objtree}/linux-${KERNELRELEASE}-${ARCH}.tar"
|
|
|
|
|
|
#
|
|
# Figure out how to compress, if requested at all
|
|
#
|
|
case "${1}" in
|
|
tar-pkg)
|
|
opts=
|
|
;;
|
|
targz-pkg)
|
|
opts=--gzip
|
|
tarball=${tarball}.gz
|
|
;;
|
|
tarbz2-pkg)
|
|
opts=--bzip2
|
|
tarball=${tarball}.bz2
|
|
;;
|
|
tarxz-pkg)
|
|
opts=--xz
|
|
tarball=${tarball}.xz
|
|
;;
|
|
*)
|
|
echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
|
|
#
|
|
# Clean-up and re-create the temporary directory
|
|
#
|
|
rm -rf -- "${tmpdir}"
|
|
mkdir -p -- "${tmpdir}/boot"
|
|
dirs=boot
|
|
|
|
#
|
|
# Try to install modules
|
|
#
|
|
if grep -q '^CONFIG_MODULES=y' "${KCONFIG_CONFIG}"; then
|
|
make ARCH="${ARCH}" O="${objtree}" KBUILD_SRC= INSTALL_MOD_PATH="${tmpdir}" modules_install
|
|
dirs="$dirs lib"
|
|
fi
|
|
|
|
|
|
#
|
|
# Install basic kernel files
|
|
#
|
|
cp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}"
|
|
cp -v -- "${KCONFIG_CONFIG}" "${tmpdir}/boot/config-${KERNELRELEASE}"
|
|
cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
|
|
|
|
#
|
|
# Install arch-specific kernel image(s)
|
|
#
|
|
case "${ARCH}" in
|
|
x86|i386|x86_64)
|
|
[ -f "${objtree}/arch/x86/boot/bzImage" ] && cp -v -- "${objtree}/arch/x86/boot/bzImage" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
|
;;
|
|
alpha)
|
|
[ -f "${objtree}/arch/alpha/boot/vmlinux.gz" ] && cp -v -- "${objtree}/arch/alpha/boot/vmlinux.gz" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
|
;;
|
|
parisc*)
|
|
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
[ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}"
|
|
;;
|
|
vax)
|
|
[ -f "${objtree}/vmlinux.SYS" ] && cp -v -- "${objtree}/vmlinux.SYS" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.SYS"
|
|
[ -f "${objtree}/vmlinux.dsk" ] && cp -v -- "${objtree}/vmlinux.dsk" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.dsk"
|
|
;;
|
|
mips)
|
|
if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then
|
|
cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.bin" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" ]; then
|
|
cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.srec" ]; then
|
|
cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.srec" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/vmlinux.32" ]; then
|
|
cp -v -- "${objtree}/vmlinux.32" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/vmlinux.64" ]; then
|
|
cp -v -- "${objtree}/vmlinux.64" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/arch/mips/boot/vmlinux.bin" ]; then
|
|
cp -v -- "${objtree}/arch/mips/boot/vmlinux.bin" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/arch/mips/boot/vmlinux.ecoff" ]; then
|
|
cp -v -- "${objtree}/arch/mips/boot/vmlinux.ecoff" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/arch/mips/boot/vmlinux.srec" ]; then
|
|
cp -v -- "${objtree}/arch/mips/boot/vmlinux.srec" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
elif [ -f "${objtree}/vmlinux" ]; then
|
|
cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
|
fi
|
|
;;
|
|
*)
|
|
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}"
|
|
echo "" >&2
|
|
echo '** ** ** WARNING ** ** **' >&2
|
|
echo "" >&2
|
|
echo "Your architecture did not define any architecture-dependent files" >&2
|
|
echo "to be placed into the tarball. Please add those to ${0} ..." >&2
|
|
echo "" >&2
|
|
sleep 5
|
|
;;
|
|
esac
|
|
|
|
|
|
#
|
|
# Create the tarball
|
|
#
|
|
if tar --owner=root --group=root --help >/dev/null 2>&1; then
|
|
opts="$opts --owner=root --group=root"
|
|
fi
|
|
|
|
tar cf $tarball -C $tmpdir $opts $dirs
|
|
|
|
echo "Tarball successfully created in $tarball"
|
|
|
|
exit 0
|