ports/165874: [PATCH] bsd.database.mk does not honour WITH_PGSQL_VER anymore

Guido Falsi mad at madpilot.net
Fri Mar 9 10:50:07 UTC 2012


>Number:         165874
>Category:       ports
>Synopsis:       [PATCH] bsd.database.mk does not honour WITH_PGSQL_VER anymore
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 09 10:50:06 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Guido Falsi
>Release:        FreeBSD 9.0-STABLE amd64
>Organization:
none
>Environment:
System: FreeBSD megatron.madpilot.net 9.0-STABLE FreeBSD 9.0-STABLE #3 r232684: Thu Mar 8 11:40:10 CET 2012 root at megatron.madpilot.net:/usr/obj/usr/src/sys/MEGATRON amd64

>Description:

After the last commit to bsd.databse.mk on march 6th the WITH_PGSQL_VER
variable in make.conf is not being honoured anymore.

The new version of the file is forcing PGSQL_VER == 90, this happens
because the sequence of if-elif-elses always ends up in the fallback
else.

I tested this patch with the ports that were causing me problems,
and seems to fix it without any ill effects, but it needs to be
better reviewed before committing it.

>How-To-Repeat:

With recent ports tree(Mk/bsd.database.mk version >= 1.67) do:

# cd /usr/ports/databases/libdbi-drivers && make -DWITH_PGSQL_VER=91 -V PGSQL_VER
90

if more testing is needed performing the build will try to install
postgresql90-client, which is wrong with that variabler defined.

>Fix:

--- Mk/bsd.database.mk.orig	2012-03-09 10:55:59.000000000 +0100
+++ Mk/bsd.database.mk	2012-03-09 11:28:39.000000000 +0100
@@ -204,34 +204,34 @@
 .      endfor
 .    endif
 _WANT_PGSQL_VER?=	${WANT_PGSQL_VER}
+.  endif
 
-.    if defined(WITH_PGSQL_VER) && !empty(_WANT_PGSQL_VER)
-.      for version in ${_WANT_PGSQL_VER}
-.        if ${WITH_PGSQL_VER} == ${version} 
+.  if defined(WITH_PGSQL_VER) && !empty(_WANT_PGSQL_VER)
+.    for version in ${_WANT_PGSQL_VER}
+.      if ${WITH_PGSQL_VER} == ${version} 
 PGSQL_VER=	${WITH_PGSQL_VER}
-.        endif
-.      endfor
+.      endif
+.    endfor
 
 # Take highest allowed version, but take default if allowed
-.    elif !empty(_WANT_PGSQL_VER)
-.      for ver in ${_WANT_PGSQL_VER}
-.        if ${DEFAULT_PGSQL_VER} == ${ver}
+.  elif !empty(_WANT_PGSQL_VER)
+.    for ver in ${_WANT_PGSQL_VER}
+.      if ${DEFAULT_PGSQL_VER} == ${ver}
 PGSQL_VER=	${ver}
-.        else
+.      else
 _PGSQL_VER_HIGHEST=	${ver}
-.        endif
-.      endfor
+.      endif
+.    endfor
 PGSQL_VER?=	${_PGSQL_VER_HIGHEST}
-.    elif defined(WITH_PGSQL_VER)
+.  elif defined(WITH_PGSQL_VER)
 PGSQL_VER=	${WITH_PGSQL_VER}
 .  endif
-.  else
-.    if defined(_PGSQL_VER)
+
+.  if defined(_PGSQL_VER)
 PGSQL_VER=	${_PGSQL_VER}
-.    else
-PGSQL_VER=	${DEFAULT_PGSQL_VER}
-.    endif
-.  endif # WANT_PGSQL_VER
+.  else
+PGSQL_VER?=	${DEFAULT_PGSQL_VER}
+.  endif
 
 .      if empty(PGSQL_VER)
 IGNORE?=	cannot install: the port wants postgresql-client version ${WANT_PGSQL_VER} and you have set WITH_PGSQL_VER=${WITH_PGSQL_VER} in make.conf or have postgresql${WITH_PGSQL_VER}-client installed
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list