- Update to version 1.19.36

Add patch to collect a list of all called binaries from guestfsd

  patch mkinitrd to copy links (bnc#778149)

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libguestfs?expand=0&rev=34
This commit is contained in:
Olaf Hering 2012-08-30 18:40:11 +00:00 committed by Git OBS Bridge
parent 2e24d337c4
commit e114d9a2d1
8 changed files with 2852 additions and 8 deletions

View File

@ -0,0 +1,375 @@
From 8082d42017b9946b40b3d1ffb27b83a310118cc0 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 30 Aug 2012 17:29:36 +0100
Subject: [PATCH 1/2] daemon: Remove e2prog hack (only needed for RHEL 5).
Instead this patch will be carried out of tree in the oldlinux branch.
---
daemon/daemon.h | 2 -
daemon/ext2.c | 112 ++++++++------------------------------------------------
daemon/labels.c | 6 +--
daemon/mkfs.c | 8 +---
4 Dateien geändert, 18 Zeilen hinzugefügt(+), 110 Zeilen entfernt(-)
diff --git a/daemon/daemon.h b/daemon/daemon.h
index bbe77f9..d17dcbd 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -171,8 +171,6 @@ extern int filesystem_available (const char *filesystem);
extern int sync_disks (void);
/*-- in ext2.c --*/
-extern int e2prog (char *name); /* Massive hack for RHEL 5. */
-
/* Confirmed this is true up to ext4 from the Linux sources. */
#define EXT2_LABEL_MAX 16
diff --git a/daemon/ext2.c b/daemon/ext2.c
index 7876e66..943b441 100644
--- a/daemon/ext2.c
+++ b/daemon/ext2.c
@@ -31,32 +31,6 @@
#define MAX_ARGS 64
-/* Choose which tools like mke2fs to use. For RHEL 5 (only) there
- * is a special set of tools which support ext2/3/4. eg. On RHEL 5,
- * mke2fs only supports ext2/3, but mke4fs supports ext2/3/4.
- *
- * We specify e4fsprogs in the package list to ensure it is loaded
- * if it exists.
- */
-int
-e2prog (char *name)
-{
- char *p = strstr (name, "e2");
- if (!p) return 0;
- p++;
-
- *p = '4';
- if (prog_exists (name))
- return 0;
-
- *p = '2';
- if (prog_exists (name))
- return 0;
-
- reply_with_error ("cannot find required program %s", name);
- return -1;
-}
-
char **
do_tune2fs_l (const char *device)
{
@@ -65,11 +39,7 @@ do_tune2fs_l (const char *device)
char *p, *pend, *colon;
DECLARE_STRINGSBUF (ret);
- char prog[] = "tune2fs";
- if (e2prog (prog) == -1)
- return NULL;
-
- r = command (&out, &err, prog, "-l", device, NULL);
+ r = command (&out, &err, "tune2fs", "-l", device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
@@ -165,11 +135,7 @@ do_set_e2uuid (const char *device, const char *uuid)
int r;
char *err;
- char prog[] = "tune2fs";
- if (e2prog (prog) == -1)
- return -1;
-
- r = command (NULL, &err, prog, "-U", uuid, device, NULL);
+ r = command (NULL, &err, "tune2fs", "-U", uuid, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
@@ -192,17 +158,13 @@ if_not_mounted_run_e2fsck (const char *device)
{
char *err;
int r, mounted;
- char prog[] = "e2fsck";
-
- if (e2prog (prog) == -1)
- return -1;
mounted = is_device_mounted (device);
if (mounted == -1)
return -1;
if (!mounted) {
- r = command (NULL, &err, prog, "-fy", device, NULL);
+ r = command (NULL, &err, "e2fsck", "-fy", device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
@@ -220,14 +182,10 @@ do_resize2fs (const char *device)
char *err;
int r;
- char prog[] = "resize2fs";
- if (e2prog (prog) == -1)
- return -1;
-
if (if_not_mounted_run_e2fsck (device) == -1)
return -1;
- r = command (NULL, &err, prog, device, NULL);
+ r = command (NULL, &err, "resize2fs", device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
@@ -244,10 +202,6 @@ do_resize2fs_size (const char *device, int64_t size)
char *err;
int r;
- char prog[] = "resize2fs";
- if (e2prog (prog) == -1)
- return -1;
-
/* resize2fs itself may impose additional limits. Since we are
* going to use the 'K' suffix however we can only work with whole
* kilobytes.
@@ -265,7 +219,7 @@ do_resize2fs_size (const char *device, int64_t size)
char buf[32];
snprintf (buf, sizeof buf, "%" PRIi64 "K", size);
- r = command (NULL, &err, prog, device, buf, NULL);
+ r = command (NULL, &err, "resize2fs", device, buf, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
@@ -282,14 +236,10 @@ do_resize2fs_M (const char *device)
char *err;
int r;
- char prog[] = "resize2fs";
- if (e2prog (prog) == -1)
- return -1;
-
if (if_not_mounted_run_e2fsck (device) == -1)
return -1;
- r = command (NULL, &err, prog, "-M", device, NULL);
+ r = command (NULL, &err, "resize2fs", "-M", device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
@@ -310,10 +260,6 @@ do_e2fsck (const char *device,
char *err;
size_t i = 0;
int r;
- char prog[] = "e2fsck";
-
- if (e2prog (prog) == -1)
- return -1;
/* Default if not selected. */
if (!(optargs_bitmask & GUESTFS_E2FSCK_CORRECT_BITMASK))
@@ -326,7 +272,7 @@ do_e2fsck (const char *device,
return -1;
}
- ADD_ARG (argv, i, prog);
+ ADD_ARG (argv, i, "e2fsck");
ADD_ARG (argv, i, "-f");
if (correct)
@@ -369,15 +315,11 @@ do_mke2journal (int blocksize, const char *device)
char *err;
int r;
- char prog[] = "mke2fs";
- if (e2prog (prog) == -1)
- return -1;
-
char blocksize_s[32];
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
r = command (NULL, &err,
- prog, "-F", "-O", "journal_dev", "-b", blocksize_s,
+ "mke2fs", "-F", "-O", "journal_dev", "-b", blocksize_s,
device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
@@ -395,10 +337,6 @@ do_mke2journal_L (int blocksize, const char *label, const char *device)
char *err;
int r;
- char prog[] = "mke2fs";
- if (e2prog (prog) == -1)
- return -1;
-
if (strlen (label) > EXT2_LABEL_MAX) {
reply_with_error ("%s: ext2 labels are limited to %d bytes",
label, EXT2_LABEL_MAX);
@@ -409,7 +347,7 @@ do_mke2journal_L (int blocksize, const char *label, const char *device)
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
r = command (NULL, &err,
- prog, "-F", "-O", "journal_dev", "-b", blocksize_s,
+ "mke2fs", "-F", "-O", "journal_dev", "-b", blocksize_s,
"-L", label,
device, NULL);
if (r == -1) {
@@ -428,15 +366,11 @@ do_mke2journal_U (int blocksize, const char *uuid, const char *device)
char *err;
int r;
- char prog[] = "mke2fs";
- if (e2prog (prog) == -1)
- return -1;
-
char blocksize_s[32];
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
r = command (NULL, &err,
- prog, "-F", "-O", "journal_dev", "-b", blocksize_s,
+ "mke2fs", "-F", "-O", "journal_dev", "-b", blocksize_s,
"-U", uuid,
device, NULL);
if (r == -1) {
@@ -456,10 +390,6 @@ do_mke2fs_J (const char *fstype, int blocksize, const char *device,
char *err;
int r;
- char prog[] = "mke2fs";
- if (e2prog (prog) == -1)
- return -1;
-
char blocksize_s[32];
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
@@ -468,7 +398,7 @@ do_mke2fs_J (const char *fstype, int blocksize, const char *device,
snprintf (jdev, len+32, "device=%s", journal);
r = command (NULL, &err,
- prog, "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
+ "mke2fs", "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
@@ -487,10 +417,6 @@ do_mke2fs_JL (const char *fstype, int blocksize, const char *device,
char *err;
int r;
- char prog[] = "mke2fs";
- if (e2prog (prog) == -1)
- return -1;
-
if (strlen (label) > EXT2_LABEL_MAX) {
reply_with_error ("%s: ext2 labels are limited to %d bytes",
label, EXT2_LABEL_MAX);
@@ -505,7 +431,7 @@ do_mke2fs_JL (const char *fstype, int blocksize, const char *device,
snprintf (jdev, len+32, "device=LABEL=%s", label);
r = command (NULL, &err,
- prog, "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
+ "mke2fs", "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
@@ -524,10 +450,6 @@ do_mke2fs_JU (const char *fstype, int blocksize, const char *device,
char *err;
int r;
- char prog[] = "mke2fs";
- if (e2prog (prog) == -1)
- return -1;
-
char blocksize_s[32];
snprintf (blocksize_s, sizeof blocksize_s, "%d", blocksize);
@@ -536,7 +458,7 @@ do_mke2fs_JU (const char *fstype, int blocksize, const char *device,
snprintf (jdev, len+32, "device=UUID=%s", uuid);
r = command (NULL, &err,
- prog, "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
+ "mke2fs", "-F", "-t", fstype, "-J", jdev, "-b", blocksize_s,
device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
@@ -566,7 +488,6 @@ do_tune2fs (const char *device, /* only required parameter */
size_t i = 0;
int r;
char *err;
- char prog[] = "tune2fs";
char maxmountcount_s[64];
char mountcount_s[64];
char group_s[64];
@@ -575,10 +496,7 @@ do_tune2fs (const char *device, /* only required parameter */
char reservedblockscount_s[64];
char user_s[64];
- if (e2prog (prog) == -1)
- return -1;
-
- ADD_ARG (argv, i, prog);
+ ADD_ARG (argv, i, "tune2fs");
if (optargs_bitmask & GUESTFS_TUNE2FS_FORCE_BITMASK) {
if (force)
@@ -686,7 +604,7 @@ do_tune2fs (const char *device, /* only required parameter */
r = commandv (NULL, &err, argv);
if (r == -1) {
- reply_with_error ("%s: %s: %s", prog, device, err);
+ reply_with_error ("%s: %s", device, err);
free (err);
return -1;
}
diff --git a/daemon/labels.c b/daemon/labels.c
index b28d1b2..5c59a4c 100644
--- a/daemon/labels.c
+++ b/daemon/labels.c
@@ -33,17 +33,13 @@ e2label (const char *device, const char *label)
int r;
char *err;
- char prog[] = "e2label";
- if (e2prog (prog) == -1)
- return -1;
-
if (strlen (label) > EXT2_LABEL_MAX) {
reply_with_error ("%s: ext2 labels are limited to %d bytes",
label, EXT2_LABEL_MAX);
return -1;
}
- r = command (NULL, &err, prog, device, label, NULL);
+ r = command (NULL, &err, "e2label", device, label, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (err);
diff --git a/daemon/mkfs.c b/daemon/mkfs.c
index c7ae50d..7d28061 100644
--- a/daemon/mkfs.c
+++ b/daemon/mkfs.c
@@ -43,7 +43,6 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
char sectorsize_str[32];
int r;
char *err;
- char mke2fs[] = "mke2fs";
int extfs = 0;
if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
@@ -54,11 +53,8 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
* the mkfs program "eats" some options, in particular the -F
* option.
*/
- if (extfs) {
- if (e2prog (mke2fs) == -1)
- return -1;
- ADD_ARG (argv, i, mke2fs);
- }
+ if (extfs)
+ ADD_ARG (argv, i, "mke2fs");
else
ADD_ARG (argv, i, "mkfs");
--
1.7.11.5

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3a2407aa645f6ded169e91ac7a4386c879d9254183d231f097c837c13499a8a
size 8213887

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3950f164c52444dc1582326d48138da66f8d38e090832ccbb69919765e692f95
size 8231357

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Aug 30 20:37:06 CEST 2012 - ohering@suse.de
- Update to version 1.19.36
Add patch to collect a list of all called binaries from guestfsd
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Aug 30 10:24:49 CEST 2012 - ohering@suse.de Thu Aug 30 10:24:49 CEST 2012 - ohering@suse.de

View File

@ -8,15 +8,12 @@
#%modules: virtio_pci #%modules: virtio_pci
#%modules: virtio_scsi #%modules: virtio_scsi
# #
#%programs: blockdev
#%programs: cat #%programs: cat
#%programs: date #%programs: date
#%programs: guestfsd #%programs: guestfsd
#%programs: ip #%programs: ip
#%programs: lsmod #%programs: lsmod
#%programs: lvm #@GUESTFS_EXT_CMDS@
#%programs: mdadm
#%programs: parted
# #
# from libguestfs-1.19.34/appliance/init: # from libguestfs-1.19.34/appliance/init:

View File

@ -129,14 +129,17 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Tools for accessing and modifying virtual machine disk images Summary: Tools for accessing and modifying virtual machine disk images
License: LGPL-2.1 License: LGPL-2.1
Group: System/Filesystems Group: System/Filesystems
Version: 1.19.35 Version: 1.19.36
Release: 0 Release: 0
Patch1: 0001-daemon-Remove-e2prog-hack-only-needed-for-RHEL-5.patch
Patch2: 0002-daemon-collect-list-of-called-external-commands.patch
Patch5: libguestfs-1.13.14-ruby.patch Patch5: libguestfs-1.13.14-ruby.patch
Patch100: libguestfs.perl.install_vendor.patch Patch100: libguestfs.perl.install_vendor.patch
Patch101: libguestfs.perl.no-rpath.patch Patch101: libguestfs.perl.no-rpath.patch
Source0: %{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
Source10: libguestfs.mkinitrd.boot.sh Source10: libguestfs.mkinitrd.boot.sh
Source11: libguestfs.mkinitrd.setup.sh Source11: libguestfs.mkinitrd.setup.sh
Source42: mkinitrd.patch
Recommends: %{name}-data Recommends: %{name}-data
%description %description
@ -281,6 +284,8 @@ virtual machines.
%prep %prep
%setup -q %setup -q
%patch1 -p1
%patch2 -p1
%patch100 -p1 %patch100 -p1
%patch101 -p1 %patch101 -p1
@ -321,8 +326,27 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/*.{l,}a
touch %{name}.lang touch %{name}.lang
%find_lang %{name} %find_lang %{name}
# #
cmds="`
objcopy -j .guestfs_ext_cmds -O binary $RPM_BUILD_ROOT/usr/sbin/guestfsd /dev/stdout |
strings |
sort -u
`"
> cmds.txt
for cmd in ls $cmds
do
if test -n "` PATH=$PATH:/sbin:/usr/sbin type -p $cmd `"
then
echo "#%%programs: $cmd" >> cmds.txt
else
echo "# missing: $cmd" >> cmds.txt
fi
done
rm -rf mkinitrd rm -rf mkinitrd
cp -av /lib/mkinitrd . cp -av /lib/mkinitrd .
if patch -p0 --dry-run < %{S:42}
then
patch -p0 < %{S:42}
fi
for bad in \ for bad in \
setup-dm.sh \ setup-dm.sh \
setup-storage.sh setup-storage.sh
@ -332,6 +356,13 @@ done
cp -avL %{S:10} mkinitrd/scripts/boot-guestfs.sh cp -avL %{S:10} mkinitrd/scripts/boot-guestfs.sh
cp -avL %{S:11} mkinitrd/scripts/setup-guestfs.sh cp -avL %{S:11} mkinitrd/scripts/setup-guestfs.sh
chmod 755 mkinitrd/scripts/*guestfs.sh chmod 755 mkinitrd/scripts/*guestfs.sh
sed -i~ '
/^#@GUESTFS_EXT_CMDS@/ {
s@^.*@@
r cmds.txt
}
' mkinitrd/scripts/boot-guestfs.sh
diff -u mkinitrd/scripts/boot-guestfs.sh~ mkinitrd/scripts/boot-guestfs.sh || :
/sbin/mkinitrd_setup \ /sbin/mkinitrd_setup \
-s $PWD/mkinitrd/scripts \ -s $PWD/mkinitrd/scripts \
-i $PWD/mkinitrd -i $PWD/mkinitrd
@ -344,6 +375,8 @@ arch=i686 #?
cp -avL /boot/vmlinuz mkinitrd/boot_tmp/vmlinuz.${arch} cp -avL /boot/vmlinuz mkinitrd/boot_tmp/vmlinuz.${arch}
cp -avL /boot/System.map-${kver} mkinitrd/boot_tmp cp -avL /boot/System.map-${kver} mkinitrd/boot_tmp
env PATH=${RPM_BUILD_ROOT}/usr/bin:${RPM_BUILD_ROOT}/usr/sbin:${PATH} \ env PATH=${RPM_BUILD_ROOT}/usr/bin:${RPM_BUILD_ROOT}/usr/sbin:${PATH} \
#bash -x \
/sbin/mkinitrd \ /sbin/mkinitrd \
-l $PWD/mkinitrd \ -l $PWD/mkinitrd \
-k vmlinuz.${arch} \ -k vmlinuz.${arch} \

11
mkinitrd.patch Normal file
View File

@ -0,0 +1,11 @@
--- mkinitrd/scripts/setup-prepare.sh.orig 2012-08-30 18:06:04.000000000 +0000
+++ mkinitrd/scripts/setup-prepare.sh 2012-08-30 18:14:06.000000000 +0000
@@ -29,7 +29,7 @@
if [ -h "$1" ]; then
lnkTarget=$(readlink $1)
if [ -e $lnkTarget ];then
- cp -a $lnkTarget $2/$lnkTarget
+ cp -a --remove-destination $lnkTarget $2/
else
# This link points to something in the same directory
lnkSrc="$1"