Make the deb-pkg build target understand the "um" arch and set up the
package and directory structure to match a mainline-Debian style
user-mode-linux package.
This is primarily so that it stops matching, exactly, the naming
convention used by normal, non-UML kernels generated by this command.
Installing "linux-2.6.11" and "linux-2.6.11", where one is a UML kernel
doesn't do the right thing. This fixes that.
diff -Nru a/scripts/package/builddeb b/scripts/package/builddeb
--- a/scripts/package/builddeb 2005-03-07 13:21:16 -05:00
+++ b/scripts/package/builddeb 2005-03-07 13:21:16 -05:00
@@ -14,18 +14,38 @@
# Some variables and settings used throughout the script
version=$KERNELRELEASE
tmpdir="$objtree/debian/tmp"
+packagename=linux-$version
+
+if [ "$ARCH" == "um" ] ; then
+ packagename=user-mode-linux-$version
+fi
# Setup the directory structure
rm -rf "$tmpdir"
mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
+if [ "$ARCH" == "um" ] ; then
+ mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin"
+fi
# Build and install the kernel
-cp System.map "$tmpdir/boot/System.map-$version"
-cp .config "$tmpdir/boot/config-$version"
-cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
+if [ "$ARCH" == "um" ] ; then
+ $MAKE linux
+ cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
+ cp .config "$tmpdir/usr/share/doc/$packagename/config"
+ gzip "$tmpdir/usr/share/doc/$packagename/config"
+ cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
+else
+ cp System.map "$tmpdir/boot/System.map-$version"
+ cp .config "$tmpdir/boot/config-$version"
+ cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
+fi
if grep -q '^CONFIG_MODULES=y' .config ; then
INSTALL_MOD_PATH="$tmpdir" make modules_install
+ if [ "$ARCH" == "um" ] ; then
+ mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
+ rmdir "$tmpdir/lib/modules/$version"
+ fi
fi
# Install the maintainer scripts
@@ -60,11 +80,11 @@
Maintainer: $name
Standards-Version: 3.6.1
-Package: linux-$version
+Package: $packagename
Architecture: any
-Description: Linux kernel, version $version
+Description: Linux kernel, version $packagename
This package contains the Linux kernel, modules and corresponding other
- files version $version.
+ files version $packagename
EOF
# Fix some ownership and permissions
--
Ryan Anderson
sometimes Pug Majere
Sorry, I forgot something important.
On Mon, Mar 07, 2005 at 01:28:28PM -0500, Ryan Anderson wrote:
> Make the deb-pkg build target understand the "um" arch and set up the
> package and directory structure to match a mainline-Debian style
> user-mode-linux package.
>
> This is primarily so that it stops matching, exactly, the naming
> convention used by normal, non-UML kernels generated by this command.
>
> Installing "linux-2.6.11" and "linux-2.6.11", where one is a UML kernel
> doesn't do the right thing. This fixes that.
Signed-off-by: Ryan Anderson <[email protected]>
>
>
> diff -Nru a/scripts/package/builddeb b/scripts/package/builddeb
> --- a/scripts/package/builddeb 2005-03-07 13:21:16 -05:00
> +++ b/scripts/package/builddeb 2005-03-07 13:21:16 -05:00
> @@ -14,18 +14,38 @@
> # Some variables and settings used throughout the script
> version=$KERNELRELEASE
> tmpdir="$objtree/debian/tmp"
> +packagename=linux-$version
> +
> +if [ "$ARCH" == "um" ] ; then
> + packagename=user-mode-linux-$version
> +fi
>
> # Setup the directory structure
> rm -rf "$tmpdir"
> mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
> +if [ "$ARCH" == "um" ] ; then
> + mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin"
> +fi
>
> # Build and install the kernel
> -cp System.map "$tmpdir/boot/System.map-$version"
> -cp .config "$tmpdir/boot/config-$version"
> -cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
> +if [ "$ARCH" == "um" ] ; then
> + $MAKE linux
> + cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
> + cp .config "$tmpdir/usr/share/doc/$packagename/config"
> + gzip "$tmpdir/usr/share/doc/$packagename/config"
> + cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
> +else
> + cp System.map "$tmpdir/boot/System.map-$version"
> + cp .config "$tmpdir/boot/config-$version"
> + cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
> +fi
>
> if grep -q '^CONFIG_MODULES=y' .config ; then
> INSTALL_MOD_PATH="$tmpdir" make modules_install
> + if [ "$ARCH" == "um" ] ; then
> + mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
> + rmdir "$tmpdir/lib/modules/$version"
> + fi
> fi
>
> # Install the maintainer scripts
> @@ -60,11 +80,11 @@
> Maintainer: $name
> Standards-Version: 3.6.1
>
> -Package: linux-$version
> +Package: $packagename
> Architecture: any
> -Description: Linux kernel, version $version
> +Description: Linux kernel, version $packagename
> This package contains the Linux kernel, modules and corresponding other
> - files version $version.
> + files version $packagename
> EOF
>
> # Fix some ownership and permissions
>
> --
>
> Ryan Anderson
> sometimes Pug Majere
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> User-mode-linux-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
--
Ryan Anderson
sometimes Pug Majere
On Monday 07 March 2005 19:28, Ryan Anderson wrote:
> Make the deb-pkg build target understand the "um" arch and set up the
> package and directory structure to match a mainline-Debian style
> user-mode-linux package.
>
> This is primarily so that it stops matching, exactly, the naming
> convention used by normal, non-UML kernels generated by this command.
>
> Installing "linux-2.6.11" and "linux-2.6.11", where one is a UML kernel
> doesn't do the right thing. This fixes that.
Yes, it must go in... only the Description is a bit problematic, since you'll
get with the below:
Description: Linux kernel, version linux-2.6.11
Description: Linux kernel, version user-mode-linux-2.6.11
and so on... could you restore $version instead of $packagename and have a
dual Description (taking the right UML one from the mainline-Debian package
if you can).
For the rest, no problem I can see (but I'm no Debian user).
> @@ -60,11 +80,11 @@
> Maintainer: $name
> Standards-Version: 3.6.1
>
> -Package: linux-$version
> +Package: $packagename
> Architecture: any
> -Description: Linux kernel, version $version
> +Description: Linux kernel, version $packagename
> This package contains the Linux kernel, modules and corresponding other
> - files version $version.
> + files version $packagename
> EOF
>
> # Fix some ownership and permissions
--
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade
On Wed, Mar 09, 2005 at 10:03:01AM +0100, Blaisorblade wrote:
>
> Yes, it must go in... only the Description is a bit problematic, since you'll
> get with the below:
> Description: Linux kernel, version linux-2.6.11
>
> Description: Linux kernel, version user-mode-linux-2.6.11
Good point.
This pulls the description from the Debian user-mode-linux package, and
puts $version back in the appropriate places for both descriptions.
Incremental on top of the previous patch.
Signed-off-by: Ryan Anderson <[email protected]>
Index: local-quilt/scripts/package/builddeb
===================================================================
--- local-quilt.orig/scripts/package/builddeb 2005-03-12 20:36:24.000000000 -0500
+++ local-quilt/scripts/package/builddeb 2005-03-12 20:40:50.000000000 -0500
@@ -73,6 +73,29 @@
EOF
# Generate a control file
+if [ "$ARCH" == "um" ]; then
+
+cat <<EOF > debian/control
+Source: linux
+Section: base
+Priority: optional
+Maintainer: $name
+Standards-Version: 3.6.1
+
+Package: $packagename
+Architecture: any
+Description: User Mode Linux kernel, version $version
+ User-mode Linux is a port of the Linux kernel to its own system call
+ interface. It provides a kind of virtual machine, which runs Linux
+ as a user process under another Linux kernel. This is useful for
+ kernel development, sandboxes, jails, experimentation, and
+ many other things.
+ .
+ This package contains the Linux kernel, modules and corresponding other
+ files version $version
+EOF
+
+else
cat <<EOF > debian/control
Source: linux
Section: base
@@ -82,10 +105,11 @@
Package: $packagename
Architecture: any
-Description: Linux kernel, version $packagename
+Description: Linux kernel, version $version
This package contains the Linux kernel, modules and corresponding other
- files version $packagename
+ files version $version
EOF
+fi
# Fix some ownership and permissions
chown -R root:root "$tmpdir"
--
Ryan Anderson
sometimes Pug Majere