Hi Harald,

On Thu, Jul 25, 2024 at 11:48:53AM +0200, Harald Dunkel wrote:
> Package: nfs-utils
> Version: 2.6.4-5
> 
> Trying to backport nfs-utils to Bookworm I ran into a build error:
> 
> :
> gcc -DHAVE_CONFIG_H -I. -I../../support/include  -I/usr/include/tirpc
> -I/usr/include/libxml2  -I ../../support/nfsidmap -Wdate-time
> -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -pipe  -Wall  -Wextra
> -Werror=strict-prototypes  -Werror=missing-prototypes
> -Werror=missing-declarations  -Werror=format=2  -Werror=undef
> -Werror=missing-include-dirs  -Werror=strict-aliasing=2  -Werror=init-self
> -Werror=implicit-function-declaration  -Werror=return-type  -Werror=switch
> -Werror=overflow  -Werror=parentheses  -Werror=aggregate-return
> -Werror=unused-result  -fno-strict-aliasing  -Werror=format-overflow=2
> -Werror=int-conversion -Werror=incompatible-pointer-types
> -Werror=misleading-indentation -Wno-cast-function-type -g -O2
> -ffile-prefix-map=/build/nfs-utils-2.6.4=. -fstack-protector-strong -Wformat
> -Werror=format-security  -isystem /usr/include/mit-krb5 -isystem
> /usr/include/mit-krb5 -g -O2 -ffile-prefix-map=/build/nfs-utils-2.6.4=.
> -fstack-protector-strong -Wformat -Werror=format-security -c -o
> svcgssd-svcgssd_mech2file.o `test -f 'svcgssd_mech2file.c' || echo
> './'`svcgssd_mech2file.c
> gcc -DHAVE_CONFIG_H -I. -I../../support/include  -I/usr/include/tirpc
> -I/usr/include/libxml2  -I ../../support/nfsidmap -Wdate-time
> -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -pipe  -Wall  -Wextra
> -Werror=strict-prototypes  -Werror=missing-prototypes
> -Werror=missing-declarations  -Werror=format=2  -Werror=undef
> -Werror=missing-include-dirs  -Werror=strict-aliasing=2  -Werror=init-self
> -Werror=implicit-function-declaration  -Werror=return-type  -Werror=switch
> -Werror=overflow  -Werror=parentheses  -Werror=aggregate-return
> -Werror=unused-result  -fno-strict-aliasing  -Werror=format-overflow=2
> -Werror=int-conversion -Werror=incompatible-pointer-types
> -Werror=misleading-indentation -Wno-cast-function-type -g -O2
> -ffile-prefix-map=/build/nfs-utils-2.6.4=. -fstack-protector-strong -Wformat
> -Werror=format-security  -isystem /usr/include/mit-krb5 -isystem
> /usr/include/mit-krb5 -g -O2 -ffile-prefix-map=/build/nfs-utils-2.6.4=.
> -fstack-protector-strong -Wformat -Werror=format-security -c -o
> svcgssd-svcgssd_proc.o `test -f 'svcgssd_proc.c' || echo './'`svcgssd_proc.c
> gcc -DHAVE_CONFIG_H -I. -I../../support/include  -I/usr/include/tirpc
> -I/usr/include/libxml2  -I ../../support/nfsidmap -Wdate-time
> -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -pipe  -Wall  -Wextra
> -Werror=strict-prototypes  -Werror=missing-prototypes
> -Werror=missing-declarations  -Werror=format=2  -Werror=undef
> -Werror=missing-include-dirs  -Werror=strict-aliasing=2  -Werror=init-self
> -Werror=implicit-function-declaration  -Werror=return-type  -Werror=switch
> -Werror=overflow  -Werror=parentheses  -Werror=aggregate-return
> -Werror=unused-result  -fno-strict-aliasing  -Werror=format-overflow=2
> -Werror=int-conversion -Werror=incompatible-pointer-types
> -Werror=misleading-indentation -Wno-cast-function-type -g -O2
> -ffile-prefix-map=/build/nfs-utils-2.6.4=. -fstack-protector-strong -Wformat
> -Werror=format-security  -isystem /usr/include/mit-krb5 -isystem
> /usr/include/mit-krb5 -g -O2 -ffile-prefix-map=/build/nfs-utils-2.6.4=.
> -fstack-protector-strong -Wformat -Werror=format-security -c -o
> svcgssd-svcgssd_krb5.o `test -f 'svcgssd_krb5.c' || echo './'`svcgssd_krb5.c
> gssd_proc.c: In function 'create_auth_rpc_client':
> gssd_proc.c:415:24: error: 'struct rpc_gss_sec' has no member named 
> 'minor_status'
>   415 |                 if (sec.minor_status == KRB5KRB_AP_ERR_BAD_INTEGRITY) 
> {
>       |                        ^
> make[3]: *** [Makefile:824: gssd-gssd_proc.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> make[3]: Leaving directory '/build/nfs-utils-2.6.4/utils/gssd'
> make[2]: *** [Makefile:467: all-recursive] Error 1
> make[2]: Leaving directory '/build/nfs-utils-2.6.4/utils'
> make[1]: *** [Makefile:491: all-recursive] Error 1
> make[1]: Leaving directory '/build/nfs-utils-2.6.4'
> dh_auto_build: error: make -j28 returned exit code 2
> make: *** [debian/rules:12: build] Error 25
> dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
> E: Failed autobuilding of package
> I: unmounting dev/ptmx filesystem
> I: unmounting dev/pts filesystem
> I: unmounting dev/shm filesystem
> I: unmounting proc filesystem
> I: unmounting sys filesystem
> I: cleaning the build env
> I: removing directory /local/pbuilder/build//2023043 and its subdirectories
> 
> AFAIU some newer version of libtirpc is needed, which is not mentioned in
> the control file.

I do not think we will want that. The reason is that upstream actually
reverted one change later on in nfs-utils-2-7-1-rc3 touching this in
f05af7d9924b ("gssd: revert commit 513630d720bd"), to later on apply
2bfb59c6f50e ("gssd: handle KRB5_AP_ERR_BAD_INTEGRITY for machine
credentials") which is guarded if the tirpc version has the seccreate
feature, this is in nfs-utils-2-7-1-rc3.

That seems to be the right fix, so that the features are only used if
supported as it seems the inention was.

I guess to close this bug it will be sufficient to wait for the 2.7.1
release to happend, or bckport the commits from the
nfs-utils-2-7-1-rc3 tag.

But I have to double-check again.

Regards,
Salvatore

Reply via email to