On Thu, Apr 12, 2018 at 11:21:42AM -0500, Eric Blake wrote: > n 04/12/2018 08:31 AM, Niels de Vos wrote: > > This change looks good to me, but a commit message would have been > > helpful. I suggest something like this: > > > > Gluster 4.0 changed the signature of glfs_ftruncate(). The function > > now has two additional arguments, namely prestat and poststat. These > > provide not benefit for QEMU, so ignoring them and passing NULL makes > > the gluster-block driver compile with the new Gluster version again. > > > > And maybe add this too: > > > > Glusters libgfapi uses symbol versioning and provides backwards > > compatible functions. Binaries compiled against previous versions of > > Gluster keep on functioning with the new library. > > > > >> @@ -3856,6 +3857,9 @@ if test "$glusterfs" != "no" ; then > >> glusterfs_fallocate="yes" > >> glusterfs_zerofill="yes" > >> fi > >> + if ! $pkg_config --atleast-version=7.4 glusterfs-api; then > >> + glusterfs_legacy_ftruncate="yes" > > Also, version-based tests are lousy. Feature-based tests (does a call > to glfs_ftruncate(0, 0) compile without error? then we are legacy) are > less brittle, especially when features can be backported across > versions. So this should be reworked to a compile check, rather than a > version query.
In this case, the cange to glfs_ftruncate() will not be backported in the releases from the Gluster Community or any distributions that I am familiar with. I agree that a compile-test is safer and can understand that those are preferred over pkg-config version checks. Niels