Bug 1538723

Summary: build: glibc has removed legacy rpc headers and rpcgen in Fedora28, use libtirpc
Product: [Community] GlusterFS Reporter: Kaleb KEITHLEY <kkeithle>
Component: buildAssignee: Kaleb KEITHLEY <kkeithle>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.0CC: anoopcs, bugs, ndevos
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-4.0.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1536186 Environment:
Last Closed: 2018-03-15 11:25:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1536186    
Bug Blocks: 1536187    

Description Kaleb KEITHLEY 2018-01-25 16:42:56 UTC
+++ This bug was initially created as a clone of Bug #1536186 +++

Description of problem:

See $Summary. Other Linux distributions are doing the same; some others already have.

Switch to libtirpc(-devel) and unbundled rpcgen packages. For now rpcgen is still provided by the glibc-rpcgen RPM, but rpcsvc-proto's rpcgen subpackage is available now but will not be used until glibc-rpcgen is retired. (note, rpcsvc-proto's rpcgen is just named rpcgen-...rpm. I.e. not rpcsvc-proto-rpcgen.) Right now either one will satisfy the BuildRequires: rpcgen.

Also, when a .spec file has
  BuildRequires: foo-devel
it is not necessary to also have:
  BuildRequires: foo
or even:
  BuildRequires: foo foo-devel

The foo-devel package has a dependency on foo, which will install foo automatically. It's usually also not necessary to have a corresponding
  Requires: foo

as the rpmbuild process will also automatically determine the install-time dependencies.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Worker Ant on 2018-01-18 15:28:04 EST ---

REVIEW: https://review.gluster.org/19235 (build: glibc has removed rpc headers and rpcgen in Fedora28, use libtirpc) posted (#1) for review on master by Kaleb KEITHLEY

--- Additional comment from Worker Ant on 2018-01-24 05:22:45 EST ---

COMMIT: https://review.gluster.org/19235 committed in master by \"Kaleb KEITHLEY\" <kkeithle> with a commit message- build: glibc has removed rpc headers and rpcgen in Fedora28, use libtirpc

Other Linux distributions are doing the same; some others have already
done so.

Switch to libtirpc(-devel) and unbundled rpcgen packages. For now
rpcgen is still provided by the glibc-rpcgen RPM, but rpcsvc-proto's
rpcgen subpackage is available now but will not be used until
glibc-rpcgen is retired. (note, rpcsvc-proto's rpcgen is just named
rpcgen-...rpm. I.e. not rpcsvc-proto-rpcgen.) Right now either one
will satisfy the BuildRequires: rpcgen.

Also, when a .spec file has
  BuildRequires: foo-devel
it is not necessary to also have:
  BuildRequires: foo
or even:
  BuildRequires: foo foo-devel

The foo-devel package has a dependency on foo, which will install foo
automatically. It's usually also not necessary to have a corresponding
  Requires: foo
as the rpmbuild process will also automatically determine the
install-time dependencies.

And other minor glusterfs.spec.in cleanup of ipv6-default, including
sorting the argument definitions because the comment says "keep them
sorted" (Though nobody appears to have ever sorted them in the first
place.)

Change-Id: I86f847dfda0fef83e22c6e8b761342d652a2d9ba
BUG: 1536186
Signed-off-by: Kaleb S. KEITHLEY <kkeithle>

--- Additional comment from Worker Ant on 2018-01-24 05:48:01 EST ---

REVIEW: https://review.gluster.org/19311 (build: use libtirpc by default, even if ipv6 is not the default) posted (#1) for review on master by Niels de Vos

--- Additional comment from Worker Ant on 2018-01-24 12:17:31 EST ---

COMMIT: https://review.gluster.org/19311 committed in master by \"Niels de Vos\" <ndevos> with a commit message- build: use libtirpc by default, even if ipv6 is not the default

An error sneaked in with Change-Id I86f847dfd. The check for requiring
libtirpc-devel should be done regardless of the ipv6-default. Even if
IPv6 is not the default, libtirpc-devel should be used unless it is
explicitly requested by a --without option.

libtirpc can not be used on EL6 and EL7 yet. The EL7 version does not
provide xdr_sizeof(), in addition to that, EL6 does not have
xdr_uint32_t() and xdr_uint64_t().

BUG: 1536186
Change-Id: I4a8292de2eddad16137df5998334133fc1e11261
Fixes: 0c57232ae07f48bd6483bfe88a182f832377ef52
Signed-off-by: Niels de Vos <ndevos>

--- Additional comment from Worker Ant on 2018-01-25 04:21:15 EST ---

REVIEW: https://review.gluster.org/19324 (build: Remove unwanted autoconf messages for libtirpc) posted (#1) for review on master by Anoop C S

--- Additional comment from Worker Ant on 2018-01-25 10:51:21 EST ---

REVIEW: https://review.gluster.org/19330 (build: use libtirpc by default, even if ipv6 is not the default) posted (#1) for review on master by Kaleb KEITHLEY

Comment 1 Worker Ant 2018-01-25 16:47:43 UTC
REVIEW: https://review.gluster.org/19332 (build: use libtirpc by default, even if ipv6 is not the default) posted (#1) for review on release-4.0 by Kaleb KEITHLEY

Comment 2 Worker Ant 2018-01-30 18:36:59 UTC
COMMIT: https://review.gluster.org/19332 committed in release-4.0 by "Shyamsundar Ranganathan" <srangana> with a commit message- build: use libtirpc by default, even if ipv6 is not the default

Another error snuck in with Change-Id I86f847dfd, or more
accurately I think, with Change-Id: Ic47065e9c2...

All libs, not just libgfrpc, need to be linked with libtirpc,
especially on systems that still have xdr functions in (g)libc
where you will get a mixture of calls to libtirpc functions
and glibc functions, with catas

Change-Id: I97dc39c7844f44c36fe210aa813480c219e1e415
BUG: 1538723
Signed-off-by: Kaleb S. KEITHLEY <kkeithle>

Comment 3 Worker Ant 2018-02-07 04:01:07 UTC
REVIEW: https://review.gluster.org/19516 (build: glibc has removed rpc headers and rpcgen in Fedora28, use libtirpc) posted (#1) for review on release-4.0 by Anoop C S

Comment 4 Worker Ant 2018-02-08 12:19:47 UTC
COMMIT: https://review.gluster.org/19516 committed in release-4.0 by "Anoop C S" <anoopcs> with a commit message- build: glibc has removed rpc headers and rpcgen in Fedora28, use libtirpc

Other Linux distributions are doing the same; some others have already
done so.

Switch to libtirpc(-devel) and unbundled rpcgen packages. For now
rpcgen is still provided by the glibc-rpcgen RPM, but rpcsvc-proto's
rpcgen subpackage is available now but will not be used until
glibc-rpcgen is retired. (note, rpcsvc-proto's rpcgen is just named
rpcgen-...rpm. I.e. not rpcsvc-proto-rpcgen.) Right now either one
will satisfy the BuildRequires: rpcgen.

Also, when a .spec file has
  BuildRequires: foo-devel
it is not necessary to also have:
  BuildRequires: foo
or even:
  BuildRequires: foo foo-devel

The foo-devel package has a dependency on foo, which will install foo
automatically. It's usually also not necessary to have a corresponding
  Requires: foo
as the rpmbuild process will also automatically determine the
install-time dependencies.

And other minor glusterfs.spec.in cleanup of ipv6-default, including
sorting the argument definitions because the comment says "keep them
sorted" (Though nobody appears to have ever sorted them in the first
place.)

Change-Id: I86f847dfda0fef83e22c6e8b761342d652a2d9ba
BUG: 1538723
Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
(cherry picked from commit 0c57232ae07f48bd6483bfe88a182f832377ef52)

Comment 5 Worker Ant 2018-02-08 12:22:27 UTC
REVIEW: https://review.gluster.org/19527 (build: use libtirpc by default, even if ipv6 is not the default) posted (#1) for review on release-4.0 by Anoop C S

Comment 6 Worker Ant 2018-02-09 13:41:58 UTC
COMMIT: https://review.gluster.org/19527 committed in release-4.0 by "Anoop C S" <anoopcs> with a commit message- build: use libtirpc by default, even if ipv6 is not the default

An error sneaked in with Change-Id I86f847dfd. The check for requiring
libtirpc-devel should be done regardless of the ipv6-default. Even if
IPv6 is not the default, libtirpc-devel should be used unless it is
explicitly requested by a --without option.

libtirpc can not be used on EL6 and EL7 yet. The EL7 version does not
provide xdr_sizeof(), in addition to that, EL6 does not have
xdr_uint32_t() and xdr_uint64_t().

BUG: 1538723
Change-Id: I4a8292de2eddad16137df5998334133fc1e11261
Fixes: 0c57232ae07f48bd6483bfe88a182f832377ef52
Signed-off-by: Niels de Vos <ndevos>
(cherry picked from commit 7631b22a5960363518ad13da8661c76a1ffec253)

Comment 7 Worker Ant 2018-02-12 05:50:00 UTC
REVIEW: https://review.gluster.org/19540 (build: Remove unwanted autoconf messages for libtirpc) posted (#1) for review on release-4.0 by Anoop C S

Comment 8 Worker Ant 2018-02-15 14:09:28 UTC
COMMIT: https://review.gluster.org/19540 committed in release-4.0 by "Shyamsundar Ranganathan" <srangana> with a commit message- build: Remove unwanted autoconf messages for libtirpc

AC_MSG_RESULT is normally used when it is preceded by AC_MSG_CHECKING
during explicit checking of certain requirements. With PKG_CHECK_MODULES
being used for checking the presence of libtirpc itself generates the
following message:

checking for TIRPC... yes

Change-Id: I3f088a45ef2ced6f6fd9e1524e758c812deecb8f
BUG: 1538723
Signed-off-by: Anoop C S <anoopcs>
(cherry picked from commit ec2c95f310fdd30531b04f85840860aae2c8dff4)

Comment 9 Shyamsundar 2018-03-15 11:25:40 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-4.0.0, please open a new bug report.

glusterfs-4.0.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://lists.gluster.org/pipermail/announce/2018-March/000092.html
[2] https://www.gluster.org/pipermail/gluster-users/