If you are using Simon's tools and libs, just install gettext and make sure that CPPFLAGS includes -I/opt/R/x86_64/include and LDFLAGS -L/opt/R/x86_64/lib (mutatis mutandis for ARM, of course).
-pd > On 23 Apr 2025, at 18.50, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > > I am getting the same missing libintl.h error on my MacOS Github action. > What do you recommend as the fix? My current script is here: > > https://github.com/dmurdoch/parseLatex/blob/main/.github/workflows/R-CMD-check.yaml > > I've tried a couple of things (install using brew: fails because it is > already installed, but R isn't looking there; install using the curl command > below: fails because of permissions. > > Duncan Murdoch > > > On 2025-04-19 5:40 p.m., Simon Urbanek wrote: >> Gavin, >> there are few issues here with different possible solutions. >> In general, you cannot mix R from Homebrew and CRAN - they use different >> toolchains and libraries so you have to pick one. >> 1) Despite what you said, what you are showing below is output from CRAN R, >> so one option (which I'd recommend) is to go the CRAN way. First, simply >> remove (or rename) /opt/homebrew so it doesn't break things (may or may not >> be necessary). Then the error you see is because mgcv seems to require >> gettext so install it from https://mac.r-project.org/bin/ - either follow >> the instructions there (which will work even from more complex cases) or in >> your case you can simply use >> curl >> https://mac.r-project.org/bin/darwin20/arm64/gettext-0.22.5-darwin.20-arm64.tar.xz >> | tar xz -C / >> (if you don't have write permissions in /opt/R either run "sudo chown -R >> $USER /opt/R" or put "sudo" before the tar above). >> Once you got whatever you needed compiled you can rename /opt/homebrew back >> since we only need to remove it for compilation. The above works, because R >> itself already has the necessary static library built-in (as it uses it >> itself) so all you need are the gettext headers to appease mgcv. >> 2) If you want to go fully the Homebrew way then you have to make sure you >> are picking up R from Homebrew and not CRAN. Then you cannot use CRAN >> binaries, you are entirely on your own since we don't support that setup, so >> I do NOT recommend it, but it's possible. Typically, that requires you to >> install the full compiler toolchain from Homebrew as well as well compiling >> all R packages from sources. In that scenario you don't use anything from >> mac.R-project.org but instead rely fully on Homebrew. This includes OpenMP, >> because the compilers in Homebrew are not from Apple so they use their own >> OpenMP. >> 3) If the mgcv package on CRAN does not come with OpenMP support then I'd >> contact the maintainers and ask them why they don't enable it. Packages that >> benefit significantly from OpenMP typically enable it for their CRAN >> binaries (good example is data.table), so if it is not enabled it may mean >> that the authors don't recommend it or there is no significant benefit. >> Cheers, >> Simon >>> On Apr 20, 2025, at 12:45 AM, Gavin Simpson <ucfa...@gmail.com> wrote: >>> >>> Dear list >>> >>> I seem to be running into a new issue after upgrading to R 4.5.0 that >>> seems related to this >>> >>> * configure is now able to find an external libintl on macOS (the code >>> from an older GNU gettext distribution failed to try linking with the >>> macOS Core Foundation framework). >>> >>> I'm pretty new to MacOS and I have installed R from homebrew, and >>> typically use the MacOS X binaries kindly provided by CRAN. However, >>> for a couple of packages I make extensive use of, I want to make use >>> of openMP, and so I have been following the excellent instructions on >>> the mac.r-project.org pages to install the relevant fortran compiler >>> and libomp. >>> >>> Specifically, I am trying to in compile the latest mgcv sources with >>> openMP support. I have been doing this successfully for some time for >>> the 4.3 and 4.4 releases of R. But after upgrading to R 4.5.0, >>> compiling mgcv now throws an compilation error >>> >>> In file included from magic.c:27: >>> ./general.h:4:10: fatal error: 'libintl.h' file not found >>> 4 | #include <libintl.h> >>> | ^~~~~~~~~~~ >>> >>> (The full compile log is included below if neccessary.) >>> >>> I do have gettext installed and I do have libintl.h on my system >>> >>> % find /opt -name "libintl.*" -print >>> /opt/homebrew/include/libintl.h >>> /opt/homebrew/lib/libintl.dylib >>> /opt/homebrew/lib/libintl.8.dylib >>> /opt/homebrew/lib/libintl.a >>> /opt/homebrew/Cellar/gettext/0.24/include/libintl.h >>> /opt/homebrew/Cellar/gettext/0.24/lib/libintl.dylib >>> /opt/homebrew/Cellar/gettext/0.24/lib/libintl.8.dylib >>> /opt/homebrew/Cellar/gettext/0.24/lib/libintl.a >>> >>> My $PATH is >>> >>> % print $PATH >>> /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/usr/local/laps:/usr/local/munki:/usr/local/munkireport:/Applications/quarto/bin:/Users/au690221/.local/bin:/Users/au690221/.local/bin >>> >>> I have edited ./src/Makevars in mgcv's sources such that it reads >>> >>> % cat ./repo/src/Makevars >>> PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) $(SHLIB_OPENMP_CFLAGS) >>> PKG_CFLAGS = $(SHLIB_OPENMP_CFLAGS) >>> >>> PKG_LIBS += -lomp >>> PKG_CPPFLAGS = -Xclang -fopenmp >>> ## *Both* the above must be *uncommented* for release >>> >>> #PKG_CFLAGS = -g -O0 -Wall -pedantic $(SHLIB_OPENMP_CFLAGS) >>> ## Actually it now seems that you need to reset optimization flag in >>> ## cd /usr/local/lib/R/etc/ >>> ## sudo pico Makeconf >>> ## This file can add flags but not modify what's in the above! >>> ## `#' out previous line for release (but not without uncommenting openMP) >>> >>> But I have tried it with the final pair of PKG_LIBS definitions that >>> add omp support commented out also. >>> >>> My system details are >>> >>>> sessionInfo() >>> R version 4.5.0 (2025-04-11) >>> Platform: aarch64-apple-darwin20 >>> Running under: macOS Sequoia 15.4.1 >>> >>> Matrix products: default >>> BLAS: >>> /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib >>> LAPACK: >>> /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib; >>> LAPACK version 3.12.1 >>> >>> locale: >>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 >>> >>> time zone: Europe/Copenhagen >>> tzcode source: internal >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> loaded via a namespace (and not attached): >>> [1] compiler_4.5.0 >>> >>> and >>> >>> % clang -v >>> Apple clang version 17.0.0 (clang-1700.0.13.3) >>> Target: arm64-apple-darwin24.4.0 >>> Thread model: posix >>> InstalledDir: /Library/Developer/CommandLineTools/usr/bin >>> >>> (So I have installed LLVM 18.1.8 from https://mac.r-project.org/openmp/ ) >>> >>> I suspect I will need to solve this by adding the homebrew lib >>> location to my LD_PATH or similar, but I'm not very familiar with this >>> process in general and especially so on MacOS X. >>> >>> I'd appreciate any help with resolving this issue. >>> >>> TIA >>> >>> Gavin >>> >>> % R CMD INSTALL mgcv_1.9-3.tar.gz >>> * installing to library ‘/Users/au690221/Library/R/arm64/4.5/library’ >>> * installing *source* package ‘mgcv’ ... >>> ** this is package ‘mgcv’ version ‘1.9-3’ >>> ** using staged installation >>> ** libs >>> using C compiler: ‘Apple clang version 17.0.0 (clang-1700.0.13.3)’ >>> using SDK: ‘MacOSX15.4.sdk’ >>> clang -arch arm64 >>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG >>> -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c >>> coxph.c -o coxph.o >>> clang -arch arm64 >>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG >>> -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c >>> davies.c -o davies.o >>> clang -arch arm64 >>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG >>> -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c >>> discrete.c -o discrete.o >>> clang -arch arm64 >>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG >>> -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c >>> gdi.c -o gdi.o >>> clang -arch arm64 >>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG >>> -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c >>> init.c -o init.o >>> clang -arch arm64 >>> -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG >>> -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c >>> magic.c -o magic.o >>> In file included from magic.c:27: >>> ./general.h:4:10: fatal error: 'libintl.h' file not found >>> 4 | #include <libintl.h> >>> | ^~~~~~~~~~~ >>> 1 error generated. >>> make: *** [magic.o] Error 1 >>> ERROR: compilation failed for package ‘mgcv’ >>> * removing ‘/Users/au690221/Library/R/arm64/4.5/library/mgcv’ >>> * restoring previous ‘/Users/au690221/Library/R/arm64/4.5/library/mgcv’ >>> -- >>> Gavin Simpson, PhD [he/him/his] >>> [tw] @ucfagls [OrciD] 0000-0002-9084-8413 >>> [web] fromthebottomoftheheap.net >>> • Assistant Professor >>> • Department of Animal & Veterinary Sciences, Aarhus University >>> • Adjunct Professor, Department of Biology, University of Regina. >>> >>> _______________________________________________ >>> R-SIG-Mac mailing list >>> R-SIG-Mac@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac >>> >> _______________________________________________ >> R-SIG-Mac mailing list >> R-SIG-Mac@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-sig-mac > > _______________________________________________ > R-SIG-Mac mailing list > R-SIG-Mac@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-mac -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business SchoolSolbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac