Bug 183547 - mail/sendmail port doesn't compile out of box
Summary: mail/sendmail port doesn't compile out of box
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Dirk Meyer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-01 06:30 UTC by Julian Elischer
Modified: 2013-11-16 06:40 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Julian Elischer freebsd_committer freebsd_triage 2013-11-01 06:30:00 UTC
	on new machine sendmail port doesn't compile.

Fix: 

Since I don't use them I just unslelected milters in the config and redid the compile.
How-To-Repeat: 	install -current (I installed 9.2 and then did 'buildworld')
        set up new pkg stuff
	go to /usr/ports/mail/sendmail
	make config (can't remember if I changes anything.. nothing major)
	make
	see error

	cc -pthread -shared -o libmilter.so -soname libmilter.so.6 main.o engine.o listener.o worker.o handler.o comm.o smfi.o signal.o sm_gethost.o monitor.o errstring.o strl.o
cc: error: no such file or directory: 'libmilter.so.6'
*** Error code 1
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-11-03 22:01:29 UTC
Responsible Changed
From-To: freebsd-ports-bugs->dinoex

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Dirk Meyer freebsd_committer freebsd_triage 2013-11-04 21:12:01 UTC
State Changed
From-To: open->feedback


Sorry, I can not reproduce your problem on 9.x 

cc -O2 -pipe -fno-strict-aliasing -I. -I../../sendmail   -I../../include -DNOT_SENDMAIL -Dsm_snprintf=snprintf -DNETINET6 -DMILTER -DSM_CONF_POLL=1 -D_FFR_WORKERS_POOL=1 -D_THREAD_SAFE -fPIC -DXP_MT -c strl.c 
cc -pthread -shared -o libmilter.so -soname libmilter.so.6 main.o engine.o listener.o worker.o handler.o comm.o smfi.o signal.o sm_gethost.o monitor.o errstring.o strl.o     
===>  Installing for sendmail-current-8.14.7_1 

"libmilter.so.6" will be later created after "libmilter.so". 
I can not see why yur linker want to access it before creation.
Comment 3 Ryan Frederick 2013-11-15 23:39:14 UTC
I'm seeing this same problem on 10.0-BETA3. Since 9.x uses GCC as the 
default compiler and 10.x and above uses LLVM/Clang it appears we're 
running into a problem with options that are passed. I'm think that 
"-Wl" needs to be specified with LLVM/Clang in order to pass the -soname 
option to the linker, e.g. "cc -pthread -shared -o libmilter.so 
-Wl,-soname -Wl,libmilter.so.6 main.o engine.o listener.o worker.o 
handler.o comm.o smfi.o signal.o sm_gethost.o monitor.o errstring.o strl.o"
Comment 4 dfilter service freebsd_committer freebsd_triage 2013-11-16 06:38:27 UTC
Author: dinoex
Date: Sat Nov 16 06:38:19 2013
New Revision: 333983
URL: http://svnweb.freebsd.org/changeset/ports/333983

Log:
  - fix CC handling
  - escape LD options
  PR:		183547

Modified:
  head/mail/sendmail/Makefile
  head/mail/sendmail/files/patch-FreeBSD
  head/mail/sendmail/files/sharedlibrary.m4

Modified: head/mail/sendmail/Makefile
==============================================================================
--- head/mail/sendmail/Makefile	Sat Nov 16 05:06:38 2013	(r333982)
+++ head/mail/sendmail/Makefile	Sat Nov 16 06:38:19 2013	(r333983)
@@ -132,8 +132,9 @@ PLIST_SUB+=	MILTER_SHARED="@comment "
 .endif
 .endif
 
-SED_SCRIPT=	-e "s;\`-pthread\';\`${PTHREAD_LIBS}\';" \
-		-e "s;\`-O\';\`${CFLAGS}\';"
+SED_SCRIPT=	-e "s|\`-pthread\'|\`${PTHREAD_LIBS}\'|" \
+		-e "s|\`-O\'|\`${CFLAGS}\'|" \
+		-e 's|%%CC%%|${CC}|' -e 's|%%LD%%|${LD}|'
 
 .if ! ${PORT_OPTIONS:MNIS}
 SED_SCRIPT+=	-e "s;-DNIS ;;"
@@ -148,17 +149,12 @@ post-patch:
 	@${CP} -pR ${WRKSRC}/libmilter ${WRKSRC}/libsharedmilter
 	${CP} ${FILESDIR}/sharedlibrary.m4 \
 		${WRKSRC}/devtools/M4/UNIX/sharedlibrary.m4
-	@${MV} ${WRKSRC}/libsharedmilter/Makefile.m4 \
-		${WRKSRC}/libsharedmilter/Makefile.m4.sed
-	@${SED} -e 's=`library=`sharedlibrary=' \
-		${WRKSRC}/libsharedmilter/Makefile.m4.sed \
-		> ${WRKSRC}/libsharedmilter/Makefile.m4
+	${REINPLACE_CMD} -e 's=`library=`sharedlibrary=' \
+		${WRKSRC}/libsharedmilter/Makefile.m4
 .endif
 
 do-configure:
-	@${MV} ${WRKSRC}/devtools/OS/FreeBSD ${WRKSRC}/devtools/OS/FreeBSD.sed
-	${SED} ${SED_SCRIPT} ${WRKSRC}/devtools/OS/FreeBSD.sed \
-		> ${WRKSRC}/devtools/OS/FreeBSD
+	${REINPLACE_CMD} ${SED_SCRIPT} ${WRKSRC}/devtools/OS/FreeBSD
 	${SED} -e "s=%%PREFIX%%=${PREFIX}=g" \
 		-e "s=%%LOCALBASE%%=${LOCALBASE}=g" \
 		${SITE} > ${WCONF}/site.config.m4

Modified: head/mail/sendmail/files/patch-FreeBSD
==============================================================================
--- head/mail/sendmail/files/patch-FreeBSD	Sat Nov 16 05:06:38 2013	(r333982)
+++ head/mail/sendmail/files/patch-FreeBSD	Sat Nov 16 06:38:19 2013	(r333983)
@@ -1,11 +1,11 @@
 --- devtools/OS/FreeBSD.orig	2003-07-03 03:07:45.000000000 +0200
-+++ devtools/OS/FreeBSD	2011-06-24 20:24:03.000000000 +0200
++++ devtools/OS/FreeBSD	2013-11-16 07:06:27.000000000 +0100
 @@ -6,7 +6,7 @@
  define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
  define(`confLIBS', `-lutil')
  
 -define(`confLD', `cc')
-+define(`confLD', `${CC}')
++define(`confCC', `%%CC%%')
  define(`confMTLDOPTS', `-pthread')
  define(`confMTCCOPTS', `-D_THREAD_SAFE')
  define(`confLDOPTS_SO', `-shared')

Modified: head/mail/sendmail/files/sharedlibrary.m4
==============================================================================
--- head/mail/sendmail/files/sharedlibrary.m4	Sat Nov 16 05:06:38 2013	(r333982)
+++ head/mail/sendmail/files/sharedlibrary.m4	Sat Nov 16 06:38:19 2013	(r333983)
@@ -1,6 +1,6 @@
 divert(-1)
 #
-# Copyright (c) 1999-2001 Sendmail, Inc. and its suppliers.
+# Copyright (c) 1999-2001, 2006 Sendmail, Inc. and its suppliers.
 #	All rights reserved.
 #
 # By using this file, you agree to the terms and conditions set
@@ -10,7 +10,7 @@ divert(-1)
 #
 #  Definitions for Makefile construction for sendmail
 #
-#	$Id: library.m4,v 8.10 2001/02/14 04:39:38 gshapiro Exp $
+#	$Id: library.m4,v 8.11 2006/09/05 22:56:53 ca Exp $
 #
 divert(0)dnl
 include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
@@ -22,7 +22,7 @@ bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`
 include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
 divert(bldTARGETS_SECTION)
 bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
-	${LD} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so confSONAME bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'}
+	${LD} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME -Wl,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'}
 ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
 
 install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 5 Dirk Meyer freebsd_committer freebsd_triage 2013-11-16 06:38:47 UTC
State Changed
From-To: feedback->closed

A fix has been committed, thanks.