On Mar 10, 2023, at 6:30 PM, Peter Lee <peterli2005@gmail.com> wrote:
I need to build 3.2.2 on CentOS7 because we will need to do a little customization. But before integrating our stuff yet, I got 3.2.2 compiling errors like
"src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:293:40: error: 'PW_EAP_PWD_PASSWORD_PREP' undeclared (first use in this function" and so on.
That's because you're not using the standard build system. It processes dictionaries and creates C macro names from them. See the difference between "git grep", which looks for strings in checked-in files, and "grep -r", which looks for files in the local file system: $ git grep PW_EAP_PWD_PASSWORD_PREP src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c: vp = fr_pair_afrom_num(fake->packet, PW_EAP_PWD_PASSWORD_PREP, 0); src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c: vp = fr_pair_find_by_num(fake->config, PW_EAP_PWD_PASSWORD_PREP, 0, TAG_ANY); $ grep -r PW_EAP_PWD_PASSWORD_PREP src/ src//include/attributes.h:#define PW_EAP_PWD_PASSWORD_PREP 1222 src//modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c: vp = fr_pair_afrom_num(fake->packet, PW_EAP_PWD_PASSWORD_PREP, 0); src//modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c: vp = fr_pair_find_by_num(fake->config, PW_EAP_PWD_PASSWORD_PREP, 0, TAG_ANY); The "src/include/attributes.h" file is auto-generated by the build system from the dictionaries.
So to build from 3.2.2 release tar file on CentOS 7 probably requires updates of freeradius-devel that contains header files for these attribute names? Thanks.
No. It requires you to use the build system included with FreeRADIUS. You're using some other build system, which you haven't described. Or, you've change the default build system (again in a way you haven't described), and broken it. i.e. If the build works for everyone else and not for you, then something on your local system is broken. Alan DeKok.