[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1070850: cfengine3: missing build-depends on passwd, needed for usermod



Source: cfengine3
Version: 3.21.4-1.1
Severity: important
Tags: ftbfs
X-Debbugs-Cc: debian-riscv@lists.debian.org
User: debian-riscv@lists.debian.org
Usertags: riscv64

Dear maintainer,

cfengine3 fails to build from source on riscv64, here is the relevant
part of the log:

| checking for useradd... no
| checking for usermod... no
| checking for userdel... no

...

| /bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -I./../libpromises -I./../libntech/libutils -I./../libcfnet -I./../cf-check -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu99       -I/usr/include/libxml2   -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -Wno-pointer-sign -Werror=implicit-function-declaration -Wunused-parameter -O2 -DNDEBUG -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security       -I/usr/include/libxml2   -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -Wno-pointer-sign -Werror=implicit-function-declaration -Wunused-parameter -O2 -DNDEBUG -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o verify_users_pam.lo verify_users_pam.c
| libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I./../libpromises -I./../libntech/libutils -I./../libcfnet -I./../cf-check -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu99 -I/usr/include/libxml2 -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -Wno-pointer-sign -Werror=implicit-function-declaration -Wunused-parameter -O2 -DNDEBUG -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -I/usr/include/libxml2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -Wno-pointer-sign -Werror=implicit-function-declaration -Wunused-parameter -O2 -DNDEBUG -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c verify_users_pam.c  -fPIC -DPIC -o .libs/verify_users_pam.o
| verify_users_pam.c: In function ‘SetAccountLockExpiration’:
| verify_users_pam.c:850:50: warning: unused parameter ‘puser’ [-Wunused-parameter]
|   850 | static bool SetAccountLockExpiration(const char *puser, bool lock)
|       |                                      ~~~~~~~~~~~~^~~~~
| verify_users_pam.c:850:62: warning: unused parameter ‘lock’ [-Wunused-parameter]
|   850 | static bool SetAccountLockExpiration(const char *puser, bool lock)
|       |                                                              ^
| verify_users_pam.c: In function ‘DoCreateUser’:
| verify_users_pam.c:1565:38: warning: unused parameter ‘puser’ [-Wunused-parameter]
|  1565 | static bool DoCreateUser(const char *puser, const User *u, enum cfopaction action,
|       |                          ~~~~~~~~~~~~^~~~~
| verify_users_pam.c:1565:57: warning: unused parameter ‘u’ [-Wunused-parameter]
|  1565 | static bool DoCreateUser(const char *puser, const User *u, enum cfopaction action,
|       |                                             ~~~~~~~~~~~~^
| verify_users_pam.c:1565:76: warning: unused parameter ‘action’ [-Wunused-parameter]
|  1565 | static bool DoCreateUser(const char *puser, const User *u, enum cfopaction action,
|       |                                                            ~~~~~~~~~~~~~~~~^~~~~~
| verify_users_pam.c:1566:39: warning: unused parameter ‘ctx’ [-Wunused-parameter]
|  1566 |                          EvalContext *ctx, const Attributes *a, const Promise *pp)
|       |                          ~~~~~~~~~~~~~^~~
| verify_users_pam.c:1566:62: warning: unused parameter ‘a’ [-Wunused-parameter]
|  1566 |                          EvalContext *ctx, const Attributes *a, const Promise *pp)
|       |                                            ~~~~~~~~~~~~~~~~~~^
| verify_users_pam.c:1566:80: warning: unused parameter ‘pp’ [-Wunused-parameter]
|  1566 |                          EvalContext *ctx, const Attributes *a, const Promise *pp)
|       |                                                                 ~~~~~~~~~~~~~~~^~
| verify_users_pam.c: In function ‘DoRemoveUser’:
| verify_users_pam.c:1619:62: warning: unused parameter ‘action’ [-Wunused-parameter]
|  1619 | static bool DoRemoveUser (const char *puser, enum cfopaction action)
|       |                                              ~~~~~~~~~~~~~~~~^~~~~~
| verify_users_pam.c: In function ‘DoModifyUser’:
| verify_users_pam.c:1642:18: error: ‘USERMOD’ undeclared (first use in this function)
|  1642 |     strcpy (cmd, USERMOD);
|       |                  ^~~~~~~
| verify_users_pam.c:1642:18: note: each undeclared identifier is reported only once for each function it appears in
| verify_users_pam.c: At top level:
| verify_users_pam.c:1268:13: warning: ‘SupportsOption’ defined but not used [-Wunused-function]
|  1268 | static bool SupportsOption(const char *cmd, const char *option)
|       |             ^~~~~~~~~~~~~~
| verify_users_pam.c:755:13: warning: ‘PlatformSupportsExpirationLock’ defined but not used [-Wunused-function]
|   755 | static bool PlatformSupportsExpirationLock(void)
|       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| verify_users_pam.c:79:20: warning: ‘GetPlatformSpecificExpirationDate’ defined but not used [-Wunused-function]
|    79 | static const char *GetPlatformSpecificExpirationDate()
|       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| make[3]: *** [Makefile:835: verify_users_pam.lo] Error 1
| make[3]: *** Waiting for unfinished jobs....
| make[3]: Leaving directory '/<<PKGBUILDDIR>>/cf-agent'
| make[2]: *** [Makefile:722: all-recursive] Error 1
| make[2]: Leaving directory '/<<PKGBUILDDIR>>'
| make[1]: *** [Makefile:609: all] Error 2
| make[1]: Leaving directory '/<<PKGBUILDDIR>>'
| dh_auto_build: error: make -j4 returned exit code 2
| make: *** [debian/rules:16: build-arch] Error 25
| dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2

A full build log is available here:
https://buildd.debian.org/status/fetch.php?pkg=cfengine3&arch=riscv64&ver=3.21.4-1.1&stamp=1715040367&raw=0

The issue happens because the usermod binary is not found during the
build. Indeed this is provided by the passwd package, and while it has
priority required, starting with debootstrap from trixie [1],
it is not guaranteed to be installed on a system or a chroot.

This does not happens on other official architectures as their chroot is
created by the stable version of debootstrap, but is fully reproducible
even on amd64 by using a debootstrap from testing or sid.

Therefore could you please add the passwd package as a build-depends of
cfengine3?

Regards
Aurelien


[1] https://tracker.debian.org/news/1472578/accepted-debootstrap-10133-source-into-unstable/
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837060

Reply to: