Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Dec 2006 12:57:05 -0800 (PST)
From:      Nick Barkas <snb@threerings.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        sergei@FreeBSD.org
Subject:   ports/106790: [patch] sysutils/cfengine conflicts with devel/publib and doesn't build when Berkeley DB > 4.1 is installed
Message-ID:  <20061215205705.A69D4172B7@maguro.moduli.net>
Resent-Message-ID: <200612152100.kBFL0LJn078581@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         106790
>Category:       ports
>Synopsis:       [patch] sysutils/cfengine conflicts with devel/publib and doesn't build when Berkeley DB > 4.1 is installed
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 15 21:00:21 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Nick Barkas
>Release:        FreeBSD 6.1-RELEASE-p6
>Organization:
Three Rings Design
>Environment:
FreeBSD lab1.earth.threerings.net 6.1-RELEASE-p6 FreeBSD 6.1-RELEASE-p6 #5: Wed
Sep 13 17:45:32 PDT 2006
root@lab1.earth.threerings.net:/usr/obj/usr/src/sys/SMP  i386
>Description:
sysutils/cfengine fails to build on systems that have newer versions of Berkeley
DB than 4.1 installed from ports. databases/db42, db43, and db44 all seem to
install libraries as ${PREFIX}/lib/libdb-version.so without a lib/libdb.so
symlink that is provided by BDB 4.1 (and probably earlier versions). 

Additionally, if devel/publib is installed, the linker will try to link against
it rather than cfengine's included, and completely different, libpub.a.
>How-To-Repeat:
Install devel/publib, databases/db42, databases/db43, and/or databases/db44 and
attempt to build sysutils/cfengine.
>Fix:
The following patch adds files/patch-configure to cause the configure script to
set the appropriate -l options if the databases/db42, db43, or db44 ports are
installed. It also changes linking options to explicitly link with libpub.a
provided with cfengine, rather than the libpub.a which devel/publib may have 
installed in ${LOCALBASE}/lib.

Also, this patch modifies files/patch-doc_Makefile.in so ${WRKSRC}/configure is 
not treated as a source for any documentation files. The cfengine tarball
includes fully built documentation, and trying to rebuild it will fail on
systems that don't have the appropriate TeX/texinfo tools installed (which this
port does not build-depend on). An alternative fix would be to just add those
tools to ${BUILD_DEPENDS}, but that isn't really necessary since there is no
need to rebuild the documentation that is included with the cfengine source.

--- cfengine.patch begins here ---
diff -urN cfengine.orig/files/patch-configure cfengine/files/patch-configure
--- cfengine.orig/files/patch-configure	Wed Dec 31 16:00:00 1969
+++ cfengine/files/patch-configure	Thu Dec 14 19:50:50 2006
@@ -0,0 +1,20 @@
+--- configure.orig	Wed Sep 20 10:27:07 2006
++++ configure	Thu Dec 14 18:00:21 2006
+@@ -8539,7 +8539,7 @@
+         done
+ 
+         BERKELEY_DB_LIB="-ldb"
+-        for v in db4.4 db44 db41 db40 db4 db33 db32 db3 db; do
++        for v in db-4.4 db4.4 db44 db-4.3 db-4.2 db41 db40 db4 db33 db32 db3 db; do
+             if test -f "$BERKELEY_DB_DIR/lib/lib$v.so"; then
+                 BERKELEY_DB_LIB="-l$v"
+ 		break
+@@ -15998,7 +15998,7 @@
+ 
+ 
+ 
+-LIBS="-L../pub -lpub $LIBS"
++LIBS="../pub/libpub.a $LIBS"
+ 
+ 
+ echo "$as_me:$LINENO: checking Checking for GCC Specific compile flags" >&5
diff -urN cfengine.orig/files/patch-doc_Makefile.in cfengine/files/patch-doc_Makefile.in
--- cfengine.orig/files/patch-doc_Makefile.in	Mon Oct  9 06:23:49 2006
+++ cfengine/files/patch-doc_Makefile.in	Fri Dec 15 12:25:16 2006
@@ -1,5 +1,5 @@
---- doc/Makefile.in.orig	Sat Oct  1 16:32:08 2005
-+++ doc/Makefile.in	Fri Oct  7 10:07:40 2005
+--- doc/Makefile.in.orig	Wed Sep 20 10:27:06 2006
++++ doc/Makefile.in	Fri Dec 15 12:24:05 2006
 @@ -52,8 +52,12 @@
  CONFIG_CLEAN_FILES =
  SOURCES =
@@ -39,6 +39,33 @@
  
  # Make sure these get distributed with everything else.
  EXTRA_DIST = cfagent.8 cfenvd.8 cfenvgraph.8 cfexecd.8 cfkey.8 cfrun.8 cfservd.8 cfengine.8 cfshow.8 cfetoolcheck.8   cfetooldump.8   cfetoolimport.8  cfetoolupdate.8 cfetoolcreate.8  cfetoolgraph.8  cfetoolinfo.8 cfetoolcheck.8   cfetooldump.8   cfetoolimport.8  cfetoolupdate.8 cfetoolcreate.8  cfetoolgraph.8  cfetoolinfo.8 texinfo.tex $(htmlfiles) $(infofiles)  $(psfiles) $(dvifiles) $(pdffiles)
+@@ -316,7 +328,7 @@
+ 	  exit 1; \
+ 	fi
+ $(srcdir)/version1.texi:  $(srcdir)/stamp-vti
+-$(srcdir)/stamp-vti: cfengine-Reference.texinfo $(top_srcdir)/configure
++$(srcdir)/stamp-vti: cfengine-Reference.texinfo
+ 	@(dir=.; test -f ./cfengine-Reference.texinfo || dir=$(srcdir); \
+ 	set `$(SHELL) $(srcdir)/mdate-sh $$dir/cfengine-Reference.texinfo`; \
+ 	echo "@set UPDATED $$1 $$2 $$3"; \
+@@ -375,7 +387,7 @@
+ 	  exit 1; \
+ 	fi
+ $(srcdir)/version2.texi:  $(srcdir)/stamp-1
+-$(srcdir)/stamp-1: cfengine-Tutorial.texinfo $(top_srcdir)/configure
++$(srcdir)/stamp-1: cfengine-Tutorial.texinfo
+ 	@(dir=.; test -f ./cfengine-Tutorial.texinfo || dir=$(srcdir); \
+ 	set `$(SHELL) $(srcdir)/mdate-sh $$dir/cfengine-Tutorial.texinfo`; \
+ 	echo "@set UPDATED $$1 $$2 $$3"; \
+@@ -434,7 +446,7 @@
+ 	  exit 1; \
+ 	fi
+ $(srcdir)/version3.texi:  $(srcdir)/stamp-2
+-$(srcdir)/stamp-2: cfengine-Anomalies.texinfo $(top_srcdir)/configure
++$(srcdir)/stamp-2: cfengine-Anomalies.texinfo
+ 	@(dir=.; test -f ./cfengine-Anomalies.texinfo || dir=$(srcdir); \
+ 	set `$(SHELL) $(srcdir)/mdate-sh $$dir/cfengine-Anomalies.texinfo`; \
+ 	echo "@set UPDATED $$1 $$2 $$3"; \
 @@ -579,6 +591,7 @@
  	  rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
  	done
--- cfengine.patch ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061215205705.A69D4172B7>