aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
Diffstat (limited to 'lang')
-rw-r--r--lang/caml-light/Makefile2
-rw-r--r--lang/caml-light/files/patch-src_launch_Makefile24
-rw-r--r--lang/caml-light/files/patch-src_yacc_main.c81
3 files changed, 97 insertions, 10 deletions
diff --git a/lang/caml-light/Makefile b/lang/caml-light/Makefile
index b45265f8b989..bd1a7b65daa8 100644
--- a/lang/caml-light/Makefile
+++ b/lang/caml-light/Makefile
@@ -7,7 +7,7 @@
PORTNAME= caml
PORTVERSION= 0.75
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= lang elisp
MASTER_SITES= http://caml.inria.fr/pub/distrib/caml-light-0.75/ \
ftp://arcadia.informatik.uni-muenchen.de/pub/comp/programming/languages/functional/caml-light/
diff --git a/lang/caml-light/files/patch-src_launch_Makefile b/lang/caml-light/files/patch-src_launch_Makefile
index 38b39aaca442..afba4c517322 100644
--- a/lang/caml-light/files/patch-src_launch_Makefile
+++ b/lang/caml-light/files/patch-src_launch_Makefile
@@ -1,13 +1,19 @@
---- src/launch/Makefile.orig Wed Feb 22 15:03:26 1995
-+++ src/launch/Makefile Sun Aug 6 11:58:56 2006
-@@ -17,16 +17,17 @@
- chmod a+x /tmp/testscr
- sh -c 'if sh -c /tmp/testscr 2>/dev/null; \
- then echo "#!$(BINDIR)/camlrun" > $(LIBDIR)/header; \
+--- src/launch/Makefile.orig 1995-02-22 10:33:26.000000000 +0100
++++ src/launch/Makefile 2011-11-12 10:26:48.000000000 +0100
+@@ -11,22 +11,15 @@
+ # have write permission in the current directory if NFS-mounted...
+
+ install:
+- (echo "#!$(BINDIR)/camlrun"; \
+- echo "exit 2"; \
+- cat testprog) > /tmp/testscr
+- chmod a+x /tmp/testscr
+- sh -c 'if sh -c /tmp/testscr 2>/dev/null; \
+- then echo "#!$(BINDIR)/camlrun" > $(LIBDIR)/header; \
- else cp camlexec $(LIBDIR)/header; \
-+ else ${BSD_INSTALL_SCRIPT} camlexec $(LIBDIR)/header; \
- fi'
- rm -f /tmp/testscr
+- fi'
+- rm -f /tmp/testscr
++ echo "#!$(BINDIR)/camlrun" > $(LIBDIR)/header
for script in camlc camllight camlmktop; do \
- cp $$script $(BINDIR)/$$script; \
+ ${BSD_INSTALL_SCRIPT} $$script $(BINDIR)/$$script; \
diff --git a/lang/caml-light/files/patch-src_yacc_main.c b/lang/caml-light/files/patch-src_yacc_main.c
new file mode 100644
index 000000000000..78292dece3fb
--- /dev/null
+++ b/lang/caml-light/files/patch-src_yacc_main.c
@@ -0,0 +1,81 @@
+--- src/yacc/main.c.orig 1995-06-07 15:34:32.000000000 +0200
++++ src/yacc/main.c 2011-11-12 10:09:52.000000000 +0100
+@@ -1,4 +1,5 @@
+ #include <signal.h>
++#include <stdlib.h> /* for mkstemp(), getenv() */
+ #include "defs.h"
+
+ char dflag;
+@@ -31,6 +32,11 @@
+ char *union_file_name;
+ char *verbose_file_name;
+
++static int action_fd = -1;
++static int entry_fd = -1;
++static int text_fd = -1;
++static int union_fd = -1;
++
+ FILE *action_file; /* a temp file, used to save actions associated */
+ /* with rules until the parser is written */
+ FILE *entry_file;
+@@ -72,7 +78,6 @@
+ extern char *mktemp();
+ extern char *getenv();
+
+-
+ done(k)
+ int k;
+ {
+@@ -276,11 +281,20 @@
+ union_file_name[len + 5] = 'u';
+
+ #ifndef NO_UNIX
+- mktemp(action_file_name);
+- mktemp(entry_file_name);
+- mktemp(text_file_name);
+- mktemp(union_file_name);
++ action_fd = mkstemp(action_file_name);
++ entry_fd = mkstemp(entry_file_name);
++ text_fd = mkstemp(text_file_name);
++ union_fd = mkstemp(union_file_name);
+ #endif
++ if (action_fd < 0)
++ open_error(action_file_name);
++ if (entry_fd < 0)
++ open_error(entry_file_name);
++ if (text_fd < 0)
++ open_error(text_file_name);
++ if (union_fd < 0)
++ open_error(union_file_name);
++
+
+ len = strlen(file_prefix);
+
+@@ -321,15 +335,15 @@
+ open_error(input_file_name);
+ }
+
+- action_file = fopen(action_file_name, "w");
++ action_file = fdopen(action_fd, "w");
+ if (action_file == 0)
+ open_error(action_file_name);
+
+- entry_file = fopen(entry_file_name, "w");
++ entry_file = fdopen(entry_fd, "w");
+ if (entry_file == 0)
+ open_error(entry_file_name);
+
+- text_file = fopen(text_file_name, "w");
++ text_file = fdopen(text_fd, "w");
+ if (text_file == 0)
+ open_error(text_file_name);
+
+@@ -345,7 +359,7 @@
+ defines_file = fopen(defines_file_name, "w");
+ if (defines_file == 0)
+ open_error(defines_file_name);
+- union_file = fopen(union_file_name, "w");
++ union_file = fdopen(union_fd, "w");
+ if (union_file == 0)
+ open_error(union_file_name);
+ }