Merge branch 'packaging' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6
* 'packaging' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: deb-pkg: s/hdr/kernel_headers_/ && s/header/libc_headers_/ deb-pkg: Make deb-pkg generate a seperate linux-libc-dev deb kbuild: create linux-headers package in deb-pkg kbuild, deb-pkg: support overriding userland architecture kbuild, deb-pkg: select userland architecture based on UTS_MACHINE kbuild, deb-pkg: Fix build with paranoid umask
This commit is contained in:
commit
1693ed284f
|
@ -73,6 +73,14 @@ Specify the output directory when building the kernel.
|
||||||
The output directory can also be specified using "O=...".
|
The output directory can also be specified using "O=...".
|
||||||
Setting "O=..." takes precedence over KBUILD_OUTPUT.
|
Setting "O=..." takes precedence over KBUILD_OUTPUT.
|
||||||
|
|
||||||
|
KBUILD_DEBARCH
|
||||||
|
--------------------------------------------------
|
||||||
|
For the deb-pkg target, allows overriding the normal heuristics deployed by
|
||||||
|
deb-pkg. Normally deb-pkg attempts to guess the right architecture based on
|
||||||
|
the UTS_MACHINE variable, and on some architectures also the kernel config.
|
||||||
|
The value of KBUILD_DEBARCH is assumed (not checked) to be a valid Debian
|
||||||
|
architecture.
|
||||||
|
|
||||||
ARCH
|
ARCH
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
Set ARCH to the architecture to be built.
|
Set ARCH to the architecture to be built.
|
||||||
|
|
|
@ -25,8 +25,44 @@ create_package() {
|
||||||
chown -R root:root "$pdir"
|
chown -R root:root "$pdir"
|
||||||
chmod -R go-w "$pdir"
|
chmod -R go-w "$pdir"
|
||||||
|
|
||||||
|
# Attempt to find the correct Debian architecture
|
||||||
|
local forcearch="" debarch=""
|
||||||
|
case "$UTS_MACHINE" in
|
||||||
|
i386|ia64|alpha)
|
||||||
|
debarch="$UTS_MACHINE" ;;
|
||||||
|
x86_64)
|
||||||
|
debarch=amd64 ;;
|
||||||
|
sparc*)
|
||||||
|
debarch=sparc ;;
|
||||||
|
s390*)
|
||||||
|
debarch=s390 ;;
|
||||||
|
ppc*)
|
||||||
|
debarch=powerpc ;;
|
||||||
|
parisc*)
|
||||||
|
debarch=hppa ;;
|
||||||
|
mips*)
|
||||||
|
debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
|
||||||
|
arm*)
|
||||||
|
debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
|
||||||
|
*)
|
||||||
|
echo "" >&2
|
||||||
|
echo "** ** ** WARNING ** ** **" >&2
|
||||||
|
echo "" >&2
|
||||||
|
echo "Your architecture doesn't have it's equivalent" >&2
|
||||||
|
echo "Debian userspace architecture defined!" >&2
|
||||||
|
echo "Falling back to using your current userspace instead!" >&2
|
||||||
|
echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
|
||||||
|
echo "" >&2
|
||||||
|
esac
|
||||||
|
if [ -n "$KBUILD_DEBARCH" ] ; then
|
||||||
|
debarch="$KBUILD_DEBARCH"
|
||||||
|
fi
|
||||||
|
if [ -n "$debarch" ] ; then
|
||||||
|
forcearch="-DArchitecture=$debarch"
|
||||||
|
fi
|
||||||
|
|
||||||
# Create the package
|
# Create the package
|
||||||
dpkg-gencontrol -isp -p$pname -P"$pdir"
|
dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir"
|
||||||
dpkg --build "$pdir" ..
|
dpkg --build "$pdir" ..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,17 +76,27 @@ else
|
||||||
fi
|
fi
|
||||||
tmpdir="$objtree/debian/tmp"
|
tmpdir="$objtree/debian/tmp"
|
||||||
fwdir="$objtree/debian/fwtmp"
|
fwdir="$objtree/debian/fwtmp"
|
||||||
|
kernel_headers_dir="$objtree/debian/hdrtmp"
|
||||||
|
libc_headers_dir="$objtree/debian/headertmp"
|
||||||
packagename=linux-image-$version
|
packagename=linux-image-$version
|
||||||
fwpackagename=linux-firmware-image
|
fwpackagename=linux-firmware-image
|
||||||
|
kernel_headers_packagename=linux-headers-$version
|
||||||
|
libc_headers_packagename=linux-libc-dev
|
||||||
|
|
||||||
if [ "$ARCH" = "um" ] ; then
|
if [ "$ARCH" = "um" ] ; then
|
||||||
packagename=user-mode-linux-$version
|
packagename=user-mode-linux-$version
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup the directory structure
|
# Setup the directory structure
|
||||||
rm -rf "$tmpdir" "$fwdir"
|
rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir"
|
||||||
mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
|
mkdir -m 755 -p "$tmpdir/DEBIAN"
|
||||||
mkdir -p "$fwdir/DEBIAN" "$fwdir/lib" "$fwdir/usr/share/doc/$fwpackagename"
|
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
|
||||||
|
mkdir -m 755 -p "$fwdir/DEBIAN"
|
||||||
|
mkdir -p "$fwdir/lib" "$fwdir/usr/share/doc/$fwpackagename"
|
||||||
|
mkdir -m 755 -p "$libc_headers_dir/DEBIAN"
|
||||||
|
mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename"
|
||||||
|
mkdir -m 755 -p "$kernel_headers_dir/DEBIAN"
|
||||||
|
mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename"
|
||||||
if [ "$ARCH" = "um" ] ; then
|
if [ "$ARCH" = "um" ] ; then
|
||||||
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
|
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
|
||||||
fi
|
fi
|
||||||
|
@ -81,6 +127,9 @@ if grep -q '^CONFIG_MODULES=y' .config ; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
make headers_check
|
||||||
|
make headers_install INSTALL_HDR_PATH="$libc_headers_dir/usr"
|
||||||
|
|
||||||
# Install the maintainer scripts
|
# Install the maintainer scripts
|
||||||
# Note: hook scripts under /etc/kernel are also executed by official Debian
|
# Note: hook scripts under /etc/kernel are also executed by official Debian
|
||||||
# kernel packages, as well as kernel packages built using make-kpkg
|
# kernel packages, as well as kernel packages built using make-kpkg
|
||||||
|
@ -188,6 +237,30 @@ EOF
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Build header package
|
||||||
|
find . -name Makefile -o -name Kconfig\* -o -name \*.pl > /tmp/files$$
|
||||||
|
find arch/x86/include include scripts -type f >> /tmp/files$$
|
||||||
|
(cd $objtree; find .config Module.symvers include scripts -type f >> /tmp/objfiles$$)
|
||||||
|
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
|
||||||
|
mkdir -p "$destdir"
|
||||||
|
tar -c -f - -T /tmp/files$$ | (cd $destdir; tar -xf -)
|
||||||
|
(cd $objtree; tar -c -f - -T /tmp/objfiles$$) | (cd $destdir; tar -xf -)
|
||||||
|
rm -f /tmp/files$$ /tmp/objfiles$$
|
||||||
|
arch=$(dpkg --print-architecture)
|
||||||
|
|
||||||
|
cat <<EOF >> debian/control
|
||||||
|
|
||||||
|
Package: $kernel_headers_packagename
|
||||||
|
Provides: linux-headers, linux-headers-2.6
|
||||||
|
Architecture: $arch
|
||||||
|
Description: Linux kernel headers for $KERNELRELEASE on $arch
|
||||||
|
This package provides kernel header files for $KERNELRELEASE on $arch
|
||||||
|
.
|
||||||
|
This is useful for people who need to build external modules
|
||||||
|
EOF
|
||||||
|
|
||||||
|
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
|
||||||
|
|
||||||
# Do we have firmware? Move it out of the way and build it into a package.
|
# Do we have firmware? Move it out of the way and build it into a package.
|
||||||
if [ -e "$tmpdir/lib/firmware" ]; then
|
if [ -e "$tmpdir/lib/firmware" ]; then
|
||||||
mv "$tmpdir/lib/firmware" "$fwdir/lib/"
|
mv "$tmpdir/lib/firmware" "$fwdir/lib/"
|
||||||
|
@ -203,6 +276,18 @@ EOF
|
||||||
create_package "$fwpackagename" "$fwdir"
|
create_package "$fwpackagename" "$fwdir"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cat <<EOF >> debian/control
|
||||||
|
|
||||||
|
Package: $libc_headers_packagename
|
||||||
|
Section: devel
|
||||||
|
Provides: linux-kernel-headers
|
||||||
|
Architecture: any
|
||||||
|
Description: Linux support headers for userspace development
|
||||||
|
This package provides userspaces headers from the Linux kernel. These headers
|
||||||
|
are used by the installed headers for GNU glibc and other system libraries.
|
||||||
|
EOF
|
||||||
|
|
||||||
|
create_package "$libc_headers_packagename" "$libc_headers_dir"
|
||||||
create_package "$packagename" "$tmpdir"
|
create_package "$packagename" "$tmpdir"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Reference in New Issue