Bug 214608

Summary: databases/sqlite3: Improve CFLAGS and CPPFLAGS configuration
Product: Ports & Packages Reporter: Pavel Volkov <pavelivolkov>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Some People CC: pavelivolkov, rakuco
Priority: --- Keywords: patch
Version: LatestFlags: rakuco: merge-quarterly+
Hardware: Any   
OS: Any   
Attachments:
Description Flags
error into expression
pavelivolkov: maintainer-approval+
portlint log
none
build log none

Description Pavel Volkov 2016-11-17 15:05:43 UTC
Created attachment 177115 [details]
error into expression

I corrected the evaluation of the expression in a variable CPPFLAGS. And added a dummy variable for portlint.
Comment 1 Pavel Volkov 2016-11-17 15:07:05 UTC
Created attachment 177116 [details]
portlint log
Comment 2 Pavel Volkov 2016-11-17 15:07:33 UTC
Created attachment 177117 [details]
build log
Comment 3 VK freebsd_triage 2016-11-17 15:22:06 UTC
Thanks for the patch. Please confirm these changes pass QA (portlint, poudriere).
Comment 4 VK freebsd_triage 2016-11-17 15:24:45 UTC
Ah, you did attach the logs, my bad. A verbal confirmation that it builds with poudriere in different FreeBSD versions should suffice.
Comment 5 Pavel Volkov 2016-11-17 17:38:08 UTC
(In reply to Vladimir Krstulja from comment #4)
Hello. I'm sorry . I don't have computer with the poudriere.
Comment 6 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-12-24 18:12:02 UTC
Can you just clarify what was wrong with the CPPFLAGS expression before? Without the patch -DHAVE_STRCHRNUL=1 seems to be passed correctly depending on the FreeBSD version being used.
Comment 7 Pavel Volkov 2016-12-25 08:45:49 UTC
(In reply to Raphael Kubo da Costa from comment #6)

Hello. Yes, It's easy. You may use next Makefile for check. You should execute him on system with support "Variable modifiers :?" (make on FreeBSD 10 and later) and without him (before 10). And see a result.

# --- Makefile ---
.if defined(q)
.warning Test: variable "q" is exist and = ${q}
.else
.warning Test: variable "q" does not exist
.endif

reply=${ ${q}<50 :? "It work and <50 (true)" : "It work and >=50 (false)" }

.if empty(reply)
.warning expression: ":?" not supported
.else
.warning expression: ${reply}
.endif

.warning bmake have version ${MAKE_VERSION}

all:
        @echo ${.TARGET} reply=${reply}
# --- Makefile ---
Comment 8 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-12-25 17:14:02 UTC
Right, so it's a matter of fmake from FreeBSD 9 not supporting that construct (even though the end result is still the desired one). Thanks for the explanation.
Comment 9 commit-hook freebsd_committer freebsd_triage 2016-12-25 17:18:22 UTC
A commit references this bug:

Author: rakuco
Date: Sun Dec 25 17:17:36 UTC 2016
New revision: 429442
URL: https://svnweb.freebsd.org/changeset/ports/429442

Log:
  Improve the way CFLAGS and CPPFLAGS are set.

  ":?" is not supported by fmake from FreeBSD 9, so replace it with an explicit
  version check. The end result was still the desired one (-DHAVE_STRCHRNUL=1 was
  not passed on FreeBSD 9).

  While here, also improve the version check by including DragonFly (which
  supports strchrnul(3) according to its online man page) and restricting the
  FreeBSD version check to the revision range after strchrnul(3) was added to
  base.

  Also stop passing -Os when building in debug mode, and set UNICODE61_CPPFLAGS
  to pet portlint.

  PR:		214608
  Submitted by:	Pavel Volkov <pavelivolkov@gmail.com> (maintainer)
  MFH:		2016Q4

Changes:
  head/databases/sqlite3/Makefile
Comment 10 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-12-25 17:18:53 UTC
Committed, thanks!
Comment 11 commit-hook freebsd_committer freebsd_triage 2016-12-26 10:05:17 UTC
A commit references this bug:

Author: rakuco
Date: Mon Dec 26 10:04:31 UTC 2016
New revision: 429489
URL: https://svnweb.freebsd.org/changeset/ports/429489

Log:
  MFH: r429442

  Improve the way CFLAGS and CPPFLAGS are set.

  ":?" is not supported by fmake from FreeBSD 9, so replace it with an explicit
  version check. The end result was still the desired one (-DHAVE_STRCHRNUL=1 was
  not passed on FreeBSD 9).

  While here, also improve the version check by including DragonFly (which
  supports strchrnul(3) according to its online man page) and restricting the
  FreeBSD version check to the revision range after strchrnul(3) was added to
  base.

  Also stop passing -Os when building in debug mode, and set UNICODE61_CPPFLAGS
  to pet portlint.

  PR:		214608
  Submitted by:	Pavel Volkov <pavelivolkov@gmail.com> (maintainer)

  Approved by:	ports-secteam (junovitch)

Changes:
_U  branches/2016Q4/
  branches/2016Q4/databases/sqlite3/Makefile