diff options
Diffstat (limited to 'lang')
-rw-r--r-- | lang/caml-light/Makefile | 2 | ||||
-rw-r--r-- | lang/caml-light/files/patch-src_launch_Makefile | 24 | ||||
-rw-r--r-- | lang/caml-light/files/patch-src_yacc_main.c | 81 |
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); + } |