Hi, I am trying to build freeradius for almalinux8. I see rlm_perl skipped in "make rpm" output so build failed. It said EXTERN.h is not found in /usr/local/include, so I copied that file as a step in dockerfile. But it still throws not found error. #35 51.14 checking for EXTERN.h in /usr/local/include/... no I also see /usr/lib64/perl5/CORE/ is in include path(-isystem /usr/lib64/perl5/CORE), but not sure why it is not searching EXTERN.h in that path. #35 51.10 checking for EXTERN.h... no #35 51.14 checking for EXTERN.h in /usr/local/include/... no #35 51.18 checking for EXTERN.h in /opt/include/... no #35 51.23 checking for EXTERN.h in /usr/local/EXTERN/include/... no #35 51.27 checking for EXTERN.h in /opt/homebrew/include/... no #35 51.31 checking for EXTERN.h in /opt/homebrew/opt/EXTERN/include/... no Below is the extracted output of the docker build. #12 [build-stage 9/32] RUN cp /usr/lib64/perl5/CORE/*.h /usr/local/include/ #12 DONE 0.5s #13 [build-stage 10/32] RUN cp /usr/lib64/perl5/CORE/*.so /usr/local/lib/ #13 DONE 0.5s #14 [build-stage 11/32] RUN ls /usr/local/include/ #14 0.385 EXTERN.h #14 0.385 INTERN.h #14 0.385 XSUB.h #14 0.385 av.h ... ... #34 [build-stage 31/32] RUN ls /usr/local/include/ #34 0.558 EXTERN.h #34 0.558 INTERN.h #34 0.558 XSUB.h ... ... #35 [build-stage 32/32] RUN --mount=type=ssh scl enable devtoolset-8 "CFLAGS=-g make rpm" #35 1.067 rm -rf /usr/local/src/repositories/freeradius-server/build/freeradius-server-4.0 #35 1.071 mkdir -p /usr/local/src/repositories/freeradius-server/build ... ... #35 50.11 Running tests for rlm_perl #35 50.11 #35 50.21 checking for x86_64-redhat-linux-gnu-gcc... /opt/rh/devtoolset-8/root/usr/bin/gcc #35 50.29 checking whether the C compiler works... yes #35 50.37 checking for C compiler default output file name... a.out #35 50.37 checking for suffix of executables... #35 50.45 checking whether we are cross compiling... no #35 50.53 checking for suffix of object files... o #35 50.58 checking whether the compiler supports GNU C... yes #35 50.63 checking whether /opt/rh/devtoolset-8/root/usr/bin/gcc accepts -g... yes #35 50.67 checking for /opt/rh/devtoolset-8/root/usr/bin/gcc option to enable C11 features... none needed #35 50.74 checking how to run the C preprocessor... /opt/rh/devtoolset-8/root/usr/bin/gcc -E #35 50.86 checking whether perl executable path has been provided... no #35 50.86 checking for perl... /usr/bin/perl #35 50.86 configure: Calling ExtUtils::Embed to get 'ccopts' #35 50.89 configure: ExtUtil's ccopts were " -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE " #35 50.89 configure: Sanitized ccopts are "-D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fcf-protection -fwrapv -fno-strict-aliasing -isystem /usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -isystem /usr/lib64/perl5/CORE" #35 50.89 configure: Calling ExtUtils::Embed to get 'ldflags' #35 51.08 configure: ExtUtil's ldopts were "-Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc" #35 51.09 configure: Sanitized ldopts are "-Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc" #35 51.10 checking for EXTERN.h... no #35 51.14 checking for EXTERN.h in /usr/local/include/... no #35 51.18 checking for EXTERN.h in /opt/include/... no #35 51.23 checking for EXTERN.h in /usr/local/EXTERN/include/... no #35 51.27 checking for EXTERN.h in /opt/homebrew/include/... no #35 51.31 checking for EXTERN.h in /opt/homebrew/opt/EXTERN/include/... no #35 51.36 checking for perl.h... no #35 51.40 checking for perl.h in /usr/local/include/... no #35 51.44 checking for perl.h in /opt/include/... no #35 51.48 checking for perl.h in /usr/local/perl/include/... no #35 51.52 checking for perl.h in /opt/homebrew/include/... no #35 51.55 checking for perl.h in /opt/homebrew/opt/perl/include/... no #35 51.59 checking we can link to boot_DynaLoader... no #35 51.64 checking we can link to Perl_hv_store()... no #35 51.68 configure: WARNING: silently not building rlm_perl. #35 51.68 configure: WARNING: FAILURE: rlm_perl requires: EXTERN.h EXTERN.h libperl.so libperl.so. #35 51.73 configure: creating ./config.status #35 52.01 config.status: creating all.mk #35 52.04 config.status: creating config.h ... ... #35 87.95 rlm_pap ................. OK #35 87.96 rlm_passwd .............. OK #35 87.98 rlm_perl ................ skipping (requires EXTERN.h EXTERN.h libperl.so libperl.so) #35 87.99 rlm_python .............. OK #35 88.00 rlm_radius .............. OK ... ... #35 211.1 RPM build errors: #35 211.1 error: File not found: /usr/local/src/repositories/freeradius-server/rpmbuild/BUILDROOT/freeradius-4.0-1.el8.x86_64/usr/lib64/freeradius/rlm_perl.so #35 211.1 File listed twice: /etc/raddb/certs/bootstrap #35 211.1 File listed twice: /etc/raddb/sites-enabled #35 211.1 File not found: /usr/local/src/repositories/freeradius-server/rpmbuild/BUILDROOT/freeradius-4.0-1.el8.x86_64/usr/bin/*_tests #35 211.1 File not found: /usr/local/src/repositories/freeradius-server/rpmbuild/BUILDROOT/freeradius-4.0-1.el8.x86_64/usr/lib64/freeradius/rlm_perl.so #35 211.1 make: *** [Makefile:530: rpm] Error 1 #35 ERROR: process "/bin/sh -c scl enable devtoolset-8 \"CFLAGS=-g make rpm\"" did not complete successfully: exit code: 2 Regards, Nagamani Chinnapaiyan
On 12/12/2023 08:56, Chinnapaiyan, Nagamani wrote:
I am trying to build freeradius for almalinux8. I see rlm_perl skipped in "make rpm" output so build failed.
It said EXTERN.h is not found in /usr/local/include, so I copied that file as a step in dockerfile. But it still throws not found error.
#35 51.14 checking for EXTERN.h in /usr/local/include/... no
/usr/local/include is just one of the locations where the file is searched for - since different methods of installing the prerequisite will put files in different places. Manually copying files is never the solution. You likely don't have the correct prerequisite packages installed. The best way to ensure that the correct prerequisites for building RPMs is yum-builddep -y redhat/freeradius.spec That will ensure that the appropriate packages are installed to allow make rpm to work correctly. Nick -- Nick Porter
participants (2)
-
Chinnapaiyan, Nagamani -
Nick Porter