Skip to content

Commit cd8d60a

Browse files
tytsomichal42
authored andcommitted
kbuild: create linux-headers package in deb-pkg
Create a linux-headers-$KVER.deb package which can be used to build external modules without having the source tree around. Signed-off-by: "Theodore Ts'o" <[email protected]> Signed-off-by: Michal Marek <[email protected]>
1 parent 55f88ec commit cd8d60a

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

scripts/package/builddeb

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,17 @@ else
7676
fi
7777
tmpdir="$objtree/debian/tmp"
7878
fwdir="$objtree/debian/fwtmp"
79+
hdrdir="$objtree/debian/hdrtmp"
7980
packagename=linux-image-$version
8081
fwpackagename=linux-firmware-image
82+
hdrpackagename=linux-headers-$version
8183

8284
if [ "$ARCH" = "um" ] ; then
8385
packagename=user-mode-linux-$version
8486
fi
8587

8688
# Setup the directory structure
87-
rm -rf "$tmpdir" "$fwdir"
89+
rm -rf "$tmpdir" "$fwdir" "$hdrdir"
8890
mkdir -m 755 -p "$tmpdir/DEBIAN"
8991
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
9092
mkdir -m 755 -p "$fwdir/DEBIAN"
@@ -226,6 +228,30 @@ EOF
226228

227229
fi
228230

231+
# Build header package
232+
find . -name Makefile -o -name Kconfig\* -o -name \*.pl > /tmp/files$$
233+
find arch/x86/include include scripts -type f >> /tmp/files$$
234+
(cd $objtree; find .config Module.symvers include scripts -type f >> /tmp/objfiles$$)
235+
destdir=$hdrdir/usr/src/linux-headers-$version
236+
mkdir -p "$destdir" "$hdrdir/DEBIAN" "$hdrdir/usr/share/doc/$hdrpackagename"
237+
tar -c -f - -T /tmp/files$$ | (cd $destdir; tar -xf -)
238+
(cd $objtree; tar -c -f - -T /tmp/objfiles$$) | (cd $destdir; tar -xf -)
239+
rm -f /tmp/files$$ /tmp/objfiles$$
240+
arch=$(dpkg --print-architecture)
241+
242+
cat <<EOF >> debian/control
243+
244+
Package: $hdrpackagename
245+
Provides: linux-headers, linux-headers-2.6
246+
Architecture: $arch
247+
Description: Linux kernel headers for $KERNELRELEASE on $arch
248+
This package provides kernel header files for $KERNELRELEASE on $arch
249+
.
250+
This is useful for people who need to build external modules
251+
EOF
252+
253+
create_package "$hdrpackagename" "$hdrdir"
254+
229255
# Do we have firmware? Move it out of the way and build it into a package.
230256
if [ -e "$tmpdir/lib/firmware" ]; then
231257
mv "$tmpdir/lib/firmware" "$fwdir/lib/"

0 commit comments

Comments
 (0)