#!/bin/sh
java.lang.NullPointerException # builddeb 1.3 # Copyright 2003 Wichert Akkerman <wichert@wiggy.net>
java.lang.NullPointerException # Simple script to generate a deb package for a Linux kernel. All the # complexity of what to do with a kernel after it is installed or removed # is left to other scripts and packages. Scripts can be placed into the # preinst, postinst, prerm and postrm directories in /etc/kernel or # /usr/share/kernel. A different list of search directories can be given # via KDEB_HOOKDIR. Scripts in directories earlier in the list will # override scripts of the same name in later directories. The script will # be called on package installation and removal.
if_enabled_echo() { if is_enabled "$1"; then
echo -n "$2"
elif [ $# -ge 3 ]; then
echo -n "$3"
fi
}
install_linux_image () {
pname=$1
pdir=debian/$1
# Only some architectures with OF support have this target if is_enabled CONFIG_OF_EARLY_FLATTREE && [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then
${MAKE} -f ${srctree}/Makefile INSTALL_DTBS_PATH="${pdir}/usr/lib/linux-image-${KERNELRELEASE}" dtbs_install
fi
# Install the kernel if [ "${ARCH}" = um ] ; then
mkdir -p "${pdir}/usr/lib/uml/modules"
mv "${pdir}/lib/modules/${KERNELRELEASE}""${pdir}/usr/lib/uml/modules/${KERNELRELEASE}"
mkdir -p "${pdir}/usr/bin""${pdir}/usr/share/doc/${pname}"
cp System.map "${pdir}/usr/lib/uml/modules/${KERNELRELEASE}/System.map"
cp ${KCONFIG_CONFIG} "${pdir}/usr/share/doc/${pname}/config"
gzip "${pdir}/usr/share/doc/${pname}/config" else
mkdir -p "${pdir}/boot"
cp System.map "${pdir}/boot/System.map-${KERNELRELEASE}"
cp ${KCONFIG_CONFIG} "${pdir}/boot/config-${KERNELRELEASE}"
fi
# Not all arches have the same installed path in debian # XXX: have each arch Makefile export a variable of the canonical image install # path instead case"${SRCARCH}" in
um)
installed_image_path="usr/bin/linux-${KERNELRELEASE}";;
parisc|mips|powerpc)
installed_image_path="boot/vmlinux-${KERNELRELEASE}";;
*)
installed_image_path="boot/vmlinuz-${KERNELRELEASE}";;
esac
cp "$(${MAKE} -s -f ${srctree}/Makefile image_name)""${pdir}/${installed_image_path}"
if [ "${ARCH}" != um ]; then
install_maint_scripts "${pdir}"
fi
}
install_maint_scripts () { # Install the maintainer scripts # Note: hook scripts under /etc/kernel are also executed by official Debian # kernel packages, as well as kernel packages built using make-kpkg. # make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and # so do we; recent versions of dracut and initramfs-tools will obey this.
debhookdir=${KDEB_HOOKDIR:-/etc/kernel /usr/share/kernel} for script in postinst postrm preinst prerm; do
mkdir -p "${pdir}/DEBIAN"
cat <<-EOF > "${pdir}/DEBIAN/${script}" #!/bin/sh
set -e
# Pass maintainer script parameters to hook scripts
export DEB_MAINT_PARAMS="\$*"
# run-parts will error out if one of its directory arguments does not # exist, so filter the list of hook directories accordingly.
hookdirs= for dir in ${debhookdir}; do
test -d "\$dir/${script}.d" || continue
hookdirs="\$hookdirs \$dir/${script}.d"
done
hookdirs="\${hookdirs# }"
test -n "\$hookdirs" && run-parts --arg="${KERNELRELEASE}" --arg="/${installed_image_path}" \$hookdirs exit 0
EOF
chmod 755 "${pdir}/DEBIAN/${script}"
done
}
install_linux_image_dbg () {
pdir=debian/$1
# Parse modules.order directly because 'make modules_install' may sign, # compress modules, and then run unneeded depmod. if is_enabled CONFIG_MODULES; then while read -r mod; do
mod="${mod%.o}.ko"
dbg="${pdir}/usr/lib/debug/lib/modules/${KERNELRELEASE}/kernel/${mod}"
buildid=$("${READELF}" -n "${mod}" | sed -n 's@^.*Build ID: \(..\)\(.*\)@\1/\2@p')
link="${pdir}/usr/lib/debug/.build-id/${buildid}.debug"
# move asm headers to /usr/include/<libc-machine>/asm to match the structure # used by Debian-based distros (to support multi-arch)
mkdir "$pdir/usr/include/${DEB_HOST_MULTIARCH}"
mv "$pdir/usr/include/asm""$pdir/usr/include/${DEB_HOST_MULTIARCH}"
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.