From 218d7c5c5ce8f8ff846daefd9f7147d4cb65a74c Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Mon, 18 May 2020 17:37:16 +0200 Subject: [PATCH 1/4] libmilter: set MILTER_SOVER MILTER_SOVER is used as an environment variable during the build, but never set anywhere set to so version 1 as currently used by Ubuntu --- pkgs/development/libraries/libmilter/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/libmilter/default.nix b/pkgs/development/libraries/libmilter/default.nix index 8d677d858de..60ced27beac 100644 --- a/pkgs/development/libraries/libmilter/default.nix +++ b/pkgs/development/libraries/libmilter/default.nix @@ -28,6 +28,7 @@ stdenv.mkDerivation rec { define(\`confLIBGRP', \`root') APPENDDEF(\`confENVDEF', \`-DNETINET6') EOF + export MILTER_SOVER=1 sh Build -f ./a.m4 ''; From c9d8edaecb5c4ef689f24b4a9905ca0697cab9c3 Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Mon, 18 May 2020 17:41:25 +0200 Subject: [PATCH 2/4] libmilter: configurable shared object extension MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit defaults to ‘so’ if not set --- .../libraries/libmilter/sharedlib.patch | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/libmilter/sharedlib.patch b/pkgs/development/libraries/libmilter/sharedlib.patch index bbc69a516ff..e0b1e6992e1 100644 --- a/pkgs/development/libraries/libmilter/sharedlib.patch +++ b/pkgs/development/libraries/libmilter/sharedlib.patch @@ -16,28 +16,29 @@ diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3 +# +divert(0)dnl +include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl ++define(`confSOEXT', ifdef(`confSOEXT', `confSOEXT', `so'))dnl +bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl -+bldPUSH_TARGET(bldCURRENT_PRODUCT`.so' bldCURRENT_PRODUCT`.a')dnl ++bldPUSH_TARGET(bldCURRENT_PRODUCT`.'confSOEXT bldCURRENT_PRODUCT`.a')dnl +bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl +bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl + +include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4') +divert(bldTARGETS_SECTION) -+bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} -+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS} ++bldCURRENT_PRODUCT`.'confSOEXT: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} ++ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.confSOEXT ifdef(`confSONAME',`-Wl,confSONAME,bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}') ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS} +bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} + ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'} + ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a +ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)') + -+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ++install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a +ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ') -+ ${INSTALL} -c bldCURRENT_PRODUCT.so "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so.${MILTER_SOVER}" -+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so" ++ ${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}" ++ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT" + ${INSTALL} -c bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') + +bldCURRENT_PRODUCT-clean: -+ rm -f ${OBJS} bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ${MANPAGES} ++ rm -f ${OBJS} bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ${MANPAGES} + +divert(0) +COPTS+= confCCOPTS_SO From 81fed3c7a2fa3f9e2238f4de6f496dd520cb72bb Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Mon, 18 May 2020 17:42:03 +0200 Subject: [PATCH 3/4] libmilter: install archive as not executable --- pkgs/development/libraries/libmilter/sharedlib.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libmilter/sharedlib.patch b/pkgs/development/libraries/libmilter/sharedlib.patch index e0b1e6992e1..1e256c59ec3 100644 --- a/pkgs/development/libraries/libmilter/sharedlib.patch +++ b/pkgs/development/libraries/libmilter/sharedlib.patch @@ -35,7 +35,7 @@ diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3 +ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ') + ${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}" + ${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT" -+ ${INSTALL} -c bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') ++ ${INSTALL} -c -m 644 bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') + +bldCURRENT_PRODUCT-clean: + rm -f ${OBJS} bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ${MANPAGES} From cb38977986f9068fbba0a7e483a8ccbcd45f43ec Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Mon, 18 May 2020 17:48:24 +0200 Subject: [PATCH 4/4] libmilter: fix compilation on Darwin * configure compilation options * patch sendmail.h header inclusion --- .../libraries/libmilter/darwin.patch | 28 +++++++++++++++++++ .../libraries/libmilter/default.nix | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/libmilter/darwin.patch diff --git a/pkgs/development/libraries/libmilter/darwin.patch b/pkgs/development/libraries/libmilter/darwin.patch new file mode 100644 index 00000000000..be46662d6b3 --- /dev/null +++ b/pkgs/development/libraries/libmilter/darwin.patch @@ -0,0 +1,28 @@ +Fix build issues on Darwin. + +--- a/devtools/OS/Darwin 2014-03-05 01:59:45.000000000 +0100 ++++ b/devtools/OS/Darwin 2020-05-18 14:47:57.000000000 +0200 +@@ -8,6 +8,8 @@ + # We look a lot more like 4.4BSD than NeXTStep or OpenStep. + # + define(`confCC', `cc -traditional-cpp -pipe ${Extra_CC_Flags}') ++define(`confCCOPTS_SO', `-fPIC') ++define(`confSOEXT', `dylib') + define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX -DNETINFO -DAUTO_NETINFO_ALIASES -DAUTO_NETINFO_HOSTS') + define(`confENVDEF', `-DDARWIN') + define(`confLDOPTS', `${Extra_LD_Flags}') +--- a/sendmail/sendmail.h 2020-05-18 14:51:17.000000000 +0200 ++++ b/sendmail/sendmail.h 2020-05-18 14:51:00.000000000 +0200 +@@ -104,7 +104,11 @@ + # endif /* NETX25 */ + + # if NAMED_BIND +-# include ++# ifdef __APPLE__ ++# include ++# else ++# include ++# endif + # ifdef NOERROR + # undef NOERROR /* avoid conflict */ + # endif /* NOERROR */ diff --git a/pkgs/development/libraries/libmilter/default.nix b/pkgs/development/libraries/libmilter/default.nix index 60ced27beac..f937d818a55 100644 --- a/pkgs/development/libraries/libmilter/default.nix +++ b/pkgs/development/libraries/libmilter/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { sh Build -f ./a.m4 ''; - patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ]; + patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ./darwin.patch ]; nativeBuildInputs = [ m4 ];