Skip to contentSkip to conversation

UML - Make deb-pkg build target build a Debian-style user-mode-linux package

PATCH In review Ryan Anderson 2 participants 4 messages Mar 7, 2005 – Mar 13, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 UML - Make deb-pkg build target build a Debian-style user-mode-linux package

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.

scripts/package/builddeb +26 -6
diff -Nru a/scripts/package/builddeb b/scripts/package/builddeb
@@ -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
Signature · 13 lines
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
#1 lore raw

Sorry, I forgot something important.

Quoted 9 lines · Ryan Anderson

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.

Quoted 78 lines

diff -Nru a/scripts/package/builddeb b/scripts/package/builddeb

scripts/package/builddeb +26 -6
@@ -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
Signature · 15 lines
-- 

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
Signature · 13 lines
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
#2 lore raw
In reply to Ryan Anderson
Quoted 9 lines · Ryan Anderson

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).

Quoted 15 lines
scripts/package/builddeb +3 -3
@@ -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
Signature · 17 lines
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade





-------------------------------------------------------
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
#3 lore raw

PATCH 1/1 UML - Restore proper descriptions in make deb-pkg target

Quoted 6 lines · Blaisorblade

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.

scripts/package/builddeb +26 -2
Index: local-quilt/scripts/package/builddeb
===================================================================
@@ -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"
Signature · 13 lines
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