* portlint WARN: Makefile: dependency to gmake listed in BUILD_DEPENDS. consider using USES[+]=gmake. 0 fatal errors and 1 warning found. * poudriere testport ok (12.1, amd64) * make test ok I removed develop/gmake from BUILD_DEPENDS and added gmake to USES=, but I got the following error: # make ===> License ART10 GPLv1+ accepted by the user ===> p5-Redis-Fast-0.28 depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by p5-Redis-Fast-0.28 for building ===> Extracting for p5-Redis-Fast-0.28 => SHA256 Checksum OK for Redis-Fast-0.28.tar.gz. ===> Patching for p5-Redis-Fast-0.28 ===> p5-Redis-Fast-0.28 depends on package: p5-File-Which>=0 - found ===> p5-Redis-Fast-0.28 depends on package: p5-Module-Build-XSUtil>=0.02 - found ===> p5-Redis-Fast-0.28 depends on package: gmake>=4.3 - found ===> p5-Redis-Fast-0.28 depends on package: p5-Module-Build>=0.4206 - found ===> p5-Redis-Fast-0.28 depends on package: perl5>=5.28.r1<5.29 - found ===> Configuring for p5-Redis-Fast-0.28 gmake[1]: Entering directory '/usr/ports/databases/p5-Redis-Fast/work/Redis-Fast-0.28/deps/hiredis' cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb alloc.c cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb net.c cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb hiredis.c cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb sds.c cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb async.c cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb read.c read.c:308:62: warning: generic selections are a C11-specific feature [-Wc11-extensions] if (buf[0] == '\0' || eptr[0] != '\0' || isnan(d)) { ^ /usr/include/math.h:114:2: note: expanded from macro 'isnan' __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl) ^ /usr/include/math.h:82:39: note: expanded from macro '__fp_type_select' #define __fp_type_select(x, f, d, ld) _Generic((x), ^ 1 warning generated. cc -std=c99 -pedantic -c -O3 -fPIC -I/usr/local/opt/openssl/include -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb sockcompat.c ar rcs libhiredis.a alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o gmake[1]: Leaving directory '/usr/ports/databases/p5-Redis-Fast/work/Redis-Fast-0.28/deps/hiredis' Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'Redis-Fast' version '0.28' ===> Building for p5-Redis-Fast-0.28 Building Redis-Fast cc -Isrc -Ideps/hiredis -Isrc -I/usr/local/lib/perl5/5.28/mach/CORE -DVERSION="0.28" -DXS_VERSION="0.28" -DPIC -fPIC -Wall -W -Wno-comment -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -o lib/Redis/Fast.o lib/Redis/Fast.c ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Redis/Fast/Fast.bs') cc -shared -L/usr/local/lib/perl5/5.28/mach/CORE -lperl -L/usr/local/lib -fstack-protector-strong -o blib/arch/auto/Redis/Fast/Fast.so lib/Redis/Fast.o deps/hiredis/libhiredis.a ===> Staging for p5-Redis-Fast-0.28 ===> p5-Redis-Fast-0.28 depends on package: p5-Try-Tiny>=0 - found ===> p5-Redis-Fast-0.28 depends on package: perl5>=5.28.r1<5.29 - found ===> Generating temporary packing list gmake: unrecognized option '--destdir=/usr/ports/databases/p5-Redis-Fast/work/stage' Usage: gmake [options] [target] ... Options: -b, -m Ignored for compatibility. -B, --always-make Unconditionally make all targets. -C DIRECTORY, --directory=DIRECTORY Change to DIRECTORY before doing anything. -d Print lots of debugging information. --debug[=FLAGS] Print various types of debugging information. -e, --environment-overrides Environment variables override makefiles. -E STRING, --eval=STRING Evaluate STRING as a makefile statement. -f FILE, --file=FILE, --makefile=FILE Read FILE as a makefile. -h, --help Print this message and exit. -i, --ignore-errors Ignore errors from recipes. -I DIRECTORY, --include-dir=DIRECTORY Search DIRECTORY for included makefiles. -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -k, --keep-going Keep going when some targets can't be made. -l [N], --load-average[=N], --max-load[=N] Don't start multiple jobs unless load is below N. -L, --check-symlink-times Use the latest mtime between symlinks and target. -n, --just-print, --dry-run, --recon Don't actually run any recipe; just print them. -o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it. -O[TYPE], --output-sync[=TYPE] Synchronize output of parallel jobs by TYPE. -p, --print-data-base Print make's internal database. -q, --question Run no recipe; exit status says if up to date. -r, --no-builtin-rules Disable the built-in implicit rules. -R, --no-builtin-variables Disable the built-in variable settings. -s, --silent, --quiet Don't echo recipes. --no-silent Echo recipes (disable --silent mode). -S, --no-keep-going, --stop Turns off -k. -t, --touch Touch targets instead of remaking them. --trace Print tracing information. -v, --version Print the version number of make and exit. -w, --print-directory Print the current directory. --no-print-directory Turn off -w, even if it was turned on implicitly. -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE Consider FILE to be infinitely new. --warn-undefined-variables Warn when an undefined variable is referenced. This program built for amd64-portbld-freebsd12.1 Report bugs to <bug-make@gnu.org> *** Error code 2 Stop. make: stopped in /usr/ports/databases/p5-Redis-Fast There are still portlint warnings, but it works fine.
Created attachment 219297 [details] svn diff
Build and package info is available at https://gitlab.com/swills/freebsd-ports/pipelines/210476156
There seems to be a bug left in 0.28. I'm sorry, but it would be helpful if you could suspend the version upgrade of ports until it was resolved.
Triage: If there is a changelog or release notes URL available for this version, please add it to the URL field. ^Triage: Please set the maintainer-approval attachment flag (to +) on patches for ports you maintain to signify approval. -- Attachment -> Details -> maintainer-approval [+] Thanks!
Hi Tomohiro, I had a look and I think it is a false positive from portlint. The port needs gmake to build the hiredis dependency but then it uses modbuild to build itself. If we do USES=gmake, gmake will be tried to build the port and that is not what we want. We want it to build with modbuild. I think we are good to go as it is.
Thank you for your reply. Someone directly emailed me that 0.28 still had a bug, but details are unknown. It works fine in the production environment I'm using. It's been over 50 days since then, and it seems that there are no problems with issues such as issues on github, so I think it's okay to release it.
Committed, Thanks!
A commit references this bug: Author: fernape Date: Tue Dec 29 18:09:59 UTC 2020 New revision: 559600 URL: https://svnweb.freebsd.org/changeset/ports/559600 Log: databases/p5-Redis-Fast: update to 0.28 PR: 250796 Submitted by: bokutin@bokut.in (maintainer) Changes: head/databases/p5-Redis-Fast/Makefile head/databases/p5-Redis-Fast/distinfo head/databases/p5-Redis-Fast/files/