From 7beb6b9126333c502510c88b2243b2b129322f4a Mon Sep 17 00:00:00 2001 From: barracuda156 Date: Wed, 26 Jul 2023 12:28:32 +0800 Subject: [PATCH 1/4] mosml: update to latest upstream, make -dynlibs its subport, close a bunch of old tickets Closes: https://trac.macports.org/ticket/39662 Closes: https://trac.macports.org/ticket/58503 Fixes: https://trac.macports.org/ticket/39665 Fixes: https://trac.macports.org/ticket/39664 --- lang/mosml-dynlibs/Portfile | 43 --- lang/mosml-dynlibs/files/patch-configure.diff | 8 - .../files/patch-src-Makefile-inc.diff | 46 --- .../files/patch-src-Makefile.diff | 18 -- .../files/patch-src-dynlibs.diff | 206 ------------- .../files/patch-src-launch-Makefile.diff | 46 --- lang/mosml/Portfile | 96 ++++-- lang/mosml/files/0001-mosml.patch | 145 +++++++++ lang/mosml/files/0002-mosml-dynlibs.patch | 275 ++++++++++++++++++ lang/mosml/files/patch-src-Makefile-inc.diff | 46 --- lang/mosml/files/patch-src-Makefile.diff | 18 -- lang/mosml/files/patch-src-dynlibs.diff | 206 ------------- .../files/patch-src-launch-Makefile.diff | 46 --- .../files/patch-src-runtime-mosml.c.diff | 13 - lang/mosml/files/patch-src-runtime-sys.c.diff | 13 - 15 files changed, 485 insertions(+), 740 deletions(-) delete mode 100644 lang/mosml-dynlibs/Portfile delete mode 100644 lang/mosml-dynlibs/files/patch-configure.diff delete mode 100644 lang/mosml-dynlibs/files/patch-src-Makefile-inc.diff delete mode 100644 lang/mosml-dynlibs/files/patch-src-Makefile.diff delete mode 100644 lang/mosml-dynlibs/files/patch-src-dynlibs.diff delete mode 100644 lang/mosml-dynlibs/files/patch-src-launch-Makefile.diff create mode 100644 lang/mosml/files/0001-mosml.patch create mode 100644 lang/mosml/files/0002-mosml-dynlibs.patch delete mode 100644 lang/mosml/files/patch-src-Makefile-inc.diff delete mode 100644 lang/mosml/files/patch-src-Makefile.diff delete mode 100644 lang/mosml/files/patch-src-dynlibs.diff delete mode 100644 lang/mosml/files/patch-src-launch-Makefile.diff delete mode 100644 lang/mosml/files/patch-src-runtime-mosml.c.diff delete mode 100644 lang/mosml/files/patch-src-runtime-sys.c.diff diff --git a/lang/mosml-dynlibs/Portfile b/lang/mosml-dynlibs/Portfile deleted file mode 100644 index 37ca9dd747d59..0000000000000 --- a/lang/mosml-dynlibs/Portfile +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 - -PortSystem 1.0 - -name mosml-dynlibs -version 2.01_0 -revision 4 -categories lang devel ml -platforms darwin -license GPL-2+ -maintainers nomaintainer - -description Moscow ML dynamic libraries -long_description Dynamic libraries for Moscow ML includes: \ - intinf, crypt, munix, mregex, msocket, mgdbm, mgd - -homepage http://www.itu.dk/people/sestoft/mosml.html -master_sites http://www.itu.dk/people/sestoft/mosml/ -distfiles mos201src.tar.gz - -checksums rmd160 b2a9582d8c0bfdad2b8a74740e54ab33d3856637 \ - sha256 9ec5695358a4aa4702d856c026f3cf0bce77275e8d1318fd90d455a44c46edff \ - size 2314392 - -patchfiles patch-configure.diff \ - patch-src-Makefile.diff \ - patch-src-Makefile-inc.diff \ - patch-src-launch-Makefile.diff \ - patch-src-dynlibs.diff - -post-patch { - file attributes ${worksrcpath}/configure -permissions +x -} - -worksrcdir mosml -build.target world-dyn -build.pre_args -Csrc DESTROOT=${prefix} ${build.target} -destroot.target install-world-dyn -destroot.pre_args -Csrc DESTROOT=${destroot}${prefix} ${destroot.target} - -depends_lib port:gmp \ - port:gdbm \ - port:gd2 diff --git a/lang/mosml-dynlibs/files/patch-configure.diff b/lang/mosml-dynlibs/files/patch-configure.diff deleted file mode 100644 index 1614eb2ac85ea..0000000000000 --- a/lang/mosml-dynlibs/files/patch-configure.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- configure 2006-08-27 16:12:46.000000000 +0200 -+++ configure 2006-08-27 16:07:47.000000000 +0200 -@@ -0,0 +1,5 @@ -+#!/bin/sh -+cd src/config -+./autoconf -+cd .. -+ diff --git a/lang/mosml-dynlibs/files/patch-src-Makefile-inc.diff b/lang/mosml-dynlibs/files/patch-src-Makefile-inc.diff deleted file mode 100644 index 6d92356180872..0000000000000 --- a/lang/mosml-dynlibs/files/patch-src-Makefile-inc.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- src/Makefile.inc 2006-08-27 16:20:05.000000000 +0200 -+++ src/Makefile.inc 2006-08-27 16:30:56.000000000 +0200 -@@ -2,7 +2,7 @@ - - # Where to install stuff - --MOSMLHOME=${HOME}/mosml -+MOSMLHOME=${DESTROOT} - - # Various utility programs - INSTALL_PROGRAM=cp -@@ -22,14 +22,14 @@ - # To compile the runtime system camlrunm under Cygwin with support for - # dynamically loadable libraries (DDLs), uncomment these: - --ADDPRIMS=dynlib.c --ADDOBJS=dynlib.o --ADDRUNCFLAGS= --ADDDYNLIBCFLAGS= -+#ADDPRIMS=dynlib.c -+#ADDOBJS=dynlib.o -+#ADDRUNCFLAGS= -+#ADDDYNLIBCFLAGS= - - # For Linux (x86 or Alpha), use: - # ------------------------------ --CPP=/lib/cpp -P -traditional -Dunix -Umsdos -+CPP=/usr/bin/cpp -P -traditional -Dunix -Umsdos - STRIP=strip - LD=gcc -rdynamic - DYNLD=ld -shared -@@ -114,10 +114,10 @@ - # DOCDIR contains documentation - - BINDIR=${MOSMLHOME}/bin --LIBDIR=${MOSMLHOME}/lib --INCDIR=${MOSMLHOME}/include --DOCDIR=${MOSMLHOME}/doc --TOOLDIR=${MOSMLHOME}/tools -+LIBDIR=${MOSMLHOME}/lib/mosml -+INCDIR=${MOSMLHOME}/include/mosml -+DOCDIR=${MOSMLHOME}/share/doc/mosml -+TOOLDIR=${MOSMLHOME}/bin - # LIBDIR=${MOSMLHOME}/lib/moscow_ml - # TOOLDIR=${MOSMLHOME}/libexec/moscow_ml - diff --git a/lang/mosml-dynlibs/files/patch-src-Makefile.diff b/lang/mosml-dynlibs/files/patch-src-Makefile.diff deleted file mode 100644 index 4875d21a62436..0000000000000 --- a/lang/mosml-dynlibs/files/patch-src-Makefile.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- src/Makefile 2006-08-27 16:20:05.000000000 +0200 -+++ src/Makefile 2006-08-27 16:44:37.000000000 +0200 -@@ -16,7 +16,6 @@ - # Build the entire system for the first time - - world: -- cd config; sh autoconf $(CC) - cd runtime; make all - cp runtime/camlrunm$(EXE) . - cd mosmlyac; make all -@@ -58,7 +57,6 @@ - cd compiler; make install - cd toolssrc; make install - cd lex; make install -- (cd $(INCDIR)/..; rm -f config; ln -s include config) - cd doc; make install - - # Remove all generated files diff --git a/lang/mosml-dynlibs/files/patch-src-dynlibs.diff b/lang/mosml-dynlibs/files/patch-src-dynlibs.diff deleted file mode 100644 index e1dde640a7d28..0000000000000 --- a/lang/mosml-dynlibs/files/patch-src-dynlibs.diff +++ /dev/null @@ -1,206 +0,0 @@ -diff -urN ../mosml.orig/include/config.h ./include/config.h ---- ../mosml.orig/include/config.h 2004-01-19 15:02:21.000000000 +0000 -+++ ./include/config.h 2008-12-03 11:39:56.000000000 +0000 -@@ -2,7 +2,7 @@ - #define _config_ - - --#if defined(__MWERKS__) || defined(THINK_C) -+#if defined(__MWERKS__) || defined(THINK_C) || defined(LSB) - #include "m.h" - #include "s.h" - #else -diff -urN ../mosml.orig/src/Makefile ./src/Makefile ---- ../mosml.orig/src/Makefile 2008-11-28 14:42:49.000000000 +0000 -+++ ./src/Makefile 2008-12-09 17:09:12.000000000 +0000 -@@ -25,6 +25,24 @@ - cd lex; make all - cd launch; make all - -+world-dyn: -+ cd dynlibs/msocket; make -+ cd dynlibs/crypt; make -+ cd dynlibs/munix; make -+ cd dynlibs/mregex; make -+ cd dynlibs/mgdbm; make -+ cd dynlibs/mgd; make -+ cd dynlibs/intinf; make -+ -+install-world-dyn: dirs -+ cd dynlibs/msocket; make install -+ cd dynlibs/crypt; make install -+ cd dynlibs/munix; make install -+ cd dynlibs/mregex; make install -+ cd dynlibs/mgdbm; make install -+ cd dynlibs/mgd; make install -+ cd dynlibs/intinf; make install -+ - uptodate: - cd runtime; make all - cp runtime/camlrunm$(EXE) . -@@ -42,13 +60,15 @@ - cd toolssrc; make clean all - cd lex; make clean all - --# Install the Mosml system --install: -+dirs: - test -d $(BINDIR) || mkdir -p $(BINDIR) - test -d $(LIBDIR) || mkdir -p $(LIBDIR) - test -d $(INCDIR) || mkdir -p $(INCDIR) - test -d $(DOCDIR) || mkdir -p $(DOCDIR) - test -d $(TOOLDIR) || mkdir -p $(TOOLDIR) -+ -+# Install the Mosml system -+install: dirs - cd runtime; make install - cd config; make install - cd launch; make all install -diff -urN ../mosml.orig/src/Makefile.inc ./src/Makefile.inc ---- ../mosml.orig/src/Makefile.inc 2008-11-28 14:42:49.000000000 +0000 -+++ ./src/Makefile.inc 2008-12-09 17:24:00.000000000 +0000 -@@ -30,9 +30,12 @@ - # For Linux (x86 or Alpha), use: - # ------------------------------ - CPP=/usr/bin/cpp -P -traditional -Dunix -Umsdos --STRIP=strip --LD=gcc -rdynamic --DYNLD=ld -shared -+STRIP=echo -+LD=gcc -Wl,-rpath -Wl,${DESTROOT}/lib/mosml -+DYNLD=gcc -bundle -bundle_loader ${DESTROOT}/bin/camlrunm -+ADDRUNLIBS= -+ADDRUNCFLAGS= -+ADDDYNLIBCFLAGS=-DLSB - - # For Cygwin 20.1, use: - # --------------------- -diff -urN ../mosml.orig/src/dynlibs/crypt/Makefile ./src/dynlibs/crypt/Makefile ---- ../mosml.orig/src/dynlibs/crypt/Makefile 2000-02-16 15:36:57.000000000 +0000 -+++ ./src/dynlibs/crypt/Makefile 2008-11-28 15:22:08.000000000 +0000 -@@ -13,8 +13,10 @@ - $(CC) $(CFLAGS) -c -o crypt.o crypt.c - - libcrypt.so: crypt.o -- $(DYNLD) -lcrypt -o libcrypt.so crypt.o --# $(DYNLD) -o libcrypt.so crypt.o -+ $(DYNLD) -o libcrypt.so crypt.o -+ -+install: -+ cp libcrypt.so $(LIBDIR) - - clean: - rm -f *.o -diff -urN ../mosml.orig/src/dynlibs/intinf/Makefile ./src/dynlibs/intinf/Makefile ---- ../mosml.orig/src/dynlibs/intinf/Makefile 2000-02-16 15:36:57.000000000 +0000 -+++ ./src/dynlibs/intinf/Makefile 2008-12-09 17:58:03.000000000 +0000 -@@ -5,12 +5,14 @@ - - # Where to find GMP header file and compiled library - --GMPDIR=${HOME}/c/gmp-2.0.2 -+GMPDIR=/opt/local -+GMPINCDIR=${GMPDIR}/include -+GMPLIBDIR=${GMPDIR}/lib - - include ../../Makefile.inc - - OPTS=-fno-defer-pop --CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GMPDIR} -+CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GMPINCDIR} - - MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools - MOSMLC=mosmlc -c -@@ -18,16 +20,19 @@ - MOSMLLEX=mosmllex - MOSMLYACC=mosmlyac - --all: libmgmp.so IntInf.uo -+all: libmgmp.so IntInf.uo IntInf.ui - --install: -+install: all - cp libmgmp.so $(LIBDIR) -+ cp IntInf.uo $(LIBDIR) -+ cp IntInf.ui $(LIBDIR) -+ cp IntInf.sig $(LIBDIR) - - intinf.o: intinf.c - $(CC) $(CFLAGS) -c -o intinf.o intinf.c - - libmgmp.so: intinf.o -- $(DYNLD) -o libmgmp.so intinf.o ${GMPDIR}/libgmp.a -+ $(DYNLD) -o libmgmp.so intinf.o ${GMPLIBDIR}/libgmp.a - - test: - mosml testintinf.sml -diff -urN ../mosml.orig/src/dynlibs/mgd/Makefile ./src/dynlibs/mgd/Makefile ---- ../mosml.orig/src/dynlibs/mgd/Makefile 2000-02-23 17:11:42.000000000 +0000 -+++ ./src/dynlibs/mgd/Makefile 2008-11-28 15:44:28.000000000 +0000 -@@ -5,12 +5,13 @@ - - # Where to find gd header file and compiled library - --GDDIR=${HOME}/c/gd-1.7.3 -+GDINCDIR=/opt/local/include -+GDLIBDIR=/opt/local/lib - - include ../../Makefile.inc - - OPTS=-fno-defer-pop --CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDDIR} -+CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDINCDIR} - - MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools - MOSMLC=mosmlc -c -@@ -24,7 +25,7 @@ - $(CC) $(CFLAGS) -c -o mgd.o mgd.c - - libmgd.so: mgd.o -- $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -L/usr/X11R6/lib -lpng -lz -+ $(DYNLD) -o libmgd.so mgd.o ${GDLIBDIR}/libgd.a -L/usr/X11R6/lib -lpng -lz - # $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -R/pack/libs/lib -L/pack/libs/lib -lpng -lz - - test: Graphs.uo -diff -urN ../mosml.orig/src/dynlibs/mgdbm/Makefile ./src/dynlibs/mgdbm/Makefile ---- ../mosml.orig/src/dynlibs/mgdbm/Makefile 2000-02-16 15:36:57.000000000 +0000 -+++ ./src/dynlibs/mgdbm/Makefile 2008-11-28 15:42:39.000000000 +0000 -@@ -5,10 +5,8 @@ - - # Where to find GDBM header file and compiled library - --GDBMLIBDIR=${HOME}/c/gdbm-1.7.3 --GDBMINCDIR=${HOME}/c/gdbm-1.7.3 --#GDBMLIBDIR=/usr/lib --#GDBMINCDIR=/usr/include -+GDBMLIBDIR=/opt/local/lib -+GDBMINCDIR=/opt/local/include - - include ../../Makefile.inc - -diff -urN ../mosml.orig/src/dynlibs/munix/munix.c ./src/dynlibs/munix/munix.c ---- ../mosml.orig/src/dynlibs/munix/munix.c 2000-01-21 10:07:13.000000000 +0000 -+++ ./src/dynlibs/munix/munix.c 2008-11-28 15:20:53.000000000 +0000 -@@ -59,8 +59,8 @@ - failwith("EINVAL"); break; - case EISDIR: - failwith("EISDIR"); break; -- case ELIBBAD: -- failwith("ELIBBAD"); break; -+/* case ELIBBAD: -+ failwith("ELIBBAD"); break; */ - case ECHILD: - failwith("ECHILD"); break; - case EINTR: -diff -urN ../mosml.orig/src/runtime/config.h ./src/runtime/config.h ---- ../mosml.orig/src/runtime/config.h 2000-01-21 10:07:13.000000000 +0000 -+++ ./src/runtime/config.h 2008-12-08 14:59:31.000000000 +0000 -@@ -2,7 +2,7 @@ - #define _config_ - - --#if defined(__MWERKS__) || defined(THINK_C) -+#if defined(__MWERKS__) || defined(THINK_C) || defined(LSB) - #include "m.h" - #include "s.h" - #else diff --git a/lang/mosml-dynlibs/files/patch-src-launch-Makefile.diff b/lang/mosml-dynlibs/files/patch-src-launch-Makefile.diff deleted file mode 100644 index c8b749c35b8b5..0000000000000 --- a/lang/mosml-dynlibs/files/patch-src-launch-Makefile.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- src/launch/Makefile 2006-08-27 16:20:03.000000000 +0200 -+++ src/launch/Makefile 2006-08-27 16:57:52.000000000 +0200 -@@ -1,6 +1,9 @@ - # Unix Makefile for launching Moscow ML - # Based on Caml Light (copyright 1993 INRIA) - -+TRUEBINDIR=/opt/local/bin -+TRUELIBDIR=/opt/local/lib/mosml -+ - include ../Makefile.inc - - all: mosml mosmlc mosmllex camlexec testprog -@@ -13,7 +16,7 @@ - cat testprog) > /tmp/testscr - chmod a+x /tmp/testscr - sh -c 'if sh -c /tmp/testscr 2>/dev/null; \ -- then echo "#!$(BINDIR)/camlrunm" > $(LIBDIR)/header; \ -+ then echo "#!$(TRUEBINDIR)/camlrunm" > $(LIBDIR)/header; \ - else ${INSTALL_PROGRAM} camlexec$(EXE) $(LIBDIR)/header; \ - fi' - rm -f /tmp/testscr -@@ -23,20 +26,20 @@ - done - - mosml: mosml.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosml.tpl > mosml -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosml.tpl > mosml - - mosmlc: mosmlc.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosmlc.tpl > mosmlc -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosmlc.tpl > mosmlc - - mosmllex: mosmllex.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosmllex.tpl > mosmllex -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosmllex.tpl > mosmllex - - testprog: testprog.sml - $(MOSMLC) testprog.sml - $(MOSMLL) -noheader -o testprog BasicIO.uo testprog.uo - - camlexec.c: camlexec.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" camlexec.tpl > camlexec.c -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" camlexec.tpl > camlexec.c - - camlexec: camlexec.c - $(CC) $(OPTS) -o camlexec$(EXE) camlexec.c diff --git a/lang/mosml/Portfile b/lang/mosml/Portfile index 7c61999137a5f..c23c2f7fcbeb4 100644 --- a/lang/mosml/Portfile +++ b/lang/mosml/Portfile @@ -1,51 +1,85 @@ # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 +PortGroup github 1.0 +PortGroup makefile 1.0 -name mosml -version 2.01 -revision 2 +github.setup kfl mosml 13c581aec46eea134e478f2e2b6456278e36ecce +version 2.10.1 +revision 0 categories lang devel ml -platforms darwin license GPL-2+ -maintainers nomaintainer +maintainers {@barracuda156 gmail.com:vital.had} openmaintainer description Moscow ML is an implementation of Standard ML (SML) long_description Moscow ML is a light-weight implementation of Standard ML \ (SML), a strict functional language widely used in teaching \ - and research. Version 2.01 implements the full SML language, \ - including SML Modules, and much of the SML Basis Library. + and research. Version 2.10.1 of Moscow ML implements \ + the full Standard ML language, as revised 1997, including Modules \ + and some extensions, yet is backwards compatible with versions \ + prior to 2.00, and implements large parts of the new SML Basis Library. -homepage http://www.itu.dk/people/sestoft/mosml.html -master_sites http://www.itu.dk/people/sestoft/mosml/ -distfiles mos201src.tar.gz +homepage https://mosml.org -checksums rmd160 b2a9582d8c0bfdad2b8a74740e54ab33d3856637 \ - sha256 9ec5695358a4aa4702d856c026f3cf0bce77275e8d1318fd90d455a44c46edff \ - size 2314392 +checksums rmd160 a684b544fdd204a7408930c7b77611fcbf28dc44 \ + sha256 9c18aaac26f6cf8b8394ea7ef3d2fc1e57de34715feea5860b4ea139757e4b95 \ + size 2577422 +github.tarball_from archive -patchfiles patch-src-Makefile.diff \ - patch-src-Makefile-inc.diff \ - patch-src-launch-Makefile.diff \ - patch-src-dynlibs.diff \ - patch-src-runtime-mosml.c.diff \ - patch-src-runtime-sys.c.diff +extract.rename yes -worksrcdir mosml +depends_lib-append port:gd2 \ + port:gdbm \ + port:gmp + +patchfiles 0001-mosml.patch post-patch { - reinplace "s|LD=gcc|LD=${configure.cc}|" ${worksrcpath}/src/Makefile.inc - reinplace "s|CC=gcc|CC=${configure.cc}|" ${worksrcpath}/src/Makefile.inc - reinplace "s|CCP=|CPP=${configure.cpp}|" ${worksrcpath}/src/Makefile.inc + reinplace "s|@PREFIX@|${prefix}|g" \ + ${worksrcpath}/src/Makefile.inc \ + ${worksrcpath}/src/launch/Makefile \ + src/dynlibs/intinf/Makefile + reinplace "s|@CC@|${configure.cc}|" \ + ${worksrcpath}/src/Makefile.inc } -configure.dir ${worksrcpath}/src/config -configure.cmd ./autoconf -configure.pre_args ${configure.cc} - +build.dir ${worksrcpath}/src build.target world -build.pre_args -Csrc DESTROOT=${prefix} ${build.target} -destroot.pre_args -Csrc DESTROOT=${destroot}${prefix} ${destroot.target} -post-destroot { - system "ln -sf ${prefix}/bin/camlrunm ${destroot}${prefix}/lib/mosml/camlrunm" +subport ${name}-dynlibs { + revision 0 + + PortGroup openssl 1.0 + + openssl.branch 1.1 + + set pgs_v 14 + set mys_v 57 + + depends_lib-append \ + port:mosml \ + port:mysql${mys_v} \ + port:postgresql${pgs_v} + + patchfiles-append \ + 0002-mosml-dynlibs.patch + + post-patch { + reinplace "s|@DESTDIR@|${destroot}|" ${worksrcpath}/src/Makefile.inc + foreach d {intinf mgd mgdbm mmysql mpq mregex msocket} { + reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/src/dynlibs/${d}/Makefile + } + reinplace "s|@PGSQL@|postgresql${pgs_v}|g" ${worksrcpath}/src/dynlibs/mpq/Makefile + reinplace "s|@MYSQL@|mysql${mys_v}|g" ${worksrcpath}/src/dynlibs/mmysql/Makefile + } + + build.dir ${worksrcpath}/src/dynlibs + + build.env-append \ + ROOTDIR="${prefix}/lib/mosml" \ + CAMLRT="${prefix}/lib/mosml" + + build.target all + pre-destroot { + xinstall -d ${destroot}${prefix}/lib/mosml + } } diff --git a/lang/mosml/files/0001-mosml.patch b/lang/mosml/files/0001-mosml.patch new file mode 100644 index 0000000000000..ceb8f18e859b9 --- /dev/null +++ b/lang/mosml/files/0001-mosml.patch @@ -0,0 +1,145 @@ +From 0fc5c76fd8e648c4da769c36dd0c86540c598b45 Mon Sep 17 00:00:00 2001 +From: barracuda156 +Date: Wed, 26 Jul 2023 05:25:18 +0800 +Subject: [PATCH 1/2] Fix Makefile.inc for Darwin + + +diff --git src/Makefile.inc src/Makefile.inc +index 6f8cf3e..8ddfd24 100644 +--- src/Makefile.inc ++++ src/Makefile.inc +@@ -1,7 +1,7 @@ + # Unix configuration Makefile for Moscow ML -*- mode: makefile -*- + + # Where to install stuff +-PREFIX=/usr/local ++PREFIX=@PREFIX@ + + # BINDIR contains true executable files, such as scripts + # LIBDIR contains bytecode files (such as mosmlcmp and library units), and .dll/.so for dynlibs. +@@ -13,13 +13,23 @@ BINDIR=${PREFIX}/bin + LIBDIR=${PREFIX}/lib/mosml + INCDIR=${PREFIX}/include/mosml + DOCDIR=${PREFIX}/share/doc/mosml +-TOOLDIR=${PREFIX}/share/mosml/tools ++TOOLDIR=${PREFIX}/bin + + ### Where to install the man pages + # Man pages for commands go in $(MANDIR)/man$(MANEXT) + MANDIR=${PREFIX}/man + MANEXT=1 + ++GMPDIR=@PREFIX@ ++GMPINCDIR=${GMPDIR}/include ++GMPLIBDIR=${GMPDIR}/lib ++ ++GDINCDIR=@PREFIX@/include ++GDLIBDIR=@PREFIX@/lib ++ ++GDBMINCDIR=@PREFIX@/include ++GDBMLIBDIR=@PREFIX@/lib ++ + + # The version + VERSION=2.10 +@@ -37,7 +47,7 @@ BASELIBS=-lm + + # This works with most systems, including MacOS X with XCode installed: + +-CC=gcc ++CC=@CC@ + # CC=gcc -mmacosx-version-min=10.7 # for building OS X package + # CC=/usr/sepp/bin/gcc # Solaris at KVL + +@@ -72,9 +82,9 @@ ifeq ($(UNAME_S),Linux) + DYNLD=gcc -shared + endif + ifeq ($(UNAME_S),Darwin) # For MacOS X, use the same as Linux except DYNDL +- CPP=cpp -P -traditional -Dunix -Umsdos -Wno-invalid-pp-token ++ CPP=cpp -P -traditional -Dunix -Umsdos + STRIP=strip -S +- LD=$(CC) -rdynamic -Wl,-rpath,$(LIBDIR) ++ LD=$(CC) -Wl,-rpath,$(LIBDIR) + DYNLD=$(LD) -bundle -undefined dynamic_lookup + endif + ifeq ($(UNAME_S),Cross_W32) +diff --git src/dynlibs/intinf/Makefile src/dynlibs/intinf/Makefile +index d8beaf0..425f09b 100644 +--- src/dynlibs/intinf/Makefile ++++ src/dynlibs/intinf/Makefile +@@ -5,10 +5,6 @@ + + # Where to find GMP header file and compiled library + +-#GMPDIR=${HOME}/c/gmp-2.0.2 +-GMPINCDIR=/usr/local/include +-GMPLIBDIR=/usr/local/lib +- + include ../../Makefile.inc + + #OPTS=-fno-defer-pop +@@ -18,9 +14,9 @@ CFLAGS=-Dunix -O3 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(CAMLRT) -I${GMPINCDIR} + + MOSMLTOOLS=camlrunm $(TOOLDIR) + +-all: libmgmp.so IntInf.uo ++all: libmgmp.so IntInf.uo IntInf.ui + +-install: ++install: all + $(INSTALL_DATA) libmgmp.so $(DESTDIR)$(LIBDIR) + $(INSTALL_DATA) IntInf.sig $(DESTDIR)$(LIBDIR) + $(INSTALL_DATA) IntInf.ui $(DESTDIR)$(LIBDIR) +diff --git src/launch/Makefile src/launch/Makefile +index 1b2f2aa..1f0bc13 100644 +--- src/launch/Makefile ++++ src/launch/Makefile +@@ -1,6 +1,9 @@ + # Unix Makefile for launching Moscow ML + # Based on Caml Light (copyright 1993 INRIA) + ++TRUEBINDIR=@PREFIX@/bin ++TRUELIBDIR=@PREFIX@/lib/mosml ++ + include ../Makefile.inc + + all: mosml mosmlc mosmllex camlexec testprog +@@ -20,7 +23,7 @@ old_install: + cat testprog) > /tmp/testscr + chmod a+x /tmp/testscr + sh -c 'if sh -c /tmp/testscr 2>/dev/null; \ +- then echo "#!$(BINDIR)/camlrunm" > $(LIBDIR)/header; \ ++ then echo "#!$(TRUEBINDIR)/camlrunm" > $(LIBDIR)/header; \ + else ${INSTALL_PROGRAM} camlexec$(EXE) $(LIBDIR)/header; \ + fi' + rm -f /tmp/testscr +@@ -35,20 +38,20 @@ uninstall: + cd $(DESTDIR)$(BINDIR) && ${UNINSTALL_SCRIPT} mosml mosmlc mosmllex + + mosml: mosml.tpl +- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosml.tpl > mosml ++ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosml.tpl > mosml + + mosmlc: mosmlc.tpl +- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" -e "s|VERSION|$(VERSION)|" mosmlc.tpl > mosmlc ++ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosmlc.tpl > mosmlc + + mosmllex: mosmllex.tpl +- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosmllex.tpl > mosmllex ++ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosmllex.tpl > mosmllex + + testprog: testprog.sml + $(MOSMLC) testprog.sml + $(MOSMLL) -noheader -o testprog BasicIO.uo testprog.uo + + camlexec.c: camlexec.tpl +- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" camlexec.tpl > camlexec.c ++ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" camlexec.tpl > camlexec.c + + camlexec: camlexec.c + $(CC) $(OPTS) -o camlexec$(EXE) camlexec.c +@@ -58,4 +61,3 @@ clean: + rm -f camlexec.c camlexec$(EXE) mosmlc mosml mosmllex testprog testprog.u[io] + + depend: +- diff --git a/lang/mosml/files/0002-mosml-dynlibs.patch b/lang/mosml/files/0002-mosml-dynlibs.patch new file mode 100644 index 0000000000000..c1edc1c82504a --- /dev/null +++ b/lang/mosml/files/0002-mosml-dynlibs.patch @@ -0,0 +1,275 @@ +From 3129d7168c1e91511f8f9505709f5f2defca9a5b Mon Sep 17 00:00:00 2001 +From: barracuda156 +Date: Wed, 26 Jul 2023 08:41:30 +0800 +Subject: [PATCH 2/2] Fix dynlibs build + + +diff --git src/Makefile.inc src/Makefile.inc +index 8ddfd24..683a150 100644 +--- src/Makefile.inc ++++ src/Makefile.inc +@@ -15,6 +15,9 @@ INCDIR=${PREFIX}/include/mosml + DOCDIR=${PREFIX}/share/doc/mosml + TOOLDIR=${PREFIX}/bin + ++# This is not needed for the main port, only for dynlibs: ++DESTDIR=@DESTDIR@ ++ + ### Where to install the man pages + # Man pages for commands go in $(MANDIR)/man$(MANEXT) + MANDIR=${PREFIX}/man +diff --git src/dynlibs/Makefile src/dynlibs/Makefile +index 603d412..0f714d6 100644 +--- src/dynlibs/Makefile ++++ src/dynlibs/Makefile +@@ -1,53 +1,41 @@ + + all: ++ cd crypt; make + cd interface; make +- cd intinf; make + cd mgd; make + cd mgdbm; make + cd mmysql; make + cd mpq; make + cd mregex; make +- cd msocket; make +- cd munix; make + + install: +- cd intinf; make install ++ cd crypt; make install + cd mgd; make install + cd mgdbm; make install + cd mmysql; make install + cd mpq; make install + cd mregex; make install +- cd msocket; make install +- cd munix; make install + + uninstall: +- cd intinf; make uninstall + cd mgd; make uninstall + cd mgdbm; make uninstall + cd mmysql; make uninstall + cd mpq; make uninstall + cd mregex; make uninstall +- cd msocket; make uninstall +- cd munix; make uninstall + + test: + cd interface; make test +- cd intinf; make test + cd mgd; make test + cd mgdbm; make test + cd mmysql; make test + cd mpq; make test + cd mregex; make test +- cd munix; make test + + clean: + cd crypt; make clean + cd interface; make clean +- cd intinf; make clean + cd mgd; make clean + cd mgdbm; make clean + cd mmysql; make clean + cd mpq; make clean + cd mregex; make clean +- cd msocket; make clean +- cd munix; make clean +diff --git src/dynlibs/crypt/Makefile src/dynlibs/crypt/Makefile +index 1fe1b52..5f2791b 100644 +--- src/dynlibs/crypt/Makefile ++++ src/dynlibs/crypt/Makefile +@@ -6,15 +6,17 @@ OPTS=-fno-defer-pop + CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) + BASELIBS=-lm -ldl + +-all: libcrypt.so ++all: libcrypt.so + @echo "Now execute 'mosml crypt.sml' to test the C function" + + crypt.o: crypt.c + $(CC) $(CFLAGS) -c -o crypt.o crypt.c + + libcrypt.so: crypt.o +- $(DYNLD) -lcrypt -o libcrypt.so crypt.o +-# $(DYNLD) -o libcrypt.so crypt.o ++ $(DYNLD) -lcrypto -o libcrypt.so crypt.o ++ ++install: ++ ${INSTALL_DATA} libcrypt.so $(DESTDIR)$(LIBDIR) + + clean: + rm -f *.o +diff --git src/dynlibs/mgd/Makefile src/dynlibs/mgd/Makefile +index 550326d..d265c36 100644 +--- src/dynlibs/mgd/Makefile ++++ src/dynlibs/mgd/Makefile +@@ -5,14 +5,12 @@ + + # Where to find gd header file and compiled library + +-GDDIR=${HOME}/c/gd-1.7.3 +- + include ../../Makefile.inc + + OPTS=-fno-defer-pop +-CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDDIR} ++CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I${GDINCDIR} + +-MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools ++MOSMLTOOLS=@PREFIX@/bin/camlrunm $(TOOLDIR) + MOSMLC=mosmlc -c + MOSMLL=mosmlc + MOSMLLEX=mosmllex +@@ -24,15 +22,13 @@ mgd.o: mgd.c + $(CC) $(CFLAGS) -c -o mgd.o mgd.c + + libmgd.so: mgd.o +- $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -L/usr/lib -lpng -lz +-# $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -L/usr/X11R6/lib -lpng -lz +-# $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -R/pack/libs/lib -L/pack/libs/lib -lpng -lz ++ $(DYNLD) -o libmgd.so mgd.o ${GDLIBDIR}/libgd.a -L/usr/X11R6/lib -lpng -lz + + test: Graphs.uo + mosml testgdimage.sml + + install: +- ${INSTALL_DATA} libmgd.so $(LIBDIR) ++ ${INSTALL_DATA} libmgd.so $(DESTDIR)$(LIBDIR) + + uninstall: + ${UNINSTALL_DATA} $(LIBDIR)/libmgd.so +diff --git src/dynlibs/mgdbm/Makefile src/dynlibs/mgdbm/Makefile +index 7218150..ff6627a 100644 +--- src/dynlibs/mgdbm/Makefile ++++ src/dynlibs/mgdbm/Makefile +@@ -5,11 +5,6 @@ + + # Where to find GDBM header file and compiled library + +-GDBMLIBDIR=${HOME}/c/gdbm-1.7.3 +-GDBMINCDIR=${HOME}/c/gdbm-1.7.3 +-#GDBMLIBDIR=/usr/lib +-#GDBMINCDIR=/usr/include +- + include ../../Makefile.inc + + OPTS=-fno-defer-pop +@@ -19,7 +14,7 @@ BASELIBS=-lm -ldl + all: libmgdbm.so + + install: +- ${INSTALL_DATA} libmgdbm.so $(LIBDIR) ++ ${INSTALL_DATA} libmgdbm.so $(DESTDIR)$(LIBDIR) + + uninstall: + ${UNINSTALL_DATA} $(LIBDIR)/libmgdbm.so +diff --git src/dynlibs/mmysql/Makefile src/dynlibs/mmysql/Makefile +index 0853210..16202e5 100644 +--- src/dynlibs/mmysql/Makefile ++++ src/dynlibs/mmysql/Makefile +@@ -5,17 +5,15 @@ + + # Where to find the Mysql header file and compiled library + +-MYSQLLIBDIR=/usr/lib/mysql +-MYSQLINCDIR=/usr/include/mysql +-#MYSQLLIBDIR=/usr/local/lib/mysql +-#MYSQLINCDIR=/usr/local/include/mysql ++MYSQLLIBDIR=@PREFIX@/lib/@MYSQL@/mysql ++MYSQLINCDIR=@PREFIX@/include/@MYSQL@/mysql + + include ../../Makefile.inc + + OPTS=-fno-defer-pop + CFLAGS= -Dunix -O2 $(OPTS) -I$(INCDIR) -I ${MYSQLINCDIR} + +-MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools ++MOSMLTOOLS=@PREFIX@/bin/camlrunm $(TOOLDIR) + MOSMLC=mosmlc -c + MOSMLL=mosmlc + MOSMLLEX=mosmllex +@@ -27,11 +25,10 @@ mmysql.o: mmysql.c + $(CC) $(CFLAGS) -c -o mmysql.o mmysql.c + + libmmysql.so: mmysql.o +- $(DYNLD) -o libmmysql.so mmysql.o -L${MYSQLLIBDIR} -lmysqlclient -lnsl +-# $(DYNLD) -o libmmysql.so mmysql.o -L${MYSQLLIBDIR} -lmysqlclient ++ $(DYNLD) -o libmmysql.so mmysql.o -L${MYSQLLIBDIR} -lmysqlclient + + install: +- ${INSTALL_DATA} libmmysql.so $(LIBDIR) ++ ${INSTALL_DATA} libmmysql.so $(DESTDIR)$(LIBDIR) + + uninstall: + ${UNINSTALL_DATA} $(LIBDIR)/libmmysql.so +diff --git src/dynlibs/mpq/Makefile src/dynlibs/mpq/Makefile +index 8d8cec4..5cc0044 100644 +--- src/dynlibs/mpq/Makefile ++++ src/dynlibs/mpq/Makefile +@@ -7,23 +7,15 @@ + # Note: Unix distributions vary widely in the PGSQLLIBDIR + # and PGSQLINCDIR locations + +-PGSQLLIBDIR=/usr/lib +-PGSQLINCDIR=/usr/include/postgresql +-#PGSQLLIBDIR=/usr/lib +-#PGSQLINCDIR=/usr/include/pgsql +-#PGSQLLIBDIR=/usr/local/pgsql/lib +-#PGSQLINCDIR=/usr/local/pgsql/include +-#PGSQLLIBDIR=/usr/lib/pgsql/lib +-#PGSQLINCDIR=/usr/lib/pgsql/include +-#PGSQLLIBDIR=/pack/postgresql/lib +-#PGSQLINCDIR=/pack/postgresql/include ++PGSQLLIBDIR=@PREFIX@/lib/@PGSQL@ ++PGSQLINCDIR=@PREFIX@/include/@PGSQL@ + + include ../../Makefile.inc + + OPTS=-fno-defer-pop + CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${PGSQLINCDIR} + +-MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools ++MOSMLTOOLS=@PREFIX@/bin/camlrunm $(TOOLDIR) + MOSMLC=mosmlc -c + MOSMLL=mosmlc + MOSMLLEX=mosmllex +@@ -36,11 +28,11 @@ mpq.o: mpq.c + + libmpq.so: mpq.o + # Some recent Linux distributions need this: +- $(DYNLD) -lcrypt -o libmpq.so mpq.o ${PGSQLLIBDIR}/libpq.a ++ $(DYNLD) -lcrypto -o libmpq.so mpq.o ${PGSQLLIBDIR}/libpq.a + # $(DYNLD) -o libmpq.so mpq.o ${PGSQLLIBDIR}/libpq.a + + install: +- ${INSTALL_DATA} libmpq.so $(LIBDIR) ++ ${INSTALL_DATA} libmpq.so $(DESTDIR)$(LIBDIR) + + uninstall: + ${UNINSTALL_DATA} $(LIBDIR)/libmpq.so +diff --git src/dynlibs/mregex/Makefile src/dynlibs/mregex/Makefile +index 2fd659b..04660c1 100644 +--- src/dynlibs/mregex/Makefile ++++ src/dynlibs/mregex/Makefile +@@ -8,7 +8,7 @@ include ../../Makefile.inc + OPTS=-fno-defer-pop + CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) + +-MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools ++MOSMLTOOLS=@PREFIX@/bin/camlrunm $(TOOLDIR) + MOSMLC=mosmlc -c + MOSMLL=mosmlc + MOSMLLEX=mosmllex +@@ -24,7 +24,7 @@ libmregex.so: mregex.o + $(DYNLD) -o libmregex.so regex-0.12/regex.o mregex.o + + install: +- ${INSTALL_DATA} libmregex.so $(LIBDIR) ++ ${INSTALL_DATA} libmregex.so $(DESTDIR)$(LIBDIR) + + uninstall: + ${UNINSTALL_DATA} $(LIBDIR)/libmregex.so diff --git a/lang/mosml/files/patch-src-Makefile-inc.diff b/lang/mosml/files/patch-src-Makefile-inc.diff deleted file mode 100644 index 6d92356180872..0000000000000 --- a/lang/mosml/files/patch-src-Makefile-inc.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- src/Makefile.inc 2006-08-27 16:20:05.000000000 +0200 -+++ src/Makefile.inc 2006-08-27 16:30:56.000000000 +0200 -@@ -2,7 +2,7 @@ - - # Where to install stuff - --MOSMLHOME=${HOME}/mosml -+MOSMLHOME=${DESTROOT} - - # Various utility programs - INSTALL_PROGRAM=cp -@@ -22,14 +22,14 @@ - # To compile the runtime system camlrunm under Cygwin with support for - # dynamically loadable libraries (DDLs), uncomment these: - --ADDPRIMS=dynlib.c --ADDOBJS=dynlib.o --ADDRUNCFLAGS= --ADDDYNLIBCFLAGS= -+#ADDPRIMS=dynlib.c -+#ADDOBJS=dynlib.o -+#ADDRUNCFLAGS= -+#ADDDYNLIBCFLAGS= - - # For Linux (x86 or Alpha), use: - # ------------------------------ --CPP=/lib/cpp -P -traditional -Dunix -Umsdos -+CPP=/usr/bin/cpp -P -traditional -Dunix -Umsdos - STRIP=strip - LD=gcc -rdynamic - DYNLD=ld -shared -@@ -114,10 +114,10 @@ - # DOCDIR contains documentation - - BINDIR=${MOSMLHOME}/bin --LIBDIR=${MOSMLHOME}/lib --INCDIR=${MOSMLHOME}/include --DOCDIR=${MOSMLHOME}/doc --TOOLDIR=${MOSMLHOME}/tools -+LIBDIR=${MOSMLHOME}/lib/mosml -+INCDIR=${MOSMLHOME}/include/mosml -+DOCDIR=${MOSMLHOME}/share/doc/mosml -+TOOLDIR=${MOSMLHOME}/bin - # LIBDIR=${MOSMLHOME}/lib/moscow_ml - # TOOLDIR=${MOSMLHOME}/libexec/moscow_ml - diff --git a/lang/mosml/files/patch-src-Makefile.diff b/lang/mosml/files/patch-src-Makefile.diff deleted file mode 100644 index 4875d21a62436..0000000000000 --- a/lang/mosml/files/patch-src-Makefile.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- src/Makefile 2006-08-27 16:20:05.000000000 +0200 -+++ src/Makefile 2006-08-27 16:44:37.000000000 +0200 -@@ -16,7 +16,6 @@ - # Build the entire system for the first time - - world: -- cd config; sh autoconf $(CC) - cd runtime; make all - cp runtime/camlrunm$(EXE) . - cd mosmlyac; make all -@@ -58,7 +57,6 @@ - cd compiler; make install - cd toolssrc; make install - cd lex; make install -- (cd $(INCDIR)/..; rm -f config; ln -s include config) - cd doc; make install - - # Remove all generated files diff --git a/lang/mosml/files/patch-src-dynlibs.diff b/lang/mosml/files/patch-src-dynlibs.diff deleted file mode 100644 index e1dde640a7d28..0000000000000 --- a/lang/mosml/files/patch-src-dynlibs.diff +++ /dev/null @@ -1,206 +0,0 @@ -diff -urN ../mosml.orig/include/config.h ./include/config.h ---- ../mosml.orig/include/config.h 2004-01-19 15:02:21.000000000 +0000 -+++ ./include/config.h 2008-12-03 11:39:56.000000000 +0000 -@@ -2,7 +2,7 @@ - #define _config_ - - --#if defined(__MWERKS__) || defined(THINK_C) -+#if defined(__MWERKS__) || defined(THINK_C) || defined(LSB) - #include "m.h" - #include "s.h" - #else -diff -urN ../mosml.orig/src/Makefile ./src/Makefile ---- ../mosml.orig/src/Makefile 2008-11-28 14:42:49.000000000 +0000 -+++ ./src/Makefile 2008-12-09 17:09:12.000000000 +0000 -@@ -25,6 +25,24 @@ - cd lex; make all - cd launch; make all - -+world-dyn: -+ cd dynlibs/msocket; make -+ cd dynlibs/crypt; make -+ cd dynlibs/munix; make -+ cd dynlibs/mregex; make -+ cd dynlibs/mgdbm; make -+ cd dynlibs/mgd; make -+ cd dynlibs/intinf; make -+ -+install-world-dyn: dirs -+ cd dynlibs/msocket; make install -+ cd dynlibs/crypt; make install -+ cd dynlibs/munix; make install -+ cd dynlibs/mregex; make install -+ cd dynlibs/mgdbm; make install -+ cd dynlibs/mgd; make install -+ cd dynlibs/intinf; make install -+ - uptodate: - cd runtime; make all - cp runtime/camlrunm$(EXE) . -@@ -42,13 +60,15 @@ - cd toolssrc; make clean all - cd lex; make clean all - --# Install the Mosml system --install: -+dirs: - test -d $(BINDIR) || mkdir -p $(BINDIR) - test -d $(LIBDIR) || mkdir -p $(LIBDIR) - test -d $(INCDIR) || mkdir -p $(INCDIR) - test -d $(DOCDIR) || mkdir -p $(DOCDIR) - test -d $(TOOLDIR) || mkdir -p $(TOOLDIR) -+ -+# Install the Mosml system -+install: dirs - cd runtime; make install - cd config; make install - cd launch; make all install -diff -urN ../mosml.orig/src/Makefile.inc ./src/Makefile.inc ---- ../mosml.orig/src/Makefile.inc 2008-11-28 14:42:49.000000000 +0000 -+++ ./src/Makefile.inc 2008-12-09 17:24:00.000000000 +0000 -@@ -30,9 +30,12 @@ - # For Linux (x86 or Alpha), use: - # ------------------------------ - CPP=/usr/bin/cpp -P -traditional -Dunix -Umsdos --STRIP=strip --LD=gcc -rdynamic --DYNLD=ld -shared -+STRIP=echo -+LD=gcc -Wl,-rpath -Wl,${DESTROOT}/lib/mosml -+DYNLD=gcc -bundle -bundle_loader ${DESTROOT}/bin/camlrunm -+ADDRUNLIBS= -+ADDRUNCFLAGS= -+ADDDYNLIBCFLAGS=-DLSB - - # For Cygwin 20.1, use: - # --------------------- -diff -urN ../mosml.orig/src/dynlibs/crypt/Makefile ./src/dynlibs/crypt/Makefile ---- ../mosml.orig/src/dynlibs/crypt/Makefile 2000-02-16 15:36:57.000000000 +0000 -+++ ./src/dynlibs/crypt/Makefile 2008-11-28 15:22:08.000000000 +0000 -@@ -13,8 +13,10 @@ - $(CC) $(CFLAGS) -c -o crypt.o crypt.c - - libcrypt.so: crypt.o -- $(DYNLD) -lcrypt -o libcrypt.so crypt.o --# $(DYNLD) -o libcrypt.so crypt.o -+ $(DYNLD) -o libcrypt.so crypt.o -+ -+install: -+ cp libcrypt.so $(LIBDIR) - - clean: - rm -f *.o -diff -urN ../mosml.orig/src/dynlibs/intinf/Makefile ./src/dynlibs/intinf/Makefile ---- ../mosml.orig/src/dynlibs/intinf/Makefile 2000-02-16 15:36:57.000000000 +0000 -+++ ./src/dynlibs/intinf/Makefile 2008-12-09 17:58:03.000000000 +0000 -@@ -5,12 +5,14 @@ - - # Where to find GMP header file and compiled library - --GMPDIR=${HOME}/c/gmp-2.0.2 -+GMPDIR=/opt/local -+GMPINCDIR=${GMPDIR}/include -+GMPLIBDIR=${GMPDIR}/lib - - include ../../Makefile.inc - - OPTS=-fno-defer-pop --CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GMPDIR} -+CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GMPINCDIR} - - MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools - MOSMLC=mosmlc -c -@@ -18,16 +20,19 @@ - MOSMLLEX=mosmllex - MOSMLYACC=mosmlyac - --all: libmgmp.so IntInf.uo -+all: libmgmp.so IntInf.uo IntInf.ui - --install: -+install: all - cp libmgmp.so $(LIBDIR) -+ cp IntInf.uo $(LIBDIR) -+ cp IntInf.ui $(LIBDIR) -+ cp IntInf.sig $(LIBDIR) - - intinf.o: intinf.c - $(CC) $(CFLAGS) -c -o intinf.o intinf.c - - libmgmp.so: intinf.o -- $(DYNLD) -o libmgmp.so intinf.o ${GMPDIR}/libgmp.a -+ $(DYNLD) -o libmgmp.so intinf.o ${GMPLIBDIR}/libgmp.a - - test: - mosml testintinf.sml -diff -urN ../mosml.orig/src/dynlibs/mgd/Makefile ./src/dynlibs/mgd/Makefile ---- ../mosml.orig/src/dynlibs/mgd/Makefile 2000-02-23 17:11:42.000000000 +0000 -+++ ./src/dynlibs/mgd/Makefile 2008-11-28 15:44:28.000000000 +0000 -@@ -5,12 +5,13 @@ - - # Where to find gd header file and compiled library - --GDDIR=${HOME}/c/gd-1.7.3 -+GDINCDIR=/opt/local/include -+GDLIBDIR=/opt/local/lib - - include ../../Makefile.inc - - OPTS=-fno-defer-pop --CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDDIR} -+CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDINCDIR} - - MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools - MOSMLC=mosmlc -c -@@ -24,7 +25,7 @@ - $(CC) $(CFLAGS) -c -o mgd.o mgd.c - - libmgd.so: mgd.o -- $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -L/usr/X11R6/lib -lpng -lz -+ $(DYNLD) -o libmgd.so mgd.o ${GDLIBDIR}/libgd.a -L/usr/X11R6/lib -lpng -lz - # $(DYNLD) -o libmgd.so mgd.o ${GDDIR}/libgd.a -R/pack/libs/lib -L/pack/libs/lib -lpng -lz - - test: Graphs.uo -diff -urN ../mosml.orig/src/dynlibs/mgdbm/Makefile ./src/dynlibs/mgdbm/Makefile ---- ../mosml.orig/src/dynlibs/mgdbm/Makefile 2000-02-16 15:36:57.000000000 +0000 -+++ ./src/dynlibs/mgdbm/Makefile 2008-11-28 15:42:39.000000000 +0000 -@@ -5,10 +5,8 @@ - - # Where to find GDBM header file and compiled library - --GDBMLIBDIR=${HOME}/c/gdbm-1.7.3 --GDBMINCDIR=${HOME}/c/gdbm-1.7.3 --#GDBMLIBDIR=/usr/lib --#GDBMINCDIR=/usr/include -+GDBMLIBDIR=/opt/local/lib -+GDBMINCDIR=/opt/local/include - - include ../../Makefile.inc - -diff -urN ../mosml.orig/src/dynlibs/munix/munix.c ./src/dynlibs/munix/munix.c ---- ../mosml.orig/src/dynlibs/munix/munix.c 2000-01-21 10:07:13.000000000 +0000 -+++ ./src/dynlibs/munix/munix.c 2008-11-28 15:20:53.000000000 +0000 -@@ -59,8 +59,8 @@ - failwith("EINVAL"); break; - case EISDIR: - failwith("EISDIR"); break; -- case ELIBBAD: -- failwith("ELIBBAD"); break; -+/* case ELIBBAD: -+ failwith("ELIBBAD"); break; */ - case ECHILD: - failwith("ECHILD"); break; - case EINTR: -diff -urN ../mosml.orig/src/runtime/config.h ./src/runtime/config.h ---- ../mosml.orig/src/runtime/config.h 2000-01-21 10:07:13.000000000 +0000 -+++ ./src/runtime/config.h 2008-12-08 14:59:31.000000000 +0000 -@@ -2,7 +2,7 @@ - #define _config_ - - --#if defined(__MWERKS__) || defined(THINK_C) -+#if defined(__MWERKS__) || defined(THINK_C) || defined(LSB) - #include "m.h" - #include "s.h" - #else diff --git a/lang/mosml/files/patch-src-launch-Makefile.diff b/lang/mosml/files/patch-src-launch-Makefile.diff deleted file mode 100644 index c8b749c35b8b5..0000000000000 --- a/lang/mosml/files/patch-src-launch-Makefile.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- src/launch/Makefile 2006-08-27 16:20:03.000000000 +0200 -+++ src/launch/Makefile 2006-08-27 16:57:52.000000000 +0200 -@@ -1,6 +1,9 @@ - # Unix Makefile for launching Moscow ML - # Based on Caml Light (copyright 1993 INRIA) - -+TRUEBINDIR=/opt/local/bin -+TRUELIBDIR=/opt/local/lib/mosml -+ - include ../Makefile.inc - - all: mosml mosmlc mosmllex camlexec testprog -@@ -13,7 +16,7 @@ - cat testprog) > /tmp/testscr - chmod a+x /tmp/testscr - sh -c 'if sh -c /tmp/testscr 2>/dev/null; \ -- then echo "#!$(BINDIR)/camlrunm" > $(LIBDIR)/header; \ -+ then echo "#!$(TRUEBINDIR)/camlrunm" > $(LIBDIR)/header; \ - else ${INSTALL_PROGRAM} camlexec$(EXE) $(LIBDIR)/header; \ - fi' - rm -f /tmp/testscr -@@ -23,20 +26,20 @@ - done - - mosml: mosml.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosml.tpl > mosml -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosml.tpl > mosml - - mosmlc: mosmlc.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosmlc.tpl > mosmlc -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosmlc.tpl > mosmlc - - mosmllex: mosmllex.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" mosmllex.tpl > mosmllex -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" mosmllex.tpl > mosmllex - - testprog: testprog.sml - $(MOSMLC) testprog.sml - $(MOSMLL) -noheader -o testprog BasicIO.uo testprog.uo - - camlexec.c: camlexec.tpl -- sed -e "s|LIBDIR|$(LIBDIR)|" -e "s|BINDIR|$(BINDIR)|" camlexec.tpl > camlexec.c -+ sed -e "s|LIBDIR|$(TRUELIBDIR)|" -e "s|BINDIR|$(TRUEBINDIR)|" camlexec.tpl > camlexec.c - - camlexec: camlexec.c - $(CC) $(OPTS) -o camlexec$(EXE) camlexec.c diff --git a/lang/mosml/files/patch-src-runtime-mosml.c.diff b/lang/mosml/files/patch-src-runtime-mosml.c.diff deleted file mode 100644 index 93f2cfa82987f..0000000000000 --- a/lang/mosml/files/patch-src-runtime-mosml.c.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- src/runtime/mosml.c 2004-01-15 12:02:51.000000000 +0100 -+++ src/runtime/mosml.c 2011-12-05 15:05:54.000000000 +0100 -@@ -965,8 +965,8 @@ - - #ifndef HAS_STRERROR - #if (!defined(__FreeBSD__) && !defined(linux)) -- extern int sys_nerr; -- extern char * sys_errlist []; -+// extern int sys_nerr; -+// extern char * sys_errlist []; - #endif - extern char *realpath(); - #endif diff --git a/lang/mosml/files/patch-src-runtime-sys.c.diff b/lang/mosml/files/patch-src-runtime-sys.c.diff deleted file mode 100644 index aeddebeab1094..0000000000000 --- a/lang/mosml/files/patch-src-runtime-sys.c.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- src/runtime/sys.c 2000-07-19 23:13:44.000000000 +0200 -+++ src/runtime/sys.c 2011-12-05 15:01:00.000000000 +0100 -@@ -33,8 +33,8 @@ - - #else - --extern int sys_nerr; --extern char * sys_errlist []; -+// extern int sys_nerr; -+// extern char * sys_errlist []; - - char * error_message(void) - { From d83cbff9d86fe00186fb42ef0f26fac939f90681 Mon Sep 17 00:00:00 2001 From: barracuda156 Date: Wed, 26 Jul 2023 16:27:33 +0800 Subject: [PATCH 2/4] Fix -dynlibs subport for new compilers --- lang/mosml/Portfile | 22 ++++++- lang/mosml/files/0001-mosml.patch | 2 +- lang/mosml/files/0002-mosml-dynlibs.patch | 2 +- .../files/0003-Add-some-missing-headers.patch | 38 ++++++++++++ .../files/0004-Address-lvalue-error.patch | 22 +++++++ .../files/0005-Fix-for-undeclared-flush.patch | 19 ++++++ ...6-Placeholders-for-disabling-werrors.patch | 58 +++++++++++++++++++ 7 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 lang/mosml/files/0003-Add-some-missing-headers.patch create mode 100644 lang/mosml/files/0004-Address-lvalue-error.patch create mode 100644 lang/mosml/files/0005-Fix-for-undeclared-flush.patch create mode 100644 lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch diff --git a/lang/mosml/Portfile b/lang/mosml/Portfile index c23c2f7fcbeb4..d3e4a7349ffc4 100644 --- a/lang/mosml/Portfile +++ b/lang/mosml/Portfile @@ -60,16 +60,33 @@ subport ${name}-dynlibs { port:mysql${mys_v} \ port:postgresql${pgs_v} + # https://github.com/kfl/mosml/issues/71 patchfiles-append \ - 0002-mosml-dynlibs.patch + 0002-mosml-dynlibs.patch \ + 0003-Add-some-missing-headers.patch \ + 0004-Address-lvalue-error.patch \ + 0005-Fix-for-undeclared-flush.patch \ + 0006-Placeholders-for-disabling-werrors.patch post-patch { reinplace "s|@DESTDIR@|${destroot}|" ${worksrcpath}/src/Makefile.inc - foreach d {intinf mgd mgdbm mmysql mpq mregex msocket} { + foreach d {mgd mmysql mpq mregex} { reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/src/dynlibs/${d}/Makefile } reinplace "s|@PGSQL@|postgresql${pgs_v}|g" ${worksrcpath}/src/dynlibs/mpq/Makefile reinplace "s|@MYSQL@|mysql${mys_v}|g" ${worksrcpath}/src/dynlibs/mmysql/Makefile + + if {[string match *clang* ${configure.compiler}]} { + reinplace "s|@WERROR@|-Wno-error=incompatible-pointer-types|" ${worksrcpath}/src/dynlibs/mgdbm/Makefile + reinplace "s|@WERROR@|-Wno-error=discarded-qualifiers|" ${worksrcpath}/src/dynlibs/mmysql/Makefile + reinplace "s|@WERROR@|-Wno-error=implicit-function-declaration|" ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile + } elseif {[string match macports-gcc* ${configure.compiler}]} { + reinplace "s|@WERROR@|-Wno-incompatible-pointer-types|" ${worksrcpath}/src/dynlibs/mgdbm/Makefile + reinplace "s|@WERROR@|-Wno-discarded-qualifiers|" ${worksrcpath}/src/dynlibs/mmysql/Makefile + reinplace "s|@WERROR@|-Wno-implicit-function-declaration|" ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile + } else { + reinplace "s|@WERROR@||" ${worksrcpath}/src/dynlibs/mgdbm/Makefile ${worksrcpath}/src/dynlibs/mmysql/Makefile ${worksrcpath}/src/dynlibs/mpq/Makefile + } } build.dir ${worksrcpath}/src/dynlibs @@ -79,6 +96,7 @@ subport ${name}-dynlibs { CAMLRT="${prefix}/lib/mosml" build.target all + pre-destroot { xinstall -d ${destroot}${prefix}/lib/mosml } diff --git a/lang/mosml/files/0001-mosml.patch b/lang/mosml/files/0001-mosml.patch index ceb8f18e859b9..3fe01d1c65c0a 100644 --- a/lang/mosml/files/0001-mosml.patch +++ b/lang/mosml/files/0001-mosml.patch @@ -1,7 +1,7 @@ From 0fc5c76fd8e648c4da769c36dd0c86540c598b45 Mon Sep 17 00:00:00 2001 From: barracuda156 Date: Wed, 26 Jul 2023 05:25:18 +0800 -Subject: [PATCH 1/2] Fix Makefile.inc for Darwin +Subject: [PATCH] Fix Makefile.inc for Darwin diff --git src/Makefile.inc src/Makefile.inc diff --git a/lang/mosml/files/0002-mosml-dynlibs.patch b/lang/mosml/files/0002-mosml-dynlibs.patch index c1edc1c82504a..08b6874e9f5da 100644 --- a/lang/mosml/files/0002-mosml-dynlibs.patch +++ b/lang/mosml/files/0002-mosml-dynlibs.patch @@ -1,7 +1,7 @@ From 3129d7168c1e91511f8f9505709f5f2defca9a5b Mon Sep 17 00:00:00 2001 From: barracuda156 Date: Wed, 26 Jul 2023 08:41:30 +0800 -Subject: [PATCH 2/2] Fix dynlibs build +Subject: [PATCH] Fix dynlibs build diff --git src/Makefile.inc src/Makefile.inc diff --git a/lang/mosml/files/0003-Add-some-missing-headers.patch b/lang/mosml/files/0003-Add-some-missing-headers.patch new file mode 100644 index 0000000000000..b6efa2b742f2c --- /dev/null +++ b/lang/mosml/files/0003-Add-some-missing-headers.patch @@ -0,0 +1,38 @@ +From c3c3018155f35af5585f79c8c178f4d88165a22d Mon Sep 17 00:00:00 2001 +From: barracuda156 +Date: Wed, 26 Jul 2023 14:05:08 +0800 +Subject: [PATCH] Add some missing headers + + +diff --git src/dynlibs/mgd/mgd.c src/dynlibs/mgd/mgd.c +index 859bf3d..0e9f4a8 100644 +--- src/dynlibs/mgd/mgd.c ++++ src/dynlibs/mgd/mgd.c +@@ -22,7 +22,9 @@ + /* Moscow ML specific includes: */ + + #include /* For alloc_tuple, ... */ +-#include /* For Val_unit, Long_val, String_val, ... */ ++#include /* For Val_unit, Long_val, String_val, ... */ ++#include /* for failwith */ ++#include /* for modify */ + + /* Representation of images. + +diff --git src/dynlibs/mmysql/mmysql.c src/dynlibs/mmysql/mmysql.c +index e8c079a..083771c 100644 +--- src/dynlibs/mmysql/mmysql.c ++++ src/dynlibs/mmysql/mmysql.c +@@ -3,11 +3,11 @@ + sestoft@dina.kvl.dk 1999-08-07, 2000-05-30, 2002-07-25 */ + + #include ++#include ++#include + + #ifdef WIN32 + #include +-#include +-#include + #endif + diff --git a/lang/mosml/files/0004-Address-lvalue-error.patch b/lang/mosml/files/0004-Address-lvalue-error.patch new file mode 100644 index 0000000000000..bc6df63da6d73 --- /dev/null +++ b/lang/mosml/files/0004-Address-lvalue-error.patch @@ -0,0 +1,22 @@ +From 6a910c2115c9a9722a64baee9f2f427d804685c9 Mon Sep 17 00:00:00 2001 +From: barracuda156 +Date: Wed, 26 Jul 2023 14:39:16 +0800 +Subject: [PATCH] Address lvalue error + + +diff --git src/dynlibs/mmysql/mmysql.c src/dynlibs/mmysql/mmysql.c +index 083771c..621c6ab 100644 +--- src/dynlibs/mmysql/mmysql.c ++++ src/dynlibs/mmysql/mmysql.c +@@ -76,9 +76,9 @@ void dbresult_finalize(value dbresval) + MYSQL_ROW_OFFSET* index = DBresultindex_val(dbresval); + if (dbres != NULL) { + mysql_free_result(dbres); +- DBresult_val(dbresval) = NULL; ++ DBresult_val(dbresval) == NULL; + stat_free((char*)index); +- DBresultindex_val(dbresval) = NULL; ++ DBresultindex_val(dbresval) == NULL; + } + } + diff --git a/lang/mosml/files/0005-Fix-for-undeclared-flush.patch b/lang/mosml/files/0005-Fix-for-undeclared-flush.patch new file mode 100644 index 0000000000000..45441cb2dbacc --- /dev/null +++ b/lang/mosml/files/0005-Fix-for-undeclared-flush.patch @@ -0,0 +1,19 @@ +From d4a227203487a2097339cf31e8be11f5f2718e4c Mon Sep 17 00:00:00 2001 +From: barracuda156 +Date: Wed, 26 Jul 2023 14:57:24 +0800 +Subject: [PATCH] Fix for undeclared flush + + +diff --git src/dynlibs/mgd/mgd.c src/dynlibs/mgd/mgd.c +index 0e9f4a8..95a54e1 100644 +--- src/dynlibs/mgd/mgd.c ++++ src/dynlibs/mgd/mgd.c +@@ -123,7 +123,7 @@ EXTERNML value mgd_tostdoutpng(value im) + { + fprintf(stdout, "Content-type: image/png\n\n"); + gdImagePng(Image_val(im), stdout); +-#ifdef WIN32 ++#if defined(WIN32) || defined(__APPLE__) + fflush(stdout); + #else + flush(stdout); diff --git a/lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch b/lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch new file mode 100644 index 0000000000000..061ab14140545 --- /dev/null +++ b/lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch @@ -0,0 +1,58 @@ +From f5d859928130323a016696a8c2ffcd0ffb16b181 Mon Sep 17 00:00:00 2001 +From: barracuda156 +Date: Wed, 26 Jul 2023 16:19:22 +0800 +Subject: [PATCH] Placeholders for disabling werrors + + +diff --git src/dynlibs/mgdbm/Makefile src/dynlibs/mgdbm/Makefile +index 7218150..3fb006e 100644 +--- src/dynlibs/mgdbm/Makefile ++++ src/dynlibs/mgdbm/Makefile +@@ -12,7 +12,7 @@ GDBMINCDIR=${HOME}/c/gdbm-1.7.3 + + include ../../Makefile.inc + +-OPTS=-fno-defer-pop ++OPTS=-fno-defer-pop @WERROR@ + CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDBMINCDIR} + BASELIBS=-lm -ldl + +diff --git src/dynlibs/mmysql/Makefile src/dynlibs/mmysql/Makefile +index 0853210..3e1796f 100644 +--- src/dynlibs/mmysql/Makefile ++++ src/dynlibs/mmysql/Makefile +@@ -12,7 +12,7 @@ MYSQLINCDIR=/usr/include/mysql + + include ../../Makefile.inc + +-OPTS=-fno-defer-pop ++OPTS=-fno-defer-pop @WERROR@ + CFLAGS= -Dunix -O2 $(OPTS) -I$(INCDIR) -I ${MYSQLINCDIR} + + MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools +diff --git src/dynlibs/mpq/Makefile src/dynlibs/mpq/Makefile +index 8d8cec4..c5b4474 100644 +--- src/dynlibs/mpq/Makefile ++++ src/dynlibs/mpq/Makefile +@@ -20,7 +20,7 @@ PGSQLINCDIR=/usr/include/postgresql + + include ../../Makefile.inc + +-OPTS=-fno-defer-pop ++OPTS=-fno-defer-pop @WERROR@ + CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${PGSQLINCDIR} + + MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools +diff --git src/dynlibs/mregex/Makefile src/dynlibs/mregex/Makefile +index 2fd659b..1f0675c 100644 +--- src/dynlibs/mregex/Makefile ++++ src/dynlibs/mregex/Makefile +@@ -5,7 +5,7 @@ + + include ../../Makefile.inc + +-OPTS=-fno-defer-pop ++OPTS=-fno-defer-pop @WERROR@ + CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) + + MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools From d15c20598267a6b666d12bd3803567ea8ef68b4f Mon Sep 17 00:00:00 2001 From: barracuda156 Date: Thu, 27 Jul 2023 19:01:46 +0800 Subject: [PATCH 3/4] mosml-dynlibs: for now, disable mysql module due to a broken code --- lang/mosml/Portfile | 14 ++--- lang/mosml/files/0002-mosml-dynlibs.patch | 51 +++---------------- .../files/0004-Address-lvalue-error.patch | 22 -------- ...ch => 0004-Fix-for-undeclared-flush.patch} | 0 ...-Placeholders-for-disabling-werrors.patch} | 13 ----- 5 files changed, 10 insertions(+), 90 deletions(-) delete mode 100644 lang/mosml/files/0004-Address-lvalue-error.patch rename lang/mosml/files/{0005-Fix-for-undeclared-flush.patch => 0004-Fix-for-undeclared-flush.patch} (100%) rename lang/mosml/files/{0006-Placeholders-for-disabling-werrors.patch => 0005-Placeholders-for-disabling-werrors.patch} (77%) diff --git a/lang/mosml/Portfile b/lang/mosml/Portfile index d3e4a7349ffc4..06a53a848ba0d 100644 --- a/lang/mosml/Portfile +++ b/lang/mosml/Portfile @@ -53,39 +53,33 @@ subport ${name}-dynlibs { openssl.branch 1.1 set pgs_v 14 - set mys_v 57 depends_lib-append \ port:mosml \ - port:mysql${mys_v} \ port:postgresql${pgs_v} # https://github.com/kfl/mosml/issues/71 patchfiles-append \ 0002-mosml-dynlibs.patch \ 0003-Add-some-missing-headers.patch \ - 0004-Address-lvalue-error.patch \ - 0005-Fix-for-undeclared-flush.patch \ - 0006-Placeholders-for-disabling-werrors.patch + 0004-Fix-for-undeclared-flush.patch \ + 0005-Placeholders-for-disabling-werrors.patch post-patch { reinplace "s|@DESTDIR@|${destroot}|" ${worksrcpath}/src/Makefile.inc - foreach d {mgd mmysql mpq mregex} { + foreach d {mgd mpq mregex} { reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/src/dynlibs/${d}/Makefile } reinplace "s|@PGSQL@|postgresql${pgs_v}|g" ${worksrcpath}/src/dynlibs/mpq/Makefile - reinplace "s|@MYSQL@|mysql${mys_v}|g" ${worksrcpath}/src/dynlibs/mmysql/Makefile if {[string match *clang* ${configure.compiler}]} { reinplace "s|@WERROR@|-Wno-error=incompatible-pointer-types|" ${worksrcpath}/src/dynlibs/mgdbm/Makefile - reinplace "s|@WERROR@|-Wno-error=discarded-qualifiers|" ${worksrcpath}/src/dynlibs/mmysql/Makefile reinplace "s|@WERROR@|-Wno-error=implicit-function-declaration|" ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile } elseif {[string match macports-gcc* ${configure.compiler}]} { reinplace "s|@WERROR@|-Wno-incompatible-pointer-types|" ${worksrcpath}/src/dynlibs/mgdbm/Makefile - reinplace "s|@WERROR@|-Wno-discarded-qualifiers|" ${worksrcpath}/src/dynlibs/mmysql/Makefile reinplace "s|@WERROR@|-Wno-implicit-function-declaration|" ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile } else { - reinplace "s|@WERROR@||" ${worksrcpath}/src/dynlibs/mgdbm/Makefile ${worksrcpath}/src/dynlibs/mmysql/Makefile ${worksrcpath}/src/dynlibs/mpq/Makefile + reinplace "s|@WERROR@||" ${worksrcpath}/src/dynlibs/mgdbm/Makefile ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile } } diff --git a/lang/mosml/files/0002-mosml-dynlibs.patch b/lang/mosml/files/0002-mosml-dynlibs.patch index 08b6874e9f5da..6ed21feb2e40e 100644 --- a/lang/mosml/files/0002-mosml-dynlibs.patch +++ b/lang/mosml/files/0002-mosml-dynlibs.patch @@ -22,7 +22,7 @@ diff --git src/dynlibs/Makefile src/dynlibs/Makefile index 603d412..0f714d6 100644 --- src/dynlibs/Makefile +++ src/dynlibs/Makefile -@@ -1,53 +1,41 @@ +@@ -1,53 +1,36 @@ all: + cd crypt; make @@ -30,7 +30,7 @@ index 603d412..0f714d6 100644 - cd intinf; make cd mgd; make cd mgdbm; make - cd mmysql; make +- cd mmysql; make cd mpq; make cd mregex; make - cd msocket; make @@ -41,7 +41,7 @@ index 603d412..0f714d6 100644 + cd crypt; make install cd mgd; make install cd mgdbm; make install - cd mmysql; make install +- cd mmysql; make install cd mpq; make install cd mregex; make install - cd msocket; make install @@ -51,7 +51,7 @@ index 603d412..0f714d6 100644 - cd intinf; make uninstall cd mgd; make uninstall cd mgdbm; make uninstall - cd mmysql; make uninstall +- cd mmysql; make uninstall cd mpq; make uninstall cd mregex; make uninstall - cd msocket; make uninstall @@ -62,7 +62,7 @@ index 603d412..0f714d6 100644 - cd intinf; make test cd mgd; make test cd mgdbm; make test - cd mmysql; make test +- cd mmysql; make test cd mpq; make test cd mregex; make test - cd munix; make test @@ -73,7 +73,7 @@ index 603d412..0f714d6 100644 - cd intinf; make clean cd mgd; make clean cd mgdbm; make clean - cd mmysql; make clean +- cd mmysql; make clean cd mpq; make clean cd mregex; make clean - cd msocket; make clean @@ -167,45 +167,6 @@ index 7218150..ff6627a 100644 uninstall: ${UNINSTALL_DATA} $(LIBDIR)/libmgdbm.so -diff --git src/dynlibs/mmysql/Makefile src/dynlibs/mmysql/Makefile -index 0853210..16202e5 100644 ---- src/dynlibs/mmysql/Makefile -+++ src/dynlibs/mmysql/Makefile -@@ -5,17 +5,15 @@ - - # Where to find the Mysql header file and compiled library - --MYSQLLIBDIR=/usr/lib/mysql --MYSQLINCDIR=/usr/include/mysql --#MYSQLLIBDIR=/usr/local/lib/mysql --#MYSQLINCDIR=/usr/local/include/mysql -+MYSQLLIBDIR=@PREFIX@/lib/@MYSQL@/mysql -+MYSQLINCDIR=@PREFIX@/include/@MYSQL@/mysql - - include ../../Makefile.inc - - OPTS=-fno-defer-pop - CFLAGS= -Dunix -O2 $(OPTS) -I$(INCDIR) -I ${MYSQLINCDIR} - --MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools -+MOSMLTOOLS=@PREFIX@/bin/camlrunm $(TOOLDIR) - MOSMLC=mosmlc -c - MOSMLL=mosmlc - MOSMLLEX=mosmllex -@@ -27,11 +25,10 @@ mmysql.o: mmysql.c - $(CC) $(CFLAGS) -c -o mmysql.o mmysql.c - - libmmysql.so: mmysql.o -- $(DYNLD) -o libmmysql.so mmysql.o -L${MYSQLLIBDIR} -lmysqlclient -lnsl --# $(DYNLD) -o libmmysql.so mmysql.o -L${MYSQLLIBDIR} -lmysqlclient -+ $(DYNLD) -o libmmysql.so mmysql.o -L${MYSQLLIBDIR} -lmysqlclient - - install: -- ${INSTALL_DATA} libmmysql.so $(LIBDIR) -+ ${INSTALL_DATA} libmmysql.so $(DESTDIR)$(LIBDIR) - - uninstall: - ${UNINSTALL_DATA} $(LIBDIR)/libmmysql.so diff --git src/dynlibs/mpq/Makefile src/dynlibs/mpq/Makefile index 8d8cec4..5cc0044 100644 --- src/dynlibs/mpq/Makefile diff --git a/lang/mosml/files/0004-Address-lvalue-error.patch b/lang/mosml/files/0004-Address-lvalue-error.patch deleted file mode 100644 index bc6df63da6d73..0000000000000 --- a/lang/mosml/files/0004-Address-lvalue-error.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 6a910c2115c9a9722a64baee9f2f427d804685c9 Mon Sep 17 00:00:00 2001 -From: barracuda156 -Date: Wed, 26 Jul 2023 14:39:16 +0800 -Subject: [PATCH] Address lvalue error - - -diff --git src/dynlibs/mmysql/mmysql.c src/dynlibs/mmysql/mmysql.c -index 083771c..621c6ab 100644 ---- src/dynlibs/mmysql/mmysql.c -+++ src/dynlibs/mmysql/mmysql.c -@@ -76,9 +76,9 @@ void dbresult_finalize(value dbresval) - MYSQL_ROW_OFFSET* index = DBresultindex_val(dbresval); - if (dbres != NULL) { - mysql_free_result(dbres); -- DBresult_val(dbresval) = NULL; -+ DBresult_val(dbresval) == NULL; - stat_free((char*)index); -- DBresultindex_val(dbresval) = NULL; -+ DBresultindex_val(dbresval) == NULL; - } - } - diff --git a/lang/mosml/files/0005-Fix-for-undeclared-flush.patch b/lang/mosml/files/0004-Fix-for-undeclared-flush.patch similarity index 100% rename from lang/mosml/files/0005-Fix-for-undeclared-flush.patch rename to lang/mosml/files/0004-Fix-for-undeclared-flush.patch diff --git a/lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch b/lang/mosml/files/0005-Placeholders-for-disabling-werrors.patch similarity index 77% rename from lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch rename to lang/mosml/files/0005-Placeholders-for-disabling-werrors.patch index 061ab14140545..ed4b90292c657 100644 --- a/lang/mosml/files/0006-Placeholders-for-disabling-werrors.patch +++ b/lang/mosml/files/0005-Placeholders-for-disabling-werrors.patch @@ -17,19 +17,6 @@ index 7218150..3fb006e 100644 CFLAGS=-Dunix -O2 $(OPTS) $(ADDDYNLIBCFLAGS) -I$(INCDIR) -I ${GDBMINCDIR} BASELIBS=-lm -ldl -diff --git src/dynlibs/mmysql/Makefile src/dynlibs/mmysql/Makefile -index 0853210..3e1796f 100644 ---- src/dynlibs/mmysql/Makefile -+++ src/dynlibs/mmysql/Makefile -@@ -12,7 +12,7 @@ MYSQLINCDIR=/usr/include/mysql - - include ../../Makefile.inc - --OPTS=-fno-defer-pop -+OPTS=-fno-defer-pop @WERROR@ - CFLAGS= -Dunix -O2 $(OPTS) -I$(INCDIR) -I ${MYSQLINCDIR} - - MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools diff --git src/dynlibs/mpq/Makefile src/dynlibs/mpq/Makefile index 8d8cec4..c5b4474 100644 --- src/dynlibs/mpq/Makefile From 98a04c15f14425c6ba1ccbd05787974c8919a7d4 Mon Sep 17 00:00:00 2001 From: Christopher Nielsen Date: Tue, 15 Aug 2023 14:25:20 -0400 Subject: [PATCH 4/4] mosml*: refine deps; reinplace cleanup --- lang/mosml/Portfile | 67 ++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/lang/mosml/Portfile b/lang/mosml/Portfile index 06a53a848ba0d..a986c7b5e4835 100644 --- a/lang/mosml/Portfile +++ b/lang/mosml/Portfile @@ -10,38 +10,37 @@ revision 0 categories lang devel ml license GPL-2+ maintainers {@barracuda156 gmail.com:vital.had} openmaintainer + description Moscow ML is an implementation of Standard ML (SML) long_description Moscow ML is a light-weight implementation of Standard ML \ (SML), a strict functional language widely used in teaching \ - and research. Version 2.10.1 of Moscow ML implements \ + and research. The latest release of Moscow ML implements \ the full Standard ML language, as revised 1997, including Modules \ and some extensions, yet is backwards compatible with versions \ prior to 2.00, and implements large parts of the new SML Basis Library. - homepage https://mosml.org checksums rmd160 a684b544fdd204a7408930c7b77611fcbf28dc44 \ sha256 9c18aaac26f6cf8b8394ea7ef3d2fc1e57de34715feea5860b4ea139757e4b95 \ size 2577422 -github.tarball_from archive +github.tarball_from archive extract.rename yes -depends_lib-append port:gd2 \ - port:gdbm \ - port:gmp - -patchfiles 0001-mosml.patch +patchfiles-append 0001-mosml.patch post-patch { - reinplace "s|@PREFIX@|${prefix}|g" \ - ${worksrcpath}/src/Makefile.inc \ - ${worksrcpath}/src/launch/Makefile \ + reinplace -W ${worksrcpath} "s|@PREFIX@|${prefix}|g" \ + src/Makefile.inc \ + src/launch/Makefile \ src/dynlibs/intinf/Makefile - reinplace "s|@CC@|${configure.cc}|" \ - ${worksrcpath}/src/Makefile.inc + reinplace -W ${worksrcpath} "s|@CC@|${configure.cc}|" \ + src/Makefile.inc } +depends_lib-append \ + port:gmp + build.dir ${worksrcpath}/src build.target world @@ -55,8 +54,12 @@ subport ${name}-dynlibs { set pgs_v 14 depends_lib-append \ + port:gd2 \ + port:gdbm \ + port:libpng \ port:mosml \ - port:postgresql${pgs_v} + port:postgresql${pgs_v} \ + port:zlib # https://github.com/kfl/mosml/issues/71 patchfiles-append \ @@ -66,32 +69,46 @@ subport ${name}-dynlibs { 0005-Placeholders-for-disabling-werrors.patch post-patch { - reinplace "s|@DESTDIR@|${destroot}|" ${worksrcpath}/src/Makefile.inc + reinplace -W ${worksrcpath} "s|@DESTDIR@|${destroot}|" \ + src/Makefile.inc foreach d {mgd mpq mregex} { - reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/src/dynlibs/${d}/Makefile + reinplace -W ${worksrcpath} "s|@PREFIX@|${prefix}|g" \ + src/dynlibs/${d}/Makefile } - reinplace "s|@PGSQL@|postgresql${pgs_v}|g" ${worksrcpath}/src/dynlibs/mpq/Makefile + reinplace -W ${worksrcpath} "s|@PGSQL@|postgresql${pgs_v}|g" \ + src/dynlibs/mpq/Makefile if {[string match *clang* ${configure.compiler}]} { - reinplace "s|@WERROR@|-Wno-error=incompatible-pointer-types|" ${worksrcpath}/src/dynlibs/mgdbm/Makefile - reinplace "s|@WERROR@|-Wno-error=implicit-function-declaration|" ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile + reinplace -W ${worksrcpath} "s|@WERROR@|-Wno-error=incompatible-pointer-types|" \ + src/dynlibs/mgdbm/Makefile + reinplace -W ${worksrcpath} "s|@WERROR@|-Wno-error=implicit-function-declaration|" \ + src/dynlibs/mpq/Makefile \ + src/dynlibs/mregex/Makefile } elseif {[string match macports-gcc* ${configure.compiler}]} { - reinplace "s|@WERROR@|-Wno-incompatible-pointer-types|" ${worksrcpath}/src/dynlibs/mgdbm/Makefile - reinplace "s|@WERROR@|-Wno-implicit-function-declaration|" ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile + reinplace -W ${worksrcpath} "s|@WERROR@|-Wno-incompatible-pointer-types|" \ + src/dynlibs/mgdbm/Makefile + reinplace -W ${worksrcpath} "s|@WERROR@|-Wno-implicit-function-declaration|" \ + src/dynlibs/mpq/Makefile \ + src/dynlibs/mregex/Makefile } else { - reinplace "s|@WERROR@||" ${worksrcpath}/src/dynlibs/mgdbm/Makefile ${worksrcpath}/src/dynlibs/mpq/Makefile ${worksrcpath}/src/dynlibs/mregex/Makefile + reinplace -W ${worksrcpath} "s|@WERROR@||" \ + src/dynlibs/mgdbm/Makefile \ + src/dynlibs/mpq/Makefile \ + src/dynlibs/mregex/Makefile } } + set port_libdir ${prefix}/lib/mosml + build.dir ${worksrcpath}/src/dynlibs build.env-append \ - ROOTDIR="${prefix}/lib/mosml" \ - CAMLRT="${prefix}/lib/mosml" + ROOTDIR="${port_libdir}" \ + CAMLRT="${port_libdir}" build.target all pre-destroot { - xinstall -d ${destroot}${prefix}/lib/mosml + xinstall -d ${destroot}${port_libdir} } }