Linux v2.6.18-rc5
[pohmelfs.git] / scripts / package / builddeb
blob6edb29f2b4a6c8aa056a748168a70583897a9d3c
1 #!/bin/sh
3 # builddeb 1.2
4 # Copyright 2003 Wichert Akkerman <wichert@wiggy.net>
6 # Simple script to generate a deb package for a Linux kernel. All the
7 # complexity of what to do with a kernel after it is installer or removed
8 # is left to other scripts and packages: they can install scripts in the
9 # /etc/kernel/{pre,post}{inst,rm}.d/ directories that will be called on
10 # package install and removal.
12 set -e
14 # Some variables and settings used throughout the script
15 version=$KERNELRELEASE
16 tmpdir="$objtree/debian/tmp"
17 packagename=linux-$version
19 if [ "$ARCH" == "um" ] ; then
20 packagename=user-mode-linux-$version
23 # Setup the directory structure
24 rm -rf "$tmpdir"
25 mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
26 if [ "$ARCH" == "um" ] ; then
27 mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin"
30 # Build and install the kernel
31 if [ "$ARCH" == "um" ] ; then
32 $MAKE linux
33 cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
34 cp .config "$tmpdir/usr/share/doc/$packagename/config"
35 gzip "$tmpdir/usr/share/doc/$packagename/config"
36 cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
37 else
38 cp System.map "$tmpdir/boot/System.map-$version"
39 cp .config "$tmpdir/boot/config-$version"
40 cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
43 if grep -q '^CONFIG_MODULES=y' .config ; then
44 INSTALL_MOD_PATH="$tmpdir" make KBUILD_SRC= modules_install
45 if [ "$ARCH" == "um" ] ; then
46 mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
47 rmdir "$tmpdir/lib/modules/$version"
51 # Install the maintainer scripts
52 for script in postinst postrm preinst prerm ; do
53 mkdir -p "$tmpdir/etc/kernel/$script.d"
54 cat <<EOF > "$tmpdir/DEBIAN/$script"
55 #!/bin/sh
57 set -e
59 test -d /etc/kernel/$script.d && run-parts --arg="$version" /etc/kernel/$script.d
60 exit 0
61 EOF
62 chmod 755 "$tmpdir/DEBIAN/$script"
63 done
65 name="Kernel Compiler <$(id -nu)@$(hostname -f)>"
66 # Generate a simple changelog template
67 cat <<EOF > debian/changelog
68 linux ($version) unstable; urgency=low
70 * A standard release
72 -- $name $(date -R)
73 EOF
75 # Generate a control file
76 if [ "$ARCH" == "um" ]; then
78 cat <<EOF > debian/control
79 Source: linux
80 Section: base
81 Priority: optional
82 Maintainer: $name
83 Standards-Version: 3.6.1
85 Package: $packagename
86 Architecture: any
87 Description: User Mode Linux kernel, version $version
88 User-mode Linux is a port of the Linux kernel to its own system call
89 interface. It provides a kind of virtual machine, which runs Linux
90 as a user process under another Linux kernel. This is useful for
91 kernel development, sandboxes, jails, experimentation, and
92 many other things.
94 This package contains the Linux kernel, modules and corresponding other
95 files version $version
96 EOF
98 else
99 cat <<EOF > debian/control
100 Source: linux
101 Section: base
102 Priority: optional
103 Maintainer: $name
104 Standards-Version: 3.6.1
106 Package: $packagename
107 Architecture: any
108 Description: Linux kernel, version $version
109 This package contains the Linux kernel, modules and corresponding other
110 files version $version
114 # Fix some ownership and permissions
115 chown -R root:root "$tmpdir"
116 chmod -R go-w "$tmpdir"
118 # Perform the final magic
119 dpkg-gencontrol -isp
120 dpkg --build "$tmpdir" ..
122 exit 0