MFH: r553182

Backport upstream fix for OCaml 4 to avoid SIGSEGV

Unison 2.32.x consistently crashes on startup after reading its configuration
file with a SIGSEGV and does not serve its purpose at all.

Pull in upstream fix from
891c081690 (diff-4117bab3eb479a1766c95c36bb61dd35c817a76e57f9c4c9a430948f504453de)

Suggested by madpilot@ in https://reviews.freebsd.org/D26924#600631

While here, run the selftest as part of the build to catch such issues
in the future and receive pkg-fallout@ mail.

While here, also remove MAKE_JOBS_UNSAFE.

Bump PORTREVISION to trigger a rebuild and flush out the broken packages.

(The absence of bug reports however suggests that unison 2.32 is no longer
used or needed widely.)

Obtained from:	Benjamin Pierce's upstream repo (madpilot@)

Approved by:	ports-secteam (blanket, unbreak broken program, single patch)
This commit is contained in:
Matthias Andree 2020-10-24 11:22:04 +00:00
parent bde3d9061e
commit b10748e3a1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2020Q4/; revision=553183
2 changed files with 33 additions and 20 deletions

View File

@ -3,10 +3,10 @@
PORTNAME= unison
PORTVERSION= 2.32.52
PORTREVISION= 10
PORTREVISION= 11
CATEGORIES= net
MASTER_SITES= https://www.cis.upenn.edu/~bcpierce/unison/download/releases/${DISTNAME}/
DISTFILES= ${EXTRACT_ONLY} ${EXTRA_DOCS}
DISTFILES= ${EXTRACT_ONLY} ${_EXTRA_DOCS}
DIST_SUBDIR= ${DISTNAME}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
@ -20,29 +20,31 @@ LICENSE_FILE= ${WRKSRC}/COPYING
FLAVORS= x11 nox11
FLAVOR?= ${FLAVORS:[1]}
VERSIONSUFFIX= 232
USES= gmake
nox11_PKGNAMESUFFIX= ${VERSIONSUFFIX}-nox11
nox11_CONFLICTS_INSTALL= unison${VERSIONSUFFIX}
_VERSIONSUFFIX= 232
x11_PKGNAMESUFFIX= ${VERSIONSUFFIX}
x11_CONFLICTS_INSTALL= unison${VERSIONSUFFIX}-nox11
nox11_PKGNAMESUFFIX= ${_VERSIONSUFFIX}-nox11
nox11_CONFLICTS_INSTALL= unison${_VERSIONSUFFIX}
x11_PKGNAMESUFFIX= ${_VERSIONSUFFIX}
x11_BUILD_DEPENDS= lablgtk2:x11-toolkits/ocaml-lablgtk2 \
icotool:graphics/icoutils
x11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2
x11_RUN_DEPENDS= lablgtk2:x11-toolkits/ocaml-lablgtk2
x11_CONFLICTS_INSTALL= unison${_VERSIONSUFFIX}-nox11
PLIST_SUB= PORTVERSION=${PORTVERSION}
USES= gmake
USE_OCAML= yes
NO_OCAML_RUNDEPENDS=yes
MAKE_ARGS= CFLAGS=""
MAKE_JOBS_UNSAFE= yes
DOCS= BUGS.txt NEWS README
TEST_TARGET= selftest
_DOCS= BUGS.txt NEWS README
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
EXTRA_DOCS= ${DISTNAME}-manual.html \
_EXTRA_DOCS= ${DISTNAME}-manual.html \
${DISTNAME}-manual.pdf ${DISTNAME}-manual.ps
OPTIONS_DEFINE= DOCS
@ -59,29 +61,29 @@ USES+= gettext-runtime gnome
PLIST_SUB+= X11=""
.endif
.if ${FLAVOR} == x11
post-patch:
@${REINPLACE_CMD} -Ee 's@(\+|/)(lablgtk2)@\1site-lib/\2@' \
${WRKSRC}/Makefile.OCaml
post-build:
@${ECHO} Building text-only version
@${ECHO} ${WRKSRC}
( cd ${WRKSRC} && ./unison -selftest -ui text -batch )
.if ${FLAVOR} == x11
@${ECHO} Building text-only version in ${WRKSRC}
${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC} CFLAGS="" UISTYLE=text NAME=${PORTNAME}-text
@cd ${WRKSRC}/win32rc && ${LOCALBASE}/bin/icotool -x U.ico
.endif
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${VERSIONSUFFIX}
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${_VERSIONSUFFIX}
.if ${FLAVOR} == x11
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-text ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${VERSIONSUFFIX}-text
${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.desktop ${STAGEDIR}${DESKTOPDIR}/${PORTNAME}${VERSIONSUFFIX}.desktop
${INSTALL_DATA} ${WRKSRC}/win32rc/U_4_48x48x32.png ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}${VERSIONSUFFIX}.png
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-text ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${_VERSIONSUFFIX}-text
${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.desktop ${STAGEDIR}${DESKTOPDIR}/${PORTNAME}${_VERSIONSUFFIX}.desktop
${INSTALL_DATA} ${WRKSRC}/win32rc/U_4_48x48x32.png ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}${_VERSIONSUFFIX}.png
.endif
do-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}
cd ${DISTDIR}/${DIST_SUBDIR} && ${INSTALL_DATA} ${EXTRA_DOCS} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC} && ${INSTALL_DATA} ${_DOCS} ${STAGEDIR}${DOCSDIR}
cd ${DISTDIR}/${DIST_SUBDIR} && ${INSTALL_DATA} ${_EXTRA_DOCS} ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>

View File

@ -0,0 +1,11 @@
--- ubase/util.ml.orig 2009-05-02 02:31:27 UTC
+++ ubase/util.ml
@@ -71,7 +71,7 @@ let set_infos s =
if s <> !infos then begin clear_infos (); infos := s; show_infos () end
let msg f =
- clear_infos (); Uprintf.eprintf (fun () -> flush stderr; show_infos ()) f
+ clear_infos (); Printf.kfprintf (fun c -> flush c; show_infos ()) stderr f
let msg : ('a, out_channel, unit) format -> 'a = msg