From: Wichert Akkerman <wichert@wiggy.net>
To: linux-kernel@vger.kernel.org
Cc: Sam Ravnborg <sam@ravnborg.org>
Subject: Re: [RFC][PATCH] deb target
Date: Sat, 18 Oct 2003 13:50:43 +0200 [thread overview]
Message-ID: <20031018115042.GB1237@wiggy.net> (raw)
In-Reply-To: <20031011082253.GA565@wiggy.net>
Here is a new versino of my make deb patch. There are a few changes
since the previous version:
* no longer use make install, since that will call installkernel which
should not happen on package creation. Instead manually install the
kernel image, config and system.map using a trick taken from
scripts/mkspec to guess the filename of the kernel image.
* no longer use Linus' name and email address but generate a name and
email address based on the currently logged in user. This to prevent
possible unwanted email to Linus.
* use /etc/kernel/ for install/removal handling scripts. This will also
be supported by the next version of Debian's kernel-package.
* obligatory typo fixes.
As always, any comments, bugreports and other forms of feedback are
welcome.
Wichert.
diff -wurN linux-2.6.0-test8/Makefile linux-2.5/Makefile
--- linux-2.6.0-test8/Makefile 2003-10-17 23:43:20.000000000 +0200
+++ linux-2.5/Makefile 2003-10-18 13:30:37.000000000 +0200
@@ -780,7 +780,7 @@
quiet_cmd_rmclean = RM $$(CLEAN_FILES)
cmd_rmclean = rm -f $(CLEAN_FILES)
-clean: archclean $(clean-dirs)
+clean: archclean debclean $(clean-dirs)
$(call cmd,rmclean)
@find . $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
@@ -843,6 +843,20 @@
tags: FORCE
$(call cmd,tags)
+# DEB target
+# ---------------------------------------------------------------------------
+
+.PHONY: deb debclean
+
+debclean:
+ rm -rf debian/tmp
+ rm -f debian/changelog debian/control debian/files
+ -rmdir debian
+
+deb: boot
+ @echo ' Creating kernel deb package'
+ @$(srctree)/scripts/builddeb
+
# RPM target
# ---------------------------------------------------------------------------
diff -wurN linux-2.6.0-test8/scripts/builddeb linux-2.5/scripts/builddeb
--- linux-2.6.0-test8/scripts/builddeb 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.5/scripts/builddeb 2003-10-18 13:15:39.000000000 +0200
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# builddeb 1.0
+# Copyright 2003 Wichert Akkerman <wichert@wiggy.net>
+#
+# Simple script to generate a deb package for a Linux kernel. All the
+# complexity of what to do with a kernel after it is installer or removed
+# is left to other scripts and packages: they can install scripts in the
+# /etc/linux/postinst/ and /etc/linux/prerm/ directories that will be called
+# on package install and removal.
+
+set -e
+
+# Some variables and settings used throughout the script
+version="$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION"
+tmpdir="$(pwd)/debian/tmp"
+
+# Setup the directory structure
+rm -rf "$tmpdir"
+mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
+
+# Build and install the kernel
+cp System.map "$tmpdir/boot/System.map-$version"
+cp .config "$tmpdir/boot/config-$version"
+if [ $(arch | grep -q i.86) 2>/dev/null ] ; then
+ cp arch/i386/boot/bzImage "$tmpdir/boot/vmlinuz-$version"
+else
+ cp vmlinux "$tmpdir/boot/vmlinuz-$version"
+fi
+INSTALL_MOD_PATH="$tmpdir" make modules_install
+
+# Install the maintainer scripts
+for script in postinst postrm preinst prerm ; do
+ mkdir -p "$tmpdir/etc/kernel/$script.d"
+ cat <<EOF > "$tmpdir/DEBIAN/$script"
+#!/bin/sh
+
+set -e
+
+test -d /etc/kernel/$script.d && run-parts --arg="$version" /etc/kernel/$script.d
+exit 0
+EOF
+ chmod 755 "$tmpdir/DEBIAN/$script"
+done
+
+name="Kernel Compiler <$(id -nu)@$(hostname -f)>"
+# Generate a simple changelog template
+cat <<EOF > debian/changelog
+linux ($version) unstable; urgency=low
+
+ * A standard release
+
+ -- $name $(date -R)
+EOF
+
+# Generate a control file
+cat <<EOF > debian/control
+Source: linux
+Section: base
+Priority: optional
+Maintainer: $name
+Standards-Version: 3.6.1
+
+Package: linux
+Architecture: any
+Description: Linux kernel, version $version
+ This package contains the Linux kernel, modules and corresponding other
+ files version $version.
+EOF
+
+# Fix some ownership and permissions
+chown -R root:root "$tmpdir"
+chmod -R go-w "$tmpdir"
+
+# Perform the final magic
+dpkg-gencontrol -isp
+dpkg --build "$tmpdir" ..
--
Wichert Akkerman <wichert@wiggy.net> It is simple to make things.
http://www.wiggy.net/ It is hard to make things simple.
next prev parent reply other threads:[~2003-10-18 11:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-11 8:22 [RFC][PATCH] deb target Wichert Akkerman
2003-10-11 11:10 ` Sam Ravnborg
2003-10-18 11:50 ` Wichert Akkerman [this message]
2003-10-19 15:12 ` Wichert Akkerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031018115042.GB1237@wiggy.net \
--to=wichert@wiggy.net \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.