We don't support RHEL 5 upstream (see the 'oldlinux' branch for a
version that works with RHEL 5). Therefore remove a bunch of hacks
that were only needed on RHEL 5.
---
appliance/packagelist.in | 2 -
common-rules.mk | 8 -
daemon/parted.c | 455 +++++++++++-----------------------------
daemon/swap.c | 18 +-
generator/actions.ml | 4 +-
generator/ruby.ml | 14 --
run.in | 13 +-
src/inspect-apps.c | 13 --
tests/regressions/rhbz975797.sh | 5 +-
tests/xml/fake-libvirt-xml.c | 9 -
10 files changed, 129 insertions(+), 412 deletions(-)
diff --git a/appliance/packagelist.in b/appliance/packagelist.in
index fee6fa0..aa5e07e 100644
--- a/appliance/packagelist.in
+++ b/appliance/packagelist.in
@@ -28,8 +28,6 @@ ifelse(REDHAT,1,
cryptsetup
cryptsetup-luks dnl old name used before Fedora 17
dhclient
- dnl e4fsprogs only exists on RHEL 5, will be ignored everywhere else.
- e4fsprogs
genisoimage
gfs-utils
gfs2-utils
diff --git a/common-rules.mk b/common-rules.mk
index 312107e..e6b40d1 100644
--- a/common-rules.mk
+++ b/common-rules.mk
@@ -19,11 +19,3 @@
# cf. 'subdir-rules.mk'
-include $(top_builddir)/localenv
-
-# Old RHEL 5 autoconf defines these, but RHEL 5 automake doesn't
-# create variables for them. So define them here if they're not
-# defined already.
-builddir ?= @builddir@
-abs_builddir ?= @abs_builddir@
-srcdir ?= @srcdir@
-abs_srcdir ?= @abs_srcdir@
diff --git a/daemon/parted.c b/daemon/parted.c
index fab3423..df6b7e7 100644
--- a/daemon/parted.c
+++ b/daemon/parted.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <stdbool.h>
#include <stdint.h>
#include <inttypes.h>
#include <string.h>
@@ -33,13 +34,6 @@ GUESTFSD_EXT_CMD(str_parted, parted);
GUESTFSD_EXT_CMD(str_sfdisk, sfdisk);
GUESTFSD_EXT_CMD(str_sgdisk, sgdisk);
-enum parted_has_m_opt {
- PARTED_INVALID = -1,
- /* parted do not support -m option */
- PARTED_OPT_NO_M = 0,
- PARTED_OPT_HAS_M = 1,
-};
-
/* Notes:
*
* Parted 1.9 sends error messages to stdout, hence use of the
@@ -319,43 +313,14 @@ get_table_field (const char *line, int n)
return q;
}
-/* RHEL 5 parted doesn't have the -m (machine readable) option so we
- * must do a lot more work to parse the output in
- * print_partition_table below. Test for this option the first time
- * this function is called.
- */
-static enum parted_has_m_opt
-test_parted_m_opt (void)
-{
- static enum parted_has_m_opt result = PARTED_INVALID;
-
- if (result >= 0)
- return result;
-
- CLEANUP_FREE char *err = NULL;
- int r = commandr (NULL, &err, str_parted, "-s", "-m",
"/dev/null", NULL);
- if (r == -1) {
- /* Test failed, eg. missing or completely unusable parted binary. */
- reply_with_error ("could not run 'parted' command");
- return -1;
- }
-
- if (err && strstr (err, "invalid option -- m"))
- result = PARTED_OPT_NO_M;
- else
- result = PARTED_OPT_HAS_M;
- return result;
-}
-
static char *
-print_partition_table (const char *device,
- enum parted_has_m_opt parted_has_m_opt)
+print_partition_table (const char *device, bool add_m_option)
{
char *out;
CLEANUP_FREE char *err = NULL;
int r;
- if (PARTED_OPT_HAS_M == parted_has_m_opt)
+ if (add_m_option)
r = command (&out, &err, str_parted, "-m", "-s",
"--", device,
"unit", "b",
"print", NULL);
@@ -364,15 +329,13 @@ print_partition_table (const char *device,
"unit", "b",
"print", NULL);
if (r == -1) {
- /* Hack for parted 1.x which sends errors to stdout. */
- const char *msg = *err ? err : out;
int errcode = 0;
/* Translate "unrecognised disk label" into an errno code. */
- if (msg && strstr (msg, "unrecognised disk label") != NULL)
+ if (err && strstr (err, "unrecognised disk label") != NULL)
errcode = EINVAL;
- reply_with_error_errno (errcode, "parted print: %s: %s", device, msg);
+ reply_with_error_errno (errcode, "parted print: %s: %s", device, err);
free (out);
return NULL;
}
@@ -383,93 +346,46 @@ print_partition_table (const char *device,
char *
do_part_get_parttype (const char *device)
{
- enum parted_has_m_opt parted_has_m_opt = test_parted_m_opt ();
- if (parted_has_m_opt == PARTED_INVALID)
- return NULL;
-
- CLEANUP_FREE char *out = print_partition_table (device, parted_has_m_opt);
+ CLEANUP_FREE char *out = print_partition_table (device, true);
if (!out)
return NULL;
- if (PARTED_OPT_HAS_M == parted_has_m_opt) {
- /* New-style parsing using the "machine-readable" format from
- * 'parted -m'.
- */
- CLEANUP_FREE_STRING_LIST char **lines = split_lines (out);
-
- if (!lines)
- return NULL;
-
- if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
- reply_with_error ("unknown signature, expected \"BYT;\" as first
line of the output: %s",
- lines[0] ? lines[0] : "(signature was null)");
- return NULL;
- }
-
- if (lines[1] == NULL) {
- reply_with_error ("parted didn't return a line describing the
device");
- return NULL;
- }
-
- /* lines[1] is something like:
- * "/dev/sda:1953525168s:scsi:512:512:msdos:ATA Hitachi HDT72101;"
- */
- char *r = get_table_field (lines[1], 5);
- if (r == NULL) {
- return NULL;
- }
-
- /* If "loop" return an error (RHBZ#634246). */
- if (STREQ (r, "loop")) {
- free (r);
- reply_with_error ("not a partitioned device");
- return NULL;
- }
-
- return r;
+ CLEANUP_FREE_STRING_LIST char **lines = split_lines (out);
+ if (!lines)
+ return NULL;
+
+ if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
+ reply_with_error ("unknown signature, expected \"BYT;\" as first line
of the output: %s",
+ lines[0] ? lines[0] : "(signature was null)");
+ return NULL;
}
- else {
- /* Old-style. Look for "\nPartition Table: <str>\n". */
- char *p = strstr (out, "\nPartition Table: ");
- if (!p) {
- reply_with_error ("parted didn't return Partition Table line");
- return NULL;
- }
- p += 18;
- char *q = strchr (p, '\n');
- if (!q) {
- reply_with_error ("parted Partition Table has no end of line char");
- return NULL;
- }
-
- *q = '\0';
-
- p = strdup (p);
- if (!p) {
- reply_with_perror ("strdup");
- return NULL;
- }
-
- /* If "loop" return an error (RHBZ#634246). */
- if (STREQ (p, "loop")) {
- free (p);
- reply_with_error ("not a partitioned device");
- return NULL;
- }
+ if (lines[1] == NULL) {
+ reply_with_error ("parted didn't return a line describing the
device");
+ return NULL;
+ }
- return p; /* caller frees */
+ /* lines[1] is something like:
+ * "/dev/sda:1953525168s:scsi:512:512:msdos:ATA Hitachi HDT72101;"
+ */
+ char *r = get_table_field (lines[1], 5);
+ if (r == NULL)
+ return NULL;
+
+ /* If "loop" return an error (RHBZ#634246). */
+ if (STREQ (r, "loop")) {
+ free (r);
+ reply_with_error ("not a partitioned device");
+ return NULL;
}
+
+ return r;
}
guestfs_int_partition_list *
do_part_list (const char *device)
{
- enum parted_has_m_opt parted_has_m_opt = test_parted_m_opt ();
- if (parted_has_m_opt == PARTED_INVALID)
- return NULL;
-
- CLEANUP_FREE char *out = print_partition_table (device, parted_has_m_opt);
+ CLEANUP_FREE char *out = print_partition_table (device, true);
if (!out)
return NULL;
@@ -480,97 +396,36 @@ do_part_list (const char *device)
guestfs_int_partition_list *r;
- if (PARTED_OPT_HAS_M == parted_has_m_opt) {
- /* New-style parsing using the "machine-readable" format from
- * 'parted -m'.
- *
- * lines[0] is "BYT;", lines[1] is the device line which we ignore,
- * lines[2..] are the partitions themselves. Count how many.
- */
- size_t nr_rows = 0, row;
- for (row = 2; lines[row] != NULL; ++row)
- ++nr_rows;
-
- r = malloc (sizeof *r);
- if (r == NULL) {
- reply_with_perror ("malloc");
- return NULL;
- }
- r->guestfs_int_partition_list_len = nr_rows;
- r->guestfs_int_partition_list_val =
- malloc (nr_rows * sizeof (guestfs_int_partition));
- if (r->guestfs_int_partition_list_val == NULL) {
- reply_with_perror ("malloc");
- goto error2;
- }
-
- /* Now parse the lines. */
- size_t i;
- for (i = 0, row = 2; lines[row] != NULL; ++i, ++row) {
- if (sscanf (lines[row], "%d:%" SCNi64 "B:%" SCNi64
"B:%" SCNi64 "B",
- &r->guestfs_int_partition_list_val[i].part_num,
- &r->guestfs_int_partition_list_val[i].part_start,
- &r->guestfs_int_partition_list_val[i].part_end,
- &r->guestfs_int_partition_list_val[i].part_size) != 4) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
- goto error3;
- }
- }
+ /* lines[0] is "BYT;", lines[1] is the device line which we ignore,
+ * lines[2..] are the partitions themselves. Count how many.
+ */
+ size_t nr_rows = 0, row;
+ for (row = 2; lines[row] != NULL; ++row)
+ ++nr_rows;
+
+ r = malloc (sizeof *r);
+ if (r == NULL) {
+ reply_with_perror ("malloc");
+ return NULL;
+ }
+ r->guestfs_int_partition_list_len = nr_rows;
+ r->guestfs_int_partition_list_val =
+ malloc (nr_rows * sizeof (guestfs_int_partition));
+ if (r->guestfs_int_partition_list_val == NULL) {
+ reply_with_perror ("malloc");
+ goto error2;
}
- else {
- /* Old-style. Start at the line following "^Number", up to the
- * next blank line.
- */
- size_t start = 0, end = 0, row;
-
- for (row = 0; lines[row] != NULL; ++row)
- if (STRPREFIX (lines[row], "Number")) {
- start = row+1;
- break;
- }
-
- if (start == 0) {
- reply_with_error ("parted output has no \"Number\" line");
- return NULL;
- }
-
- for (row = start; lines[row] != NULL; ++row)
- if (STREQ (lines[row], "")) {
- end = row;
- break;
- }
-
- if (end == 0) {
- reply_with_error ("parted output has no blank after end of table");
- return NULL;
- }
-
- size_t nr_rows = end - start;
-
- r = malloc (sizeof *r);
- if (r == NULL) {
- reply_with_perror ("malloc");
- return NULL;
- }
- r->guestfs_int_partition_list_len = nr_rows;
- r->guestfs_int_partition_list_val =
- malloc (nr_rows * sizeof (guestfs_int_partition));
- if (r->guestfs_int_partition_list_val == NULL) {
- reply_with_perror ("malloc");
- goto error2;
- }
- /* Now parse the lines. */
- size_t i;
- for (i = 0, row = start; row < end; ++i, ++row) {
- if (sscanf (lines[row], " %d %" SCNi64 "B %" SCNi64 "B
%" SCNi64 "B",
- &r->guestfs_int_partition_list_val[i].part_num,
- &r->guestfs_int_partition_list_val[i].part_start,
- &r->guestfs_int_partition_list_val[i].part_end,
- &r->guestfs_int_partition_list_val[i].part_size) != 4) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
- goto error3;
- }
+ /* Now parse the lines. */
+ size_t i;
+ for (i = 0, row = 2; lines[row] != NULL; ++i, ++row) {
+ if (sscanf (lines[row], "%d:%" SCNi64 "B:%" SCNi64
"B:%" SCNi64 "B",
+ &r->guestfs_int_partition_list_val[i].part_num,
+ &r->guestfs_int_partition_list_val[i].part_start,
+ &r->guestfs_int_partition_list_val[i].part_end,
+ &r->guestfs_int_partition_list_val[i].part_size) != 4) {
+ reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
+ goto error3;
}
}
@@ -591,11 +446,7 @@ do_part_get_bootable (const char *device, int partnum)
return -1;
}
- enum parted_has_m_opt parted_has_m_opt = test_parted_m_opt ();
- if (parted_has_m_opt == PARTED_INVALID)
- return -1;
-
- CLEANUP_FREE char *out = print_partition_table (device, parted_has_m_opt);
+ CLEANUP_FREE char *out = print_partition_table (device, true);
if (!out)
return -1;
@@ -604,95 +455,41 @@ do_part_get_bootable (const char *device, int partnum)
if (!lines)
return -1;
- if (PARTED_OPT_HAS_M == parted_has_m_opt) {
- /* New-style parsing using the "machine-readable" format from
- * 'parted -m'.
- *
- * Partitions may not be in any order, so we have to look for
- * the matching partition number (RHBZ#602997).
- */
- if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
- reply_with_error ("unknown signature, expected \"BYT;\" as first
line of the output: %s",
- lines[0] ? lines[0] : "(signature was null)");
- return -1;
- }
-
- if (lines[1] == NULL) {
- reply_with_error ("parted didn't return a line describing the
device");
- return -1;
- }
-
- size_t row;
- int pnum;
- for (row = 2; lines[row] != NULL; ++row) {
- if (sscanf (lines[row], "%d:", &pnum) != 1) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
- return -1;
- }
- if (pnum == partnum)
- break;
- }
-
- if (lines[row] == NULL) {
- reply_with_error ("partition number %d not found", partnum);
- return -1;
- }
-
- CLEANUP_FREE char *boot = get_table_field (lines[row], 6);
- if (boot == NULL)
- return -1;
-
- return strstr (boot, "boot") != NULL;
+ /* Partitions may not be in any order, so we have to look for
+ * the matching partition number (RHBZ#602997).
+ */
+ if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
+ reply_with_error ("unknown signature, expected \"BYT;\" as first line
of the output: %s",
+ lines[0] ? lines[0] : "(signature was null)");
+ return -1;
}
- else {
- /* Old-style: First look for the line matching "^Number". */
- size_t start = 0, header, row;
-
- for (row = 0; lines[row] != NULL; ++row)
- if (STRPREFIX (lines[row], "Number")) {
- start = row+1;
- header = row;
- break;
- }
- if (start == 0) {
- reply_with_error ("parted output has no \"Number\" line");
- return -1;
- }
+ if (lines[1] == NULL) {
+ reply_with_error ("parted didn't return a line describing the
device");
+ return -1;
+ }
- /* Now we have to look at the column number of the "Flags" field.
- * This is because parted's output has no way to represent a
- * missing field except as whitespace, so we cannot just count
- * fields from the left. eg. The "File system" field is often
- * missing in the output.
- */
- char *p = strstr (lines[header], "Flags");
- if (!p) {
- reply_with_error ("parted output has no \"Flags\" field");
+ size_t row;
+ int pnum;
+ for (row = 2; lines[row] != NULL; ++row) {
+ if (sscanf (lines[row], "%d:", &pnum) != 1) {
+ reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
return -1;
}
- size_t col = p - lines[header];
+ if (pnum == partnum)
+ break;
+ }
- /* Partitions may not be in any order, so we have to look for
- * the matching partition number (RHBZ#602997).
- */
- int pnum;
- for (row = start; lines[row] != NULL; ++row) {
- if (sscanf (lines[row], " %d", &pnum) != 1) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
- return -1;
- }
- if (pnum == partnum)
- break;
- }
+ if (lines[row] == NULL) {
+ reply_with_error ("partition number %d not found", partnum);
+ return -1;
+ }
- if (lines[row] == NULL) {
- reply_with_error ("partition number %d not found", partnum);
- return -1;
- }
+ CLEANUP_FREE char *boot = get_table_field (lines[row], 6);
+ if (boot == NULL)
+ return -1;
- return STRPREFIX (&lines[row][col], "boot");
- }
+ return strstr (boot, "boot") != NULL;
}
/* Test if sfdisk is recent enough to have --part-type, to be used instead
@@ -979,63 +776,51 @@ do_part_get_name (const char *device, int partnum)
return NULL;
if (STREQ (parttype, "gpt")) {
- enum parted_has_m_opt parted_has_m_opt = test_parted_m_opt ();
- if (parted_has_m_opt == PARTED_INVALID)
- return NULL;
-
- CLEANUP_FREE char *out = print_partition_table (device, parted_has_m_opt);
+ CLEANUP_FREE char *out = print_partition_table (device, true);
if (!out)
return NULL;
- if (PARTED_OPT_HAS_M == parted_has_m_opt) {
- /* New-style parsing using the "machine-readable" format from
- * 'parted -m'.
- */
- CLEANUP_FREE_STRING_LIST char **lines = split_lines (out);
+ CLEANUP_FREE_STRING_LIST char **lines = split_lines (out);
- if (!lines)
- return NULL;
-
- if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
- reply_with_error ("unknown signature, expected \"BYT;\" as first
line of the output: %s",
- lines[0] ? lines[0] : "(signature was null)");
- return NULL;
- }
+ if (!lines)
+ return NULL;
- if (lines[1] == NULL) {
- reply_with_error ("parted didn't return a line describing the
device");
- return NULL;
- }
+ if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
+ reply_with_error ("unknown signature, expected \"BYT;\" as first
line of the output: %s",
+ lines[0] ? lines[0] : "(signature was null)");
+ return NULL;
+ }
- size_t row;
- int pnum;
- for (row = 2; lines[row] != NULL; ++row) {
- if (sscanf (lines[row], "%d:", &pnum) != 1) {
- reply_with_error ("could not parse row from output of parted print
command: %s", lines[row]);
- return NULL;
- }
- if (pnum == partnum)
- break;
- }
+ if (lines[1] == NULL) {
+ reply_with_error ("parted didn't return a line describing the
device");
+ return NULL;
+ }
- if (lines[row] == NULL) {
- reply_with_error ("partition number %d not found", partnum);
+ size_t row;
+ int pnum;
+ for (row = 2; lines[row] != NULL; ++row) {
+ if (sscanf (lines[row], "%d:", &pnum) != 1) {
+ reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
return NULL;
}
+ if (pnum == partnum)
+ break;
+ }
- char *name = get_table_field (lines[row], 5);
- if (name == NULL)
- reply_with_error ("cannot get the name field from '%s'",
lines[row]);
-
- return name;
+ if (lines[row] == NULL) {
+ reply_with_error ("partition number %d not found", partnum);
+ return NULL;
}
+
+ char *name = get_table_field (lines[row], 5);
+ if (name == NULL)
+ reply_with_error ("cannot get the name field from '%s'",
lines[row]);
+
+ return name;
} else {
reply_with_error ("part-get-name can only be used on GUID Partition
Tables");
return NULL;
}
-
- reply_with_error ("cannot get the partition name from '%s' layouts",
parttype);
- return NULL;
}
char *
@@ -1052,7 +837,7 @@ do_part_get_mbr_part_type (const char *device, int partnum)
* partition type info.
* Use traditional style.
*/
- CLEANUP_FREE char *out = print_partition_table (device, PARTED_OPT_NO_M);
+ CLEANUP_FREE char *out = print_partition_table (device, false);
if (!out)
return NULL;
diff --git a/daemon/swap.c b/daemon/swap.c
index 26fe30d..9d7839e 100644
--- a/daemon/swap.c
+++ b/daemon/swap.c
@@ -38,26 +38,10 @@ GUESTFSD_EXT_CMD(str_swaplabel, swaplabel);
/* Confirmed this is true for Linux swap partitions from the Linux sources. */
#define SWAP_LABEL_MAX 16
-/* Convenient place to test for the later version of e2fsprogs
- * and util-linux which supports -U parameters to specify UUIDs.
- * (Not supported in RHEL 5).
- */
int
optgroup_linuxfsuuid_available (void)
{
- CLEANUP_FREE char *err = NULL;
- int av;
-
- /* Upstream util-linux have been gradually changing '--help' to go
- * from stderr to stdout, and changing the return code from 1 to 0.
- * Thus we need to fold stdout and stderr together, and ignore the
- * return code.
- */
- ignore_value (commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_mkswap, "--help", NULL));
-
- av = strstr (err, "-U") != NULL;
- return av;
+ return 1;
}
/* Takes optional arguments, consult optargs_bitmask. */
diff --git a/generator/actions.ml b/generator/actions.ml
index 12d5e5a..2f29f7a 100644
--- a/generator/actions.ml
+++ b/generator/actions.ml
@@ -6169,11 +6169,11 @@ the command C<mount -o loop file mountpoint>." };
InitEmpty, Always, TestRun (
[["part_disk"; "/dev/sda"; "mbr"];
["mkswap"; "/dev/sda1"; "hello";
"NOARG"]]), [];
- InitEmpty, IfAvailable "linuxfsuuid", TestResultString (
+ InitEmpty, Always, TestResultString (
[["part_disk"; "/dev/sda"; "mbr"];
["mkswap"; "/dev/sda1"; "NOARG"; uuid];
["vfs_uuid"; "/dev/sda1"]], uuid), [];
- InitEmpty, IfAvailable "linuxfsuuid", TestResultString (
+ InitEmpty, Always, TestResultString (
[["part_disk"; "/dev/sda"; "mbr"];
["mkswap"; "/dev/sda1"; "hello"; uuid];
["vfs_label"; "/dev/sda1"]], "hello"), []
diff --git a/generator/ruby.ml b/generator/ruby.ml
index 87bb34a..cb187b0 100644
--- a/generator/ruby.ml
+++ b/generator/ruby.ml
@@ -84,20 +84,6 @@ let rec generate_ruby_c () =
#define RSTRING_PTR(r) (RSTRING((r))->ptr)
#endif
-/* For RHEL 5 (Ruby 1.8.5) */
-#ifndef HAVE_RB_HASH_LOOKUP
-VALUE
-rb_hash_lookup (VALUE hash, VALUE key)
-{
- volatile VALUE val;
-
- if (!st_lookup (RHASH(hash)->tbl, key, &val))
- return Qnil;
-
- return val;
-}
-#endif /* !HAVE_RB_HASH_LOOKUP */
-
static VALUE m_guestfs; /* guestfs module */
static VALUE c_guestfs; /* guestfs_h handle */
static VALUE e_Error; /* used for all errors */
diff --git a/run.in b/run.in
index 42f8cc8..46dbaf0 100755
--- a/run.in
+++ b/run.in
@@ -238,14 +238,11 @@ fi
timeout_period=4h
timeout_kill=30s
-# Do we have Padraig's timeout utility (from coreutils)?
-if timeout --help >/dev/null 2>&1; then
- # Must use the --foreground option (RHBZ#1025269).
- if timeout --foreground 2 sleep 0 >/dev/null 2>&1; then
- # Does this version of timeout have the -k option? (Not on RHEL 6)
- if timeout -k 10s 10s true >/dev/null 2>&1; then
- timeout="timeout --foreground -k $timeout_kill $timeout_period"
- fi
+# Must use the --foreground option (RHBZ#1025269).
+if timeout --foreground 2 sleep 0 >/dev/null 2>&1; then
+ # Does this version of timeout have the -k option? (Not on RHEL 6)
+ if timeout -k 10s 10s true >/dev/null 2>&1; then
+ timeout="timeout --foreground -k $timeout_kill $timeout_period"
fi
fi
diff --git a/src/inspect-apps.c b/src/inspect-apps.c
index a7da1dc..b54cf07 100644
--- a/src/inspect-apps.c
+++ b/src/inspect-apps.c
@@ -30,12 +30,6 @@
#include <sys/endian.h>
#endif
-/* be32toh is usually a macro defined in <endian.h>, but it might be
- * a function in some system so check both, and if neither is defined
- * then define be32toh for RHEL 5.
- */
-#if !defined(HAVE_BE32TOH) && !defined(be32toh)
-
#if defined __APPLE__ && defined __MACH__
/* Define/include necessary items on MacOS X */
#include <machine/endian.h>
@@ -46,13 +40,6 @@
#define __bswap_32 OSSwapConstInt32
#endif /* __APPLE__ */
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define be32toh(x) __bswap_32 (x)
-#else
-#define be32toh(x) (x)
-#endif
-#endif
-
#include "guestfs.h"
#include "guestfs-internal.h"
#include "guestfs-internal-actions.h"
diff --git a/tests/regressions/rhbz975797.sh b/tests/regressions/rhbz975797.sh
index 938c1c5..3c536a9 100755
--- a/tests/regressions/rhbz975797.sh
+++ b/tests/regressions/rhbz975797.sh
@@ -51,10 +51,7 @@ fi
rm -f rhbz975797-*.img
-# The timeout utility was not available in RHEL 5.
-if timeout --help >/dev/null 2>&1; then
- timeout="timeout 600"
-fi
+timeout="timeout 600"
# Use real disk images here since the code for adding /dev/null may
# take shortcuts.
diff --git a/tests/xml/fake-libvirt-xml.c b/tests/xml/fake-libvirt-xml.c
index b7ab7a8..a34b700 100644
--- a/tests/xml/fake-libvirt-xml.c
+++ b/tests/xml/fake-libvirt-xml.c
@@ -25,15 +25,6 @@
#include <sys/types.h>
#include <sys/stat.h>
-/* We're not using gnulib here so that we don't have to link to gnulib
- * rpl_* libraries (not possible since this is an LD_PRELOAD lib).
- * However that does mean we have to define O_CLOEXEC explicitly for
- * RHEL 5.
- */
-#ifndef O_CLOEXEC
-#define O_CLOEXEC 0
-#endif
-
/* Old <libvirt.h> had a slightly different definition of
* virDomainGetXMLDesc (using 'int' for flags instead of 'unsigned
* int'). To avoid an error trying to redefine it with a different
--
2.5.0