Hi Simon, Thank you for your detailed feedback! I rebuilt the configure script to use pkg-config, removed the extra brew-check, fixed the CPPFLAGS issue you mentioned, and included "fftw-s" in SystemRequirements. The package is building fine again on all platforms (using rhub tests and the `devtools::check_win_devel()` test).
Hopefully it will get accepted soon. :) Best regards, Lukas On Wed, Jan 15, 2025 at 3:59 AM Simon Urbanek <simon.urba...@r-project.org> wrote: > Lukas, > > I have not seen the communication so I'm not commenting on that > specifically, I only looked at the GitHub link. > > Although your configure could be improved (more below), it works well > enough to detect fftw3f. > > Unfortunately, SystemRequirements don't have a well-defined structure, but > there are two commonly used notations: > > a) library name and version so in your case that would be something like > libfftw3f (>=3.3.0) > > b) deb/rpm package names > libfftw3-dev (deb), fftw3-devel (rpm) > > fftw is a bit of a mess, because Debian ships the single-precision static > library in libfftw3-dev, but also has libfftw3-single3 which is the dynamic > version of the same, while RH does not distinguish. macOS recipe names are > usually included only if they are non-obvious, but that would be the case > here since installing fftw recipe does not work for you, so mentioning > fftw-s is probably a good idea (there are community scripts that try to > extract that information from the packages so that the dependencies can be > installed). > > As for your configure, my main objection would be that it ignores CPPFLAGS > (they are not substituted at all even though they *are* used in the tests) > and doesn't use pkg-config to get the correct flags. (Also the brew part > should go - it's makes unwarranted assumptions [see below] and is entirely > superfluous if you use pkg-config instead.) To illustrate what I mean, you > get > > $ pkg-config --cflags fftw3f > -I/opt/R/x86_64/include > $ pkg-config --libs fftw3f > -L/opt/R/x86_64/lib -lfftw3f -lm > > while fCWTr on GitHub only uses > > Configuration for fCWTr 0.2.9000 > > cppflags: > cxxflags: > ldflags: > libs: -lfftw3f > > It actually works despite that, because R will inject the other flags for > you, but that will only work is fftw is installed in the same location as > the other libraries used by R (which is common, but not guaranteed). I > wouldn't say it is dealbreaker, but it would recommend it for robustness. > > FWIW with homebrew the correct flags are obtainable from pkg-config: > > $ pkg-config --libs fftw3f > -L/opt/brew/Cellar/fftw/3.3.8_1/lib -lfftw3f > $ pkg-config --cflags fftw3f > -I/opt/brew/Cellar/fftw/3.3.8_1/include > > Cheers, > Simon > > > > > On Jan 11, 2025, at 10:37 PM, Lukas Schneiderbauer < > lukas.schneiderba...@gmail.com> wrote: > > > > Hi list, > > > > I am working on getting a package < > https://github.com/lschneiderbauer/fCWTr> to > > CRAN. It depends on the FFTW library <https://www.fftw.org/> that is > built > > with single precision support. I am stuck in the submission process and I > > require your help. > > > > Before I come to my questions, some key facts about the package: > > > > The package has an autoconf configure script that uses (among other > things, > > like OpenMP checks, etc..) AC_SEARCH_LIBS to check whether required > > functions of the library 'fftwf' exist, if yes, it adds the corresponding > > compiler/linker flags; if no, it errs with a descriptive error message. > > > > The CRAN Windows as well as Linux build service included fftwf in their > > fftw build out of the box, and so building there was no problem, R CMD > > Check passes there. In the past, building for MacOS was more trouble, > since > > its fftw package does not include a single-precision build. I reached out > > to Simon Urbanek, and he was so kind as to add an appropriate new recipe > > "fftw-s" that provided an fftw version with single precision support. As > of > > now, R CMD check also passes cleanly on the MacOS build service, thanks > to > > Simon Urbanek's efforts. > > > > Now, I am stuck at submission for two reasons: > > 1. The SystemRequirements specification in the DESCRIPTION file is > > incorrect. > > 2. It is said that "the package needs a configure check for fftwf". > > > > Add 1. > > Initially, I had no mention of the "single precision" version of fftw, > > because I thought it is included everywhere by default. It was stated > that > > I need to add that information. I naturally complied. > > This is my current version: > > "SystemRequirements: fftw3 (including single precision support fftw3f), > > fftw3f_omp (optional), OpenMP (optional)" > > In the second subscription run, I was told to add "fftw-s" since I > require > > the fftw-s package on MacOS. This does not make much sense to me since > > "fftw-s" is only the name of this package on Simon Urbanek's MacOS build > > service. The library file itself is still called fftwf, like it is on any > > other platform. If I added "fftw-s", I would also need to explain that > this > > is only valid for MacOS which seems to make the SystemRequirements > > unnecessary verbose. > > * Can someone explain the reason behind this request to me? > > * How exactly should I add "fftw-s" to pass the submission process? > > > > Add 2. > > I tried to explain now for the second time in the submission notes, that > a > > check is already in place (see the AC_SEARCH_LIBS paragraph above). But > my > > explanation gets ignored. > > * What am I doing wrong? > > * What additional configure checks do I need to add to the package? > > > > Thanks a lot for your help! > > Sincerely, Lukas Schneiderbauer > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-package-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-package-devel > > > > [[alternative HTML version deleted]] ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel