Add shells/bash-devel. The goal of this port is to have a more up to date

version of shells/bash.

This port has also been converted to use OPTIONSng.
This commit is contained in:
Emanuel Haupt 2013-01-14 11:47:17 +00:00
parent 33081b5e2e
commit 46a134caae
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=310370
14 changed files with 801 additions and 0 deletions

View file

@ -7,6 +7,7 @@
SUBDIR += ambit
SUBDIR += bash
SUBDIR += bash-completion
SUBDIR += bash-devel
SUBDIR += bash-static
SUBDIR += bashc
SUBDIR += ch

159
shells/bash-devel/Makefile Normal file
View file

@ -0,0 +1,159 @@
# Created by: Emanuel Haupt <ehaupt@FreeBSD.org>
# $FreeBSD$
PORTNAME= bash
PATCHLEVEL= 42
PORTVERSION= 4.2.${PATCHLEVEL:S/^0//g}
PORTREVISION?= 0
CATEGORIES= shells
MASTER_SITES= ${MASTER_SITE_GNU:S/$/:bash/} \
ftp://ftp.cwru.edu/pub/%SUBDIR%/:faq
MASTER_SITE_SUBDIR= ${PORTNAME}/:bash,faq
DISTNAME= ${PORTNAME}-${PORTVERSION:R}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:bash
DIST_SUBDIR= ${PORTNAME}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
PATCH_SITES= ${MASTER_SITE_GNU} \
ftp://ftp.cwru.edu/pub/%SUBDIR%/
PATCH_SITE_SUBDIR= ${PORTNAME}/${DISTNAME}-patches/
PATCHFILES!= /usr/bin/jot -s " " -w \
${PORTNAME}${PORTVERSION:R:S/.//g}-%03d \
${PATCHLEVEL} 1 ${PATCHLEVEL}
MAINTAINER= ehaupt@FreeBSD.org
COMMENT= The GNU Project's Bourne Again SHell
IGNOREFILES= FAQ
OPTIONS_DEFINE= IMPLICITCD COLONBREAKSWORDS HELP NLS STATIC_BASH SYSLOG DOCS
OPTIONS_DEFAULT=IMPLICITCD COLONBREAKSWORDS HELP NLS
IMPLICITCD_DESC= Use directory name alone to cd into it
COLONBREAKSWORDS_DESC= Colons break words
HELP_DESC= Install the help files
STATIC_BASH_DESC= Compile without shared libs
SYSLOG_DESC= Compile with syslog support
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MIMPLICITCD}
EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-implicitcd
.endif
.if ${PORT_OPTIONS:MCOLONBREAKSWORDS}
EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-colonbreakswords
.endif
MAN1= bash.1 bashbug.1
INFO= bash
MAKE_JOBS_UNSAFE= yes
GNU_CONFIGURE= yes
USE_BISON= build
.if ${PORT_OPTIONS:MDOCS}
.if !defined(WITH_INCLUDED_FAQ)
DISTFILES+= FAQ:faq
.endif
PORTDOCS= FAQ INTRO CHANGES COMPAT NEWS POSIX RBASH
.endif
CONFIGURE_ARGS= --without-bash-malloc \
--disable-rpath \
--enable-disabled-builtins
.if ${PORT_OPTIONS:MSTATIC_BASH} || defined(NO_DYNAMICROOT) || (defined(NOSHARED) && ${NOSHARED:L} != "no")
.if empty(PORT_OPTIONS:MNLS)
WITHOUT_NLS=yes
.endif
CONFIGURE_ARGS+= --enable-static-link
PKGNAMESUFFIX= -static-devel
CONFLICTS+= bash-[0-9]* bash-static-[0-9]* bash-devel-[0-9]*
.else
CONFIGURE_ARGS+= --enable-static-link=no
PKGNAMESUFFIX= -devel
CONFLICTS+= bash-static-[0-9]* bash-[0-9]* bash-static-devel-[0-9]*
.endif
.if empty(PORT_OPTIONS:MHELP)
CONFIGURE_ARGS+= --disable-help-builtin
PLIST_SUB+= HELP="@comment "
.elif defined(WITH_INTEGRATED_HELPFILES)
PLIST_SUB+= HELP="@comment "
.else
CONFIGURE_ARGS+= --enable-separate-helpfiles
PLIST_SUB+= HELP=""
.endif
.if empty(PORT_OPTIONS:MNLS)
CONFIGURE_ARGS+= --disable-nls
PLIST_SUB+= NLS="@comment "
.else
USE_ICONV= yes
USE_GETTEXT= yes
PLIST_SUB+= NLS=""
.endif
CPPFLAGS+= ${PTHREAD_CFLAGS} \
-I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
CONFIGURE_ENV= YACC="bison -y"
post-patch:
@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/doc/bash.1
.if ${PORT_OPTIONS:MSYSLOG)
@${REINPLACE_CMD} \
-e "s|/\*.*#define SYSLOG_HISTORY .*\*/|#define SYSLOG_HISTORY|g" \
${WRKSRC}/config-top.h
.endif
.if empty(PORT_OPTIONS:MNLS)
@${REINPLACE_CMD} -e "s|@LIBICONV@||g" ${WRKSRC}/Makefile.in
.endif
post-configure:
@${FIND} ${WRKSRC} -name Makefile -print0 | ${XARGS} -0 \
${REINPLACE_CMD} -e "s|^DESTDIR *=|& ${DESTDIR}|"
.if empty(PORT_OPTIONS:MNLS)
@${REINPLACE_CMD} -e "s|#define HAVE_ICONV 1|#undef HAVE_ICONV|g" ${WRKSRC}/config.h
.endif
pre-build:
@${ECHO_CMD} $$((${PORTREVISION}-1)) > ${WRKSRC}/.build
pre-install:
@${SETENV} PKG_PREFIX="${PREFIX}" \
${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
post-install:
@cd ${PREFIX}/bin ; ${LN} -sf bash rbash
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${DOCSDIR}
.if !defined(WITH_INCLUDED_FAQ)
@${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/FAQ \
${WRKSRC}/doc/INTRO ${DOCSDIR}
.else
@${INSTALL_DATA} ${WRKSRC}/doc/FAQ \
${WRKSRC}/doc/INTRO ${DOCSDIR}
.endif
@for d in ${PORTDOCS:NFAQ:NINTRO}; do \
${INSTALL_DATA} ${WRKSRC}/$${d} ${DOCSDIR}; \
done
.endif
@${SETENV} PKG_PREFIX="${PREFIX}" PKG_DESTDIR="${DESTDIR}" \
${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
regress: build
cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} test
ckp:
${MAKE} -DPATCH_DEBUG clean patch
cklatest:
@${ECHO} -n "Currently at: "
@${MAKE} -V PATCHLEVEL
-ncftpls \
ftp://ftp.cwru.edu/pub/${PORTNAME}/${PORTNAME}-${PORTVERSION:C/\.[0-9a-z]*$//}-patches/ \
| fgrep -v .sig | ${TAIL}
.include <bsd.port.post.mk>

View file

@ -0,0 +1,87 @@
SHA256 (bash/bash-4.2.tar.gz) = a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8
SIZE (bash/bash-4.2.tar.gz) = 7009201
SHA256 (bash/bash42-001) = 8d6ca028576c4af23e660a2fbc2112221a11c8a785c0b37f033967e5cd12b47a
SIZE (bash/bash42-001) = 2944
SHA256 (bash/bash42-002) = febac927e199aceeba2004908d971d4afb49b521796c3f42d1166f9fbbfbcef9
SIZE (bash/bash42-002) = 1780
SHA256 (bash/bash42-003) = 5a0a7c15018c87348ea87cb0beea14345faf878dbb0e25c17fa70677194cb4cd
SIZE (bash/bash42-003) = 6896
SHA256 (bash/bash42-004) = 4e34b0f830d2583d56e14225a66937abc81f45bbafcd2eb49daf61c9462140c1
SIZE (bash/bash42-004) = 1686
SHA256 (bash/bash42-005) = a81749e73004b81cfdf0fe075bec365dc1fef756ee5e3fd142821e317d1459a0
SIZE (bash/bash42-005) = 3424
SHA256 (bash/bash42-006) = c91148945a2ddafa792682d7c8668c59e7e645eae1334b15b0d5d9ad22634bd1
SIZE (bash/bash42-006) = 1187
SHA256 (bash/bash42-007) = 405826acf443dd1084f236a15cb76d7f0ee2dbe5edff45c5fb836db571fb7e95
SIZE (bash/bash42-007) = 1394
SHA256 (bash/bash42-008) = 23080d11a60a78941210e2477f6bca066b45db03defa60da86fd765107ba2437
SIZE (bash/bash42-008) = 2164
SHA256 (bash/bash42-009) = e7ed5440b4c19765786e90e4f1ded43195d38b3e4d1c4b39fcc23de9a74ccb20
SIZE (bash/bash42-009) = 2384
SHA256 (bash/bash42-010) = acfc5482c25e6923116fcf4b4f7f6345b80f75ad7299749db4b736ad67aa43dc
SIZE (bash/bash42-010) = 1818
SHA256 (bash/bash42-011) = a491ae359a7ebbd7321aede561728289d71e1fc84777f402766a8afd4d261532
SIZE (bash/bash42-011) = 1426
SHA256 (bash/bash42-012) = 354433f1d2da02f1b9652cd20a5b85bbfb5bc2aaf79c42461ebd929d89b9b7b8
SIZE (bash/bash42-012) = 4247
SHA256 (bash/bash42-013) = 3412c5c6cbbce6c88592604aec054d8182ce64410038b5ecea69fc3968cf85ea
SIZE (bash/bash42-013) = 1340
SHA256 (bash/bash42-014) = b5a678e609858532735f94faedb5fabce00dfd6577a4e9ec5eec85fe682c8b33
SIZE (bash/bash42-014) = 1434
SHA256 (bash/bash42-015) = 2d876a8304bdf3d664e87e0a8d73bc4ccc100a9dd8c0d054e8649472d8748a98
SIZE (bash/bash42-015) = 1991
SHA256 (bash/bash42-016) = 2895ccbcf7fc98da73a8fa3ba7440aaf2bfaef6c0af8bdd3a9c39403cf03e2a6
SIZE (bash/bash42-016) = 1410
SHA256 (bash/bash42-017) = 73552444498c761d6073dd67ccfe043b36ef24bb418c266d91d9750884daee7f
SIZE (bash/bash42-017) = 1399
SHA256 (bash/bash42-018) = e2a9457172370d454d31b84bbcba758ee6394316dbe755374553b52aadbb494d
SIZE (bash/bash42-018) = 1929
SHA256 (bash/bash42-019) = a8b7cd02207656976016d93cab48e073cb5da002ceb27b7a63fc5ea62007eb56
SIZE (bash/bash42-019) = 1415
SHA256 (bash/bash42-020) = 494773f0d0078cb35372d24caa523b00d8fdbbaed71e41dc14c9e47579da3c6f
SIZE (bash/bash42-020) = 1825
SHA256 (bash/bash42-021) = a887a97be226575ecf483be2c76655bd6d1edde1cdfe199c27bd2e6baf32badc
SIZE (bash/bash42-021) = 1532
SHA256 (bash/bash42-022) = 9dcdf69df7f8cd2ba88d18c45a0d8f55fbe4f0e273411179db94dd6198b85c6b
SIZE (bash/bash42-022) = 1395
SHA256 (bash/bash42-023) = 5dc11394f1a6c887373c081396efd4f4cc04492696722c57a4811c207965f0bf
SIZE (bash/bash42-023) = 1699
SHA256 (bash/bash42-024) = 99c826bdd33bee281d0a9191550d62a24d0b256cd41c90afd10abd63a66b99e6
SIZE (bash/bash42-024) = 1363
SHA256 (bash/bash42-025) = 0db0646fd7a559d5702911192bdd387acbbc61cf3c29a34007c3ec840e275515
SIZE (bash/bash42-025) = 3969
SHA256 (bash/bash42-026) = e7e90cfaabbce3b4b9c699994e9d9ea4a2f084fd9f37788a80b0b70b47d323d2
SIZE (bash/bash42-026) = 1577
SHA256 (bash/bash42-027) = 0c1f6b7256fcc17f42c05f9bbb4138f8e8bb67e79c622c3485711b6f37f7ed42
SIZE (bash/bash42-027) = 1461
SHA256 (bash/bash42-028) = 204226de39ba81aaf3dd5a29cd59de052ec9f648538bb9e7f1c8150852b1ed7a
SIZE (bash/bash42-028) = 1834
SHA256 (bash/bash42-029) = d0b08c0817bc5acdb28b466727622a8422ca4d61188313cf162443b7f338f581
SIZE (bash/bash42-029) = 16812
SHA256 (bash/bash42-030) = 12594366591a136d8ccdcb8e218010f2ddab6be28a7f96d0ed32ca927e44afae
SIZE (bash/bash42-030) = 5046
SHA256 (bash/bash42-031) = 55f38c4d34775fbb063510c4222b195d998dd86f88288b64a6103e3812f8d9f9
SIZE (bash/bash42-031) = 2047
SHA256 (bash/bash42-032) = e3a8b563dbb1e5cb7ca85a53515da8b2941213973496d48c4cc5a11c604791ed
SIZE (bash/bash42-032) = 2416
SHA256 (bash/bash42-033) = f5d12790d69fdfb2f47ac86fa1ea1ecc088880141570273f38dfd3fa4a46434b
SIZE (bash/bash42-033) = 1634
SHA256 (bash/bash42-034) = 01c1f332101389cedf347c7736102966722a3b213900954e5d625bbc2f1e41b8
SIZE (bash/bash42-034) = 1345
SHA256 (bash/bash42-035) = cecde463b038b4849635ff0993d9b264fc92403e7ae0accb52c7877aeaed78df
SIZE (bash/bash42-035) = 1920
SHA256 (bash/bash42-036) = fe293a1bc92ac4d272ae9b9a0de3afef7c06145a2b52337a09cacccc5305aafa
SIZE (bash/bash42-036) = 3123
SHA256 (bash/bash42-037) = c7578cddd3bb2430689c740f58a03403800726dcd1268b28f91bf37f368e1674
SIZE (bash/bash42-037) = 3483
SHA256 (bash/bash42-038) = b8c9a81bdf206be58ba491dfad80373b3348af769e80aaf72f7611ddbbbe6d57
SIZE (bash/bash42-038) = 1290
SHA256 (bash/bash42-039) = f4f9300a60321a5088ae9e54052a64c4d3e876f9a3a17ca104d58fa38b9c1791
SIZE (bash/bash42-039) = 1603
SHA256 (bash/bash42-040) = b265f9caf3c7321f95bc8e0b9e2c46bd86c226f00f05e823699aafb83c4aaa6c
SIZE (bash/bash42-040) = 1710
SHA256 (bash/bash42-041) = 05cc1951bd9f6624088dd6067486ff47f1825e333273d7df5f1b06b23baaf5eb
SIZE (bash/bash42-041) = 1463
SHA256 (bash/bash42-042) = faaa5c1f456517b258b2a65eaa664dd6a01eeff73c8ca4447c3a6de371bbf304
SIZE (bash/bash42-042) = 1571
SHA256 (bash/FAQ) = IGNORE

View file

@ -0,0 +1,173 @@
--- bashline.c.orig 2009-01-08 06:29:24.000000000 -0800
+++ bashline.c 2012-07-30 15:07:10.000000000 -0500
@@ -235,6 +235,11 @@ int bash_readline_initialized = 0;
host list. */
int perform_hostname_completion = 1;
+/* If non-zero, we do hostname completion, breaking words at `@' and
+ trying to complete the stuff after the `@' from our own internal
+ host list. */
+int colon_is_wordbreak = 1;
+
/* If non-zero, we don't do command completion on an empty line. */
int no_empty_command_completion;
@@ -252,7 +257,8 @@ int dircomplete_expand_relpath = 0;
static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
-/* )) */
+static char *bash_nocolon_word_break_characters = " \t\n\"'@><=;|&(";
+/* ))) */
static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
static char *custom_filename_quote_characters = 0;
@@ -370,6 +376,80 @@ enable_hostname_completion (on_or_off)
return (old_value);
}
+/* When this function returns, rl_completer_word_break_characters points to
+ dynamically allocated memory. */
+int
+enable_colon_wordbreak (on_or_off)
+ int on_or_off;
+{
+ int old_value;
+ char *at, *nv, *nval;
+
+ old_value = colon_is_wordbreak;
+
+ if (on_or_off)
+ {
+ colon_is_wordbreak = 1;
+ rl_filename_quote_characters = default_filename_quote_characters;
+ }
+ else
+ {
+ colon_is_wordbreak = 0;
+ rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!{~"; /*}*/
+ }
+
+ /* Now we need to figure out how to appropriately modify and assign
+ rl_completer_word_break_characters depending on whether we want
+ the colon to be a word break or not. */
+
+ /* If this is the first time this has been called
+ (bash_readline_initialized == 0), use the sames values as before, but
+ allocate new memory for rl_completer_word_break_characters. */
+
+ if (bash_readline_initialized == 0 &&
+ (rl_completer_word_break_characters == 0 ||
+ rl_completer_word_break_characters == rl_basic_word_break_characters))
+ {
+ if (on_or_off)
+ rl_completer_word_break_characters = savestring (bash_completer_word_break_characters);
+ else
+ rl_completer_word_break_characters = savestring (bash_nocolon_word_break_characters);
+ }
+ else
+ {
+ /* See if we have anything to do. */
+ at = strchr (rl_completer_word_break_characters, ':');
+ if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0))
+ return old_value;
+
+ /* We have something to do. Do it. */
+ nval = (char *)xmalloc (strlen (rl_completer_word_break_characters) + 1 + on_or_off);
+
+ if (on_or_off == 0)
+ {
+ /* Turn it off -- just remove `:' from word break chars. We want
+ to remove all occurrences of `:' from the char list, so we loop
+ rather than just copy the rest of the list over AT. */
+ for (nv = nval, at = rl_completer_word_break_characters; *at; )
+ if (*at != ':')
+ *nv++ = *at++;
+ else
+ at++;
+ *nv = '\0';
+ }
+ else
+ {
+ nval[0] = ':';
+ strcpy (nval + 1, rl_completer_word_break_characters);
+ }
+
+ free (rl_completer_word_break_characters);
+ rl_completer_word_break_characters = nval;
+ }
+
+ return (old_value);
+}
+
/* Called once from parse.y if we are going to use readline. */
void
initialize_readline ()
@@ -538,8 +618,13 @@ initialize_readline ()
completion is enabled. */
enable_hostname_completion (perform_hostname_completion);
+ /* This sets rl_completer_word_break_characters and rl_filename_quote_characters
+ to the appropriate values, depending on whether or not a colon
+ should break completion words or not. */
+ enable_colon_wordbreak (colon_is_wordbreak);
+
/* characters that need to be quoted when appearing in filenames. */
- rl_filename_quote_characters = default_filename_quote_characters;
+// rl_filename_quote_characters = default_filename_quote_characters;
rl_filename_quoting_function = bash_quote_filename;
rl_filename_dequoting_function = bash_dequote_filename;
--- builtins/shopt.def.orig 2009-01-13 05:43:16.000000000 -0800
+++ builtins/shopt.def 2009-03-08 01:03:39.000000000 -0800
@@ -96,6 +97,8 @@ extern int force_fignore;
extern int dircomplete_spelling;
extern int enable_hostname_completion __P((int));
+extern int colon_is_wordbreak;
+extern int enable_colon_wordbreak __P((int));
#endif
#if defined (PROGRAMMABLE_COMPLETION)
@@ -147,6 +150,9 @@ static struct {
#if defined (READLINE)
{ "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL },
#endif
+#if defined (READLINE)
+ { "colonbreakswords", &colon_is_wordbreak, enable_colon_wordbreak },
+#endif
{ "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL },
{ "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL },
{ "expand_aliases", &expand_aliases, (shopt_set_func_t *)NULL },
--- doc/bash.1.orig 2009-03-08 00:53:01.000000000 -0800
+++ doc/bash.1 2009-03-08 01:05:32.000000000 -0800
@@ -8473,6 +8473,18 @@ attempts to save all lines of a multiple
command in the same history entry. This allows
easy re-editing of multi-line commands.
.TP 8
+.B colonbreakswords
+If set, and
+.B readline
+is being used, \fBbash\fP will treat \fB:\fP as
+separating word being completed (see
+.B Completing
+under
+.SM
+.B READLINE
+above).
+This is enabled by default.
+.TP 8
.B compat31
If set,
.B bash
--- doc/bashref.texi.orig 2009-03-08 00:53:01.000000000 -0800
+++ doc/bashref.texi 2009-03-08 01:07:00.000000000 -0800
@@ -4321,6 +4321,11 @@ attempts to save all lines of a multiple
command in the same history entry. This allows
easy re-editing of multi-line commands.
+@item colonbreakswords
+If set, and Readline is being used, Bash will treat @samp{:} as
+separating word being completed (@pxref{Commands For Completion}).
+This option is enabled by default.
+

View file

@ -0,0 +1,99 @@
#
# new shopt `implicitcd'
# http://lists.gnu.org/archive/html/bug-bash/2004-09/msg00024.html
#
--- execute_cmd.c.orig Sat Nov 5 17:37:21 2005
+++ execute_cmd.c Wed Dec 28 19:38:09 2005
@@ -190,6 +190,9 @@
/* The line number that the currently executing function starts on. */
static int function_line_number;
+/* add an implicit `cd' if the command is the name of a directory */
+int implicitcd = 0;
+
/* Set to 1 if fd 0 was the subject of redirection to a subshell. Global
so that reader_loop can set it to zero before executing a command. */
int stdin_redir;
@@ -2913,6 +2916,20 @@
this_command_name = words->word->word;
QUIT;
+
+ if (implicitcd && interactive_shell && words->next == NULL && func == 0 && builtin == 0)
+ {
+ struct stat finfo;
+
+ if ((stat (words->word->word, &finfo) == 0) && (S_ISDIR (finfo.st_mode)))
+ {
+ this_command_name = "cd";
+ last_shell_builtin = this_shell_builtin;
+ this_shell_builtin = builtin_address (this_command_name);
+ result = (*this_shell_builtin) (words);
+ goto return_result;
+ }
+ }
/* This command could be a shell builtin or a user-defined function.
We have already found special builtins by this time, so we do not
--- builtins/shopt.def.orig Sat Feb 19 19:25:03 2005
+++ builtins/shopt.def Wed Dec 28 19:38:09 2005
@@ -66,6 +66,7 @@
extern int check_window_size;
extern int glob_ignore_case, match_ignore_case;
extern int hup_on_exit;
+extern int implicitcd;
extern int xpg_echo;
extern int gnu_error_format;
@@ -145,6 +146,7 @@
{ "hostcomplete", &perform_hostname_completion, enable_hostname_completion },
#endif
{ "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL },
+ { "implicitcd", &implicitcd, (shopt_set_func_t *)NULL },
{ "interactive_comments", &interactive_comments, set_shellopts_after_change },
#if defined (HISTORY)
{ "lithist", &literal_history, (shopt_set_func_t *)NULL },
@@ -253,6 +255,7 @@
cdable_vars = mail_warning = 0;
no_exit_on_failed_exec = print_shift_error = 0;
check_hashed_filenames = cdspelling = expand_aliases = check_window_size = 0;
+ implicitcd = 0;
source_uses_path = promptvars = 1;
--- doc/bash.1.orig Wed Oct 12 12:40:52 2005
+++ doc/bash.1 Wed Dec 28 19:38:09 2005
@@ -8090,6 +8090,15 @@
.B SIGHUP
to all jobs when an interactive login shell exits.
.TP 8
+.B implicitcd
+If this is set, a directory name typed as a command is treated as a
+request to change to that directory.
+This behavior is inhibited in non-interactive mode or for command
+strings with more than one word.
+Changing directory takes precedence over executing a like-named
+command, but it is done after alias substitutions.
+Tilde and variable expansions work as expected.
+.TP 8
.B interactive_comments
If set, allow a word beginning with
.B #
--- doc/bashref.texi.orig Mon Oct 3 16:07:21 2005
+++ doc/bashref.texi Wed Dec 28 19:38:09 2005
@@ -3697,6 +3697,15 @@
If set, Bash will send @code{SIGHUP} to all jobs when an interactive
login shell exits (@pxref{Signals}).
+@item implicitcd
+If this is set, a directory name typed as a command is treated as a
+request to change to that directory.
+This behavior is inhibited in non-interactive mode or for command
+strings with more than one word.
+Changing directory takes precedence over executing a like-named
+command, but it is done after alias substitutions.
+Tilde and variable expansions work as expected.
+
@item interactive_comments
Allow a word beginning with @samp{#}
to cause that word and all remaining characters on that

View file

@ -0,0 +1,24 @@
--- config-top.h.orig Wed Dec 28 19:52:23 2005
+++ config-top.h Wed Dec 28 19:54:12 2005
@@ -52,18 +52,18 @@
/* The default value of the PATH variable. */
#ifndef DEFAULT_PATH_VALUE
#define DEFAULT_PATH_VALUE \
- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
+ "/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin"
#endif
/* The value for PATH when invoking `command -p'. This is only used when
the Posix.2 confstr () function, or CS_PATH define are not present. */
#ifndef STANDARD_UTILS_PATH
#define STANDARD_UTILS_PATH \
- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
+ "/sbin:/bin:/usr/sbin:/usr/bin:/usr/games"
#endif
/* Default primary and secondary prompt strings. */
-#define PPROMPT "\\s-\\v\\$ "
+#define PPROMPT "[\\u@\\h \\w]\\$ "
#define SPROMPT "> "
/* Undefine this if you don't want the ksh-compatible behavior of reprinting

View file

@ -0,0 +1,18 @@
--- doc/Makefile.in.orig Wed Dec 28 20:00:02 2005
+++ doc/Makefile.in Wed Dec 28 20:00:58 2005
@@ -161,14 +161,11 @@
bashref.dvi: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
${SET_TEXINPUTS} $(TEXI2DVI) $(srcdir)/bashref.texi
-bashref.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
+bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
$(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
$(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
-
-bash.info: bashref.info
- ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \
bash.txt: bash.1
bash.ps: bash.1

View file

@ -0,0 +1,20 @@
--- doc/bash.1.orig Wed Dec 28 19:44:28 2005
+++ doc/bash.1 Wed Dec 28 20:03:12 2005
@@ -1897,7 +1897,7 @@
.SM
.B PROMPTING
below) and used as the primary prompt string. The default value is
-``\fB\es\-\ev\e$ \fP''.
+``\fB\eu\@\eh\e$ \fP''.
.TP
.B PS2
The value of this parameter is expanded as with
@@ -8784,7 +8784,7 @@
.SH FILES
.PD 0
.TP
-.FN /bin/bash
+.FN %%PREFIX%%/bin/bash
The \fBbash\fP executable
.TP
.FN /etc/profile

View file

@ -0,0 +1,28 @@
--- doc/bashref.texi.orig Wed Dec 28 19:44:28 2005
+++ doc/bashref.texi Wed Dec 28 20:09:16 2005
@@ -1,6 +1,6 @@
\input texinfo.tex @c -*- texinfo -*-
@c %**start of header
-@setfilename bashref.info
+@setfilename bash.info
@settitle Bash Reference Manual
@c %**end of header
@@ -10,7 +10,7 @@
@copying
This text is a brief description of the features that are present in
-the Bash shell (version @value{VERSION}, @value{UPDATED}).
+the Bash shell (version @value{VERSION}, @value{UPDATED})
This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Bash Reference Manual},
@@ -4277,7 +4277,7 @@
@item PS1
-The primary prompt string. The default value is @samp{\s-\v\$ }.
+The primary prompt string. The default value is @samp{[\u@@\h \w]\$ }.
@xref{Printing a Prompt}, for the complete list of escape
sequences that are expanded before @env{PS1} is displayed.

View file

@ -0,0 +1,11 @@
--- lib/readline/display.c.orig 2009-01-04 11:32:32.000000000 -0800
+++ lib/readline/display.c 2009-03-08 00:51:31.000000000 -0800
@@ -654,5 +654,8 @@ rl_redisplay ()
/* inv_lbreaks[i] is where line i starts in the buffer. */
inv_lbreaks[newlines = 0] = 0;
+ if (local_prompt)
lpos = prompt_physical_chars + modmark;
+ else
+ lpos = 0;
#if defined (HANDLE_MULTIBYTE)

View file

@ -0,0 +1,33 @@
#!/bin/sh
#
# $FreeBSD$
#
BASH="$(echo ${PKG_PREFIX-/usr/local}/bin/bash | /usr/bin/sed -e 's|//|/|g')"
RBASH="$(echo ${PKG_PREFIX-/usr/local}/bin/rbash | /usr/bin/sed -e 's|//|/|g')"
SHELLS="${PKG_DESTDIR-}/etc/shells"
case $2 in
DEINSTALL)
if grep -qs "^$BASH\$" "$SHELLS"; then
if [ `id -u` -eq 0 ]; then
TMPSHELLS=`mktemp -t shells`
grep -v "^$BASH\$" "$SHELLS" > "$TMPSHELLS"
cat "$TMPSHELLS" > "$SHELLS"
rm "$TMPSHELLS"
else
echo "Not root, please remove $BASH from $SHELLS manually"
fi
fi
if grep -qs "^$RBASH\$" "$SHELLS"; then
if [ `id -u` -eq 0 ]; then
TMPSHELLS=`mktemp -t shells`
grep -v "^$RBASH\$" "$SHELLS" > "$TMPSHELLS"
cat "$TMPSHELLS" > "$SHELLS"
rm "$TMPSHELLS"
else
echo "Not root, please remove $RBASH from $SHELLS manually"
fi
fi
;;
esac

View file

@ -0,0 +1,7 @@
This is GNU Bash. Bash is the GNU Project's Bourne Again SHell,
a complete implementation of the POSIX.2 shell spec, but also
with interactive command line editing, job control on architectures
that support it, csh-like features such as history substitution and
brace expansion, and a slew of other features.
WWW: http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html

View file

@ -0,0 +1,27 @@
#!/bin/sh
#
# $FreeBSD$
#
BASH="$(echo ${PKG_PREFIX-/usr/local}/bin/bash | /usr/bin/sed -e 's|//|/|g')"
RBASH="$(echo ${PKG_PREFIX-/usr/local}/bin/rbash | /usr/bin/sed -e 's|//|/|g')"
SHELLS="/etc/shells"
case $2 in
POST-INSTALL)
if [ -d "${SHELLS%/*}" ] && ! grep -qs "^$BASH\$" "$SHELLS"; then
if [ `id -u` -eq 0 ]; then
echo "$BASH" >> "$SHELLS"
else
echo "Not root, please add $BASH to $SHELLS manually"
fi
fi
if [ -d "${SHELLS%/*}" ] && ! grep -qs "^$RBASH\$" "$SHELLS"; then
if [ `id -u` -eq 0 ]; then
echo "$RBASH" >> "$SHELLS"
else
echo "Not root, please add $RBASH to $SHELLS manually"
fi
fi
;;
esac

114
shells/bash-devel/pkg-plist Normal file
View file

@ -0,0 +1,114 @@
@comment $FreeBSD$
bin/bash
bin/rbash
bin/bashbug
%%HELP%%%%DATADIR%%/alias
%%HELP%%%%DATADIR%%/arith
%%HELP%%%%DATADIR%%/arith_for
%%HELP%%%%DATADIR%%/bg
%%HELP%%%%DATADIR%%/bind
%%HELP%%%%DATADIR%%/break
%%HELP%%%%DATADIR%%/builtin
%%HELP%%%%DATADIR%%/caller
%%HELP%%%%DATADIR%%/case
%%HELP%%%%DATADIR%%/cd
%%HELP%%%%DATADIR%%/colon
%%HELP%%%%DATADIR%%/command
%%HELP%%%%DATADIR%%/compgen
%%HELP%%%%DATADIR%%/complete
%%HELP%%%%DATADIR%%/compopt
%%HELP%%%%DATADIR%%/conditional
%%HELP%%%%DATADIR%%/continue
%%HELP%%%%DATADIR%%/coproc
%%HELP%%%%DATADIR%%/declare
%%HELP%%%%DATADIR%%/dirs
%%HELP%%%%DATADIR%%/disown
%%HELP%%%%DATADIR%%/dot
%%HELP%%%%DATADIR%%/echo
%%HELP%%%%DATADIR%%/enable
%%HELP%%%%DATADIR%%/eval
%%HELP%%%%DATADIR%%/exec
%%HELP%%%%DATADIR%%/exit
%%HELP%%%%DATADIR%%/export
%%HELP%%%%DATADIR%%/false
%%HELP%%%%DATADIR%%/fc
%%HELP%%%%DATADIR%%/fg
%%HELP%%%%DATADIR%%/fg_percent
%%HELP%%%%DATADIR%%/for
%%HELP%%%%DATADIR%%/function
%%HELP%%%%DATADIR%%/getopts
%%HELP%%%%DATADIR%%/grouping_braces
%%HELP%%%%DATADIR%%/hash
%%HELP%%%%DATADIR%%/help
%%HELP%%%%DATADIR%%/history
%%HELP%%%%DATADIR%%/if
%%HELP%%%%DATADIR%%/jobs
%%HELP%%%%DATADIR%%/kill
%%HELP%%%%DATADIR%%/let
%%HELP%%%%DATADIR%%/local
%%HELP%%%%DATADIR%%/logout
%%HELP%%%%DATADIR%%/mapfile
%%HELP%%%%DATADIR%%/popd
%%HELP%%%%DATADIR%%/printf
%%HELP%%%%DATADIR%%/pushd
%%HELP%%%%DATADIR%%/pwd
%%HELP%%%%DATADIR%%/read
%%HELP%%%%DATADIR%%/readarray
%%HELP%%%%DATADIR%%/readonly
%%HELP%%%%DATADIR%%/return
%%HELP%%%%DATADIR%%/select
%%HELP%%%%DATADIR%%/set
%%HELP%%%%DATADIR%%/shift
%%HELP%%%%DATADIR%%/shopt
%%HELP%%%%DATADIR%%/source
%%HELP%%%%DATADIR%%/suspend
%%HELP%%%%DATADIR%%/test
%%HELP%%%%DATADIR%%/test_bracket
%%HELP%%%%DATADIR%%/time
%%HELP%%%%DATADIR%%/times
%%HELP%%%%DATADIR%%/trap
%%HELP%%%%DATADIR%%/true
%%HELP%%%%DATADIR%%/type
%%HELP%%%%DATADIR%%/typeset
%%HELP%%%%DATADIR%%/ulimit
%%HELP%%%%DATADIR%%/umask
%%HELP%%%%DATADIR%%/unalias
%%HELP%%%%DATADIR%%/unset
%%HELP%%%%DATADIR%%/until
%%HELP%%%%DATADIR%%/variable_help
%%HELP%%%%DATADIR%%/wait
%%HELP%%%%DATADIR%%/while
%%HELP%%@dirrm %%DATADIR%%
%%NLS%%share/locale/af/LC_MESSAGES/bash.mo
%%NLS%%share/locale/bg/LC_MESSAGES/bash.mo
%%NLS%%share/locale/ca/LC_MESSAGES/bash.mo
%%NLS%%share/locale/cs/LC_MESSAGES/bash.mo
%%NLS%%share/locale/de/LC_MESSAGES/bash.mo
%%NLS%%share/locale/en@boldquot/LC_MESSAGES/bash.mo
%%NLS%%share/locale/en@quot/LC_MESSAGES/bash.mo
%%NLS%%share/locale/eo/LC_MESSAGES/bash.mo
%%NLS%%share/locale/es/LC_MESSAGES/bash.mo
%%NLS%%share/locale/et/LC_MESSAGES/bash.mo
%%NLS%%share/locale/fi/LC_MESSAGES/bash.mo
%%NLS%%share/locale/fr/LC_MESSAGES/bash.mo
%%NLS%%share/locale/ga/LC_MESSAGES/bash.mo
%%NLS%%share/locale/hu/LC_MESSAGES/bash.mo
%%NLS%%share/locale/id/LC_MESSAGES/bash.mo
%%NLS%%share/locale/ja/LC_MESSAGES/bash.mo
%%NLS%%share/locale/lt/LC_MESSAGES/bash.mo
%%NLS%%share/locale/nl/LC_MESSAGES/bash.mo
%%NLS%%share/locale/pl/LC_MESSAGES/bash.mo
%%NLS%%share/locale/pt_BR/LC_MESSAGES/bash.mo
%%NLS%%share/locale/ro/LC_MESSAGES/bash.mo
%%NLS%%share/locale/ru/LC_MESSAGES/bash.mo
%%NLS%%share/locale/sk/LC_MESSAGES/bash.mo
%%NLS%%share/locale/sv/LC_MESSAGES/bash.mo
%%NLS%%share/locale/tr/LC_MESSAGES/bash.mo
%%NLS%%share/locale/uk/LC_MESSAGES/bash.mo
%%NLS%%share/locale/vi/LC_MESSAGES/bash.mo
%%NLS%%share/locale/zh_CN/LC_MESSAGES/bash.mo
%%NLS%%share/locale/zh_TW/LC_MESSAGES/bash.mo
%%NLS%%@dirrmtry share/locale/en@boldquot/LC_MESSAGES
%%NLS%%@dirrmtry share/locale/en@boldquot
%%NLS%%@dirrmtry share/locale/en@quot/LC_MESSAGES
%%NLS%%@dirrmtry share/locale/en@quot