svn commit: r391614 - head/shells/bash
Emanuel Haupt
ehaupt at FreeBSD.org
Thu Jul 9 05:47:33 UTC 2015
Author: ehaupt
Date: Thu Jul 9 05:47:32 2015
New Revision: 391614
URL: https://svnweb.freebsd.org/changeset/ports/391614
Log:
Scripts like https://github.com/henricj/scripts/blob/master/stir.sh often
generate a bunch of,
cannot make pipe for process substitution: File exists
errors.
The problem lies with colliding pipe names.
The code in sh_mktmpname() in lib/sh/tmpfile.c uses a combination of things like
the current time, the PID, and an incrementing counter. Since the child PIDs
tend to be sequential (barring kern.randompid=1), there are collisions.
Fix this problem without rewriting upstream code by defining USE_MKTEMP=1 to
use the mktemp(3) code of bash.
FreeBSD's mktemp() is not nearly as bad as the bash default and isn't
brain-damaged like some platforms (which is likely why the bash code tries to
do it's own thing). In FreeBSD, "mktemp(3)" it uses arc4random to pick one of
62 symbols for each "X".
Submitted by: Henric Jungheim <software at henric.org>
Modified:
head/shells/bash/Makefile
Modified: head/shells/bash/Makefile
==============================================================================
--- head/shells/bash/Makefile Thu Jul 9 05:12:51 2015 (r391613)
+++ head/shells/bash/Makefile Thu Jul 9 05:47:32 2015 (r391614)
@@ -4,7 +4,7 @@
PORTNAME= bash
PATCHLEVEL= 39
PORTVERSION= 4.3.${PATCHLEVEL:S/^0//g}
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= shells
MASTER_SITES= GNU/${PORTNAME}
DISTNAME= ${PORTNAME}-${PORTVERSION:R}
@@ -54,6 +54,8 @@ CONFIGURE_ARGS+= --without-bash-malloc \
--disable-rpath \
--enable-disabled-builtins
+CFLAGS+= -DUSE_MKTEMP=1
+
.if empty(PKGNAMESUFFIX)
CONFLICTS+= bash-static-[0-9]*
.else
More information about the svn-ports-all
mailing list