From 6d4815d3a4921219379bc9ec3cceead217668426 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 16 Nov 2010 15:41:16 +0000
Subject: [PATCH] images: Make a better phony Fedora image.

This now includes a product string, major and minor version,
hostname and even some applications.
---
 .gitignore                                         |  1 +
 images/Makefile.am                                 |  9 +++++++--
 images/guest-aux/fedora-name.db.txt                | 13 +++++++++++++
 .../make-fedora-img.sh}                            | 22 +++++++++++++++++-----
 tools/test-virt-ls.sh                              |  3 ++-
 tools/test-virt-tar.sh                             |  1 +
 6 files changed, 41 insertions(+), 8 deletions(-)
 create mode 100644 images/guest-aux/fedora-name.db.txt
 rename images/{make-dummy-fedora-img.sh => guest-aux/make-fedora-img.sh} (80%)

diff --git a/.gitignore b/.gitignore
index b4cc493..9fe53f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -125,6 +125,7 @@ images/100krandom
 images/10klines
 images/abssymlink
 images/fedora.img
+images/guest-aux/fedora-name.db
 images/hello.b64
 images/initrd
 images/initrd-x86_64.img
diff --git a/images/Makefile.am b/images/Makefile.am
index b1b4855..a2eb199 100644
--- a/images/Makefile.am
+++ b/images/Makefile.am
@@ -37,7 +37,9 @@ EXTRA_DIST = \
 	lib-win64.dll \
 	lib-x86_64.so \
 	test-grep.txt \
-	make-dummy-fedora-img.sh
+	guest-aux/make-fedora-img.sh \
+	guest-aux/fedora-name.db.txt \
+	guest-aux/fedora-name.db
 
 noinst_DATA = test.iso
 
@@ -157,7 +159,10 @@ $(builddir)/test-grep.txt.gz: test-grep.txt
 	mv $@-t $@
 
 # Make a (dummy) Fedora image.
-fedora.img: make-dummy-fedora-img.sh
+fedora.img: guest-aux/make-fedora-img.sh guest-aux/fedora-name.db
 	LIBGUESTFS_PATH=../appliance \
 	LD_LIBRARY_PATH=../src/.libs \
 	bash $<
+
+guest-aux/fedora-name.db: guest-aux/fedora-name.db.txt
+	db_load $@ < $<
diff --git a/images/guest-aux/fedora-name.db.txt b/images/guest-aux/fedora-name.db.txt
new file mode 100644
index 0000000..105b0fe
--- /dev/null
+++ b/images/guest-aux/fedora-name.db.txt
@@ -0,0 +1,13 @@
+VERSION=3
+format=print
+type=hash
+h_nelem=3
+db_pagesize=4096
+HEADER=END
+ test1
+ !\0b\00\00\00\00\00\00
+ test2
+ 7\0b\00\00\00\00\00\00
+ test3
+ \dd\0c\00\00\00\00\00\00
+DATA=END
diff --git a/images/make-dummy-fedora-img.sh b/images/guest-aux/make-fedora-img.sh
similarity index 80%
rename from images/make-dummy-fedora-img.sh
rename to images/guest-aux/make-fedora-img.sh
index 635ad10..3198930 100755
--- a/images/make-dummy-fedora-img.sh
+++ b/images/guest-aux/make-fedora-img.sh
@@ -24,8 +24,7 @@
 export LANG=C
 set -e
 
-rm -f fedora.img
-
+# fstab file.
 cat > fstab.tmp <<EOF
 LABEL=BOOT /boot ext2 default 0 0
 LABEL=ROOT / ext2 default 0 0
@@ -33,7 +32,7 @@ EOF
 
 # Create a disk image.
 ../fish/guestfish <<'EOF'
-sparse fedora.img- 512M
+sparse fedora.img.tmp 512M
 run
 
 # Format the disk.
@@ -51,19 +50,32 @@ lvcreate LV3 VG 64
 # Phony /boot filesystem.
 mkfs-b ext2 4096 /dev/sda1
 set-e2label /dev/sda1 BOOT
+set-e2uuid /dev/sda1 01234567-0123-0123-0123-012345678901
 
 # Phony root filesystem.
 mkfs-b ext2 4096 /dev/VG/Root
 set-e2label /dev/VG/Root ROOT
+set-e2uuid /dev/VG/Root 01234567-0123-0123-0123-012345678902
 
-# Enough to fool virt-inspector.
+# Enough to fool inspection API.
 mount-options "" /dev/VG/Root /
 mkdir /boot
 mount-options "" /dev/sda1 /boot
 mkdir /bin
 mkdir /etc
+mkdir /etc/sysconfig
 mkdir /usr
+mkdir-p /var/lib/rpm
+
 upload fstab.tmp /etc/fstab
+write /etc/redhat-release "Fedora release 14 (Phony)"
+write /etc/fedora-release "Fedora release 14 (Phony)"
+write /etc/sysconfig/network "HOSTNAME=fedora.invalid"
+
+upload guest-aux/fedora-name.db /var/lib/rpm/Name
+
+upload bin-x86_64-dynamic /bin/ls
+
 mkdir /boot/grub
 touch /boot/grub/grub.conf
 
@@ -86,4 +98,4 @@ mkfs-b ext2 2048 /dev/VG/LV3
 EOF
 
 rm fstab.tmp
-mv fedora.img- fedora.img
+mv fedora.img.tmp fedora.img
diff --git a/tools/test-virt-ls.sh b/tools/test-virt-ls.sh
index c8330d2..a0c9fc5 100755
--- a/tools/test-virt-ls.sh
+++ b/tools/test-virt-ls.sh
@@ -7,7 +7,8 @@ set -e
 uuid=868b1447-0ec5-41bf-a2e5-6a77a4c9b66f
 
 # Read out the test directory using virt-ls.
-if [ "$(./virt-ls ../images/fedora.img /bin)" != "test1
+if [ "$(./virt-ls ../images/fedora.img /bin)" != "ls
+test1
 test2
 test3
 test4
diff --git a/tools/test-virt-tar.sh b/tools/test-virt-tar.sh
index 40cee90..2239c13 100755
--- a/tools/test-virt-tar.sh
+++ b/tools/test-virt-tar.sh
@@ -7,6 +7,7 @@ set -e
 ./virt-tar -x ../images/fedora.img /bin test.tar
 
 if [ "$(tar tf test.tar)" != "./
+./ls
 ./test1
 ./test2
 ./test3
-- 
1.8.3.1