ACPI: thinkpad-acpi: add development version tag
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / scripts / package / builddeb
blob1264b8e2829d49a497a02afb9059f862736700f6
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 revision=`cat .version`
17 tmpdir="$objtree/debian/tmp"
18 fwdir="$objtree/debian/fwtmp"
19 packagename=linux-$version
20 fwpackagename=linux-firmware-image
22 if [ "$ARCH" == "um" ] ; then
23 packagename=user-mode-linux-$version
26 # Setup the directory structure
27 rm -rf "$tmpdir" "$fwdir"
28 mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
29 mkdir -p "$fwdir/DEBIAN" "$fwdir/lib"
30 if [ "$ARCH" == "um" ] ; then
31 mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin"
34 # Build and install the kernel
35 if [ "$ARCH" == "um" ] ; then
36 $MAKE linux
37 cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
38 cp .config "$tmpdir/usr/share/doc/$packagename/config"
39 gzip "$tmpdir/usr/share/doc/$packagename/config"
40 cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
41 else
42 cp System.map "$tmpdir/boot/System.map-$version"
43 cp .config "$tmpdir/boot/config-$version"
44 cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
47 if grep -q '^CONFIG_MODULES=y' .config ; then
48 INSTALL_MOD_PATH="$tmpdir" make KBUILD_SRC= modules_install
49 if [ "$ARCH" == "um" ] ; then
50 mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
51 rmdir "$tmpdir/lib/modules/$version"
55 # Install the maintainer scripts
56 for script in postinst postrm preinst prerm ; do
57 mkdir -p "$tmpdir/etc/kernel/$script.d"
58 cat <<EOF > "$tmpdir/DEBIAN/$script"
59 #!/bin/sh
61 set -e
63 test -d /etc/kernel/$script.d && run-parts --arg="$version" /etc/kernel/$script.d
64 exit 0
65 EOF
66 chmod 755 "$tmpdir/DEBIAN/$script"
67 done
69 name="Kernel Compiler <$(id -nu)@$(hostname -f)>"
70 # Generate a simple changelog template
71 cat <<EOF > debian/changelog
72 linux ($version-$revision) unstable; urgency=low
74 * A standard release
76 -- $name $(date -R)
77 EOF
79 # Generate a control file
80 if [ "$ARCH" == "um" ]; then
82 cat <<EOF > debian/control
83 Source: linux
84 Section: base
85 Priority: optional
86 Maintainer: $name
87 Standards-Version: 3.6.1
89 Package: $packagename
90 Provides: kernel-image-$version, linux-image-$version
91 Architecture: any
92 Description: User Mode Linux kernel, version $version
93 User-mode Linux is a port of the Linux kernel to its own system call
94 interface. It provides a kind of virtual machine, which runs Linux
95 as a user process under another Linux kernel. This is useful for
96 kernel development, sandboxes, jails, experimentation, and
97 many other things.
99 This package contains the Linux kernel, modules and corresponding other
100 files version $version
103 else
104 cat <<EOF > debian/control
105 Source: linux
106 Section: base
107 Priority: optional
108 Maintainer: $name
109 Standards-Version: 3.6.1
111 Package: $packagename
112 Provides: kernel-image-$version, linux-image-$version
113 Suggests: $fwpackagename
114 Architecture: any
115 Description: Linux kernel, version $version
116 This package contains the Linux kernel, modules and corresponding other
117 files version $version
121 # Fix some ownership and permissions
122 chown -R root:root "$tmpdir"
123 chmod -R go-w "$tmpdir"
125 # Do we have firmware? Move it out of the way and build it into a package.
126 if [ -e "$tmpdir/lib/firmware" ]; then
127 mv "$tmpdir/lib/firmware" "$fwdir/lib/"
129 cat <<EOF >> debian/control
131 Package: $fwpackagename
132 Architecture: all
133 Description: Linux kernel firmware, version $version
134 This package contains firmware from the Linux kernel, version $version
137 dpkg-gencontrol -isp -p$fwpackagename -P"$fwdir"
138 dpkg --build "$fwdir" ..
141 # Perform the final magic
142 dpkg-gencontrol -isp -p$packagename
143 dpkg --build "$tmpdir" ..
145 exit 0