diff --git a/configure.ac b/configure.ac index 12e8ce6735..4493b94ac8 100644 --- a/configure.ac +++ b/configure.ac @@ -215,6 +215,8 @@ AC_PATH_PROG([MODPROBE], [modprobe], [], [/sbin:/usr/sbin:/usr/local/sbin:$PATH]) AC_PATH_PROG([OVSVSCTL], [ovs-vsctl], [ovs-vsctl], [/sbin:/usr/sbin:/usr/local/sbin:$PATH]) +AC_PATH_PROG([SCRUB], [scrub], [], + [/sbin:/usr/sbin:/usr/local/sbin:$PATH]) AC_DEFINE_UNQUOTED([DNSMASQ],["$DNSMASQ"], [Location or name of the dnsmasq program]) @@ -237,6 +239,8 @@ if test -n "$MODPROBE"; then AC_DEFINE_UNQUOTED([MODPROBE],["$MODPROBE"], [Location or name of the modprobe program]) fi +AC_DEFINE_UNQUOTED([SCRUB],["$SCRUB"], + [Location or name of the scrub program (for wiping algorithms)]) dnl Specific dir for HTML output ? AC_ARG_WITH([html-dir], [AC_HELP_STRING([--with-html-dir=path], @@ -2505,32 +2509,6 @@ AM_CONDITIONAL([HAVE_LIBNL], [test "$have_libnl" = "yes"]) AC_SUBST([LIBNL_CFLAGS]) AC_SUBST([LIBNL_LIBS]) -dnl scrub program for different volume wiping algorithms - -AC_ARG_WITH([scrub], - AC_HELP_STRING([--with-scrub], [enable different volume wiping algorithms - @<:@default=check@:>@]), - [with_macvtap=${withval}], - [with_scrub=check]) - -if test "$with_scrub" != "no"; then - AC_PATH_PROG([SCRUB], [scrub]) - if test -z "$SCRUB" ; then - if test "$with_scrub" = "check"; then - with_scrub=no - else - AC_MSG_ERROR([You must install the 'scrub' binary to enable - different volume wiping algorithms]) - fi - else - with_scrub=yes - fi - if test "$with_scrub" = "yes"; then - AC_DEFINE_UNQUOTED([SCRUB], ["$SCRUB"], - [Location of the scrub program]) - fi -fi - # Only COPYING.LIB is under version control, yet COPYING # is included as part of the distribution tarball. # Copy one to the other, but only if this is a srcdir-build. diff --git a/libvirt.spec.in b/libvirt.spec.in index 5c3146ffc2..8ab91e790f 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -513,6 +513,9 @@ BuildRequires: nfs-utils # Fedora build root suckage BuildRequires: gawk +# For storage wiping with different algorithms +BuildRequires: scrub + %description Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index 9170a17888..df0e29138a 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -1918,7 +1918,6 @@ storageVolumeWipeInternal(virStorageVolDefPtr def, if (algorithm != VIR_STORAGE_VOL_WIPE_ALG_ZERO) { const char *alg_char ATTRIBUTE_UNUSED = NULL; switch (algorithm) { -#ifdef SCRUB case VIR_STORAGE_VOL_WIPE_ALG_NNSA: alg_char = "nnsa"; break; @@ -1943,13 +1942,11 @@ storageVolumeWipeInternal(virStorageVolDefPtr def, case VIR_STORAGE_VOL_WIPE_ALG_RANDOM: alg_char = "random"; break; -#endif default: virStorageReportError(VIR_ERR_INVALID_ARG, _("unsupported algorithm %d"), algorithm); } -#ifdef SCRUB cmd = virCommandNew(SCRUB); virCommandAddArgList(cmd, "-f", "-p", alg_char, def->target.path, NULL); @@ -1958,7 +1955,6 @@ storageVolumeWipeInternal(virStorageVolDefPtr def, goto out; ret = 0; -#endif goto out; } else { if (S_ISREG(st.st_mode) && st.st_blocks < (st.st_size / DEV_BSIZE)) {