Hello community, here is the log from the commit of package bash for openSUSE:Factory checked in at 2019-03-18 10:33:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bash (Old) and /work/SRC/openSUSE:Factory/.bash.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bash" Mon Mar 18 10:33:32 2019 rev:153 rq:684640 version:5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/bash/bash.changes 2019-03-13 09:47:45.854977153 +0100 +++ /work/SRC/openSUSE:Factory/.bash.new.28833/bash.changes 2019-03-18 10:33:36.503556821 +0100 @@ -1,0 +2,37 @@ +Mon Mar 11 07:20:37 UTC 2019 - Dr. Werner Fink <[email protected]> + +- Update temporary patch from upstream to make sed testsuite + work again + +------------------------------------------------------------------- +Wed Mar 6 11:06:10 UTC 2019 - Dr. Werner Fink <[email protected]> + +- Requires(postun) -> Requires(preun) + +------------------------------------------------------------------- +Tue Mar 5 12:04:07 UTC 2019 - Dr. Werner Fink <[email protected]> + +- Do not link /bin/sh as slave alternative to /usr/bin/sh + +------------------------------------------------------------------- +Mon Mar 4 14:30:38 UTC 2019 - Dr. Werner Fink <[email protected]> + +- Add temporary patch from upstream to fix boo#1127700 + +------------------------------------------------------------------- +Mon Mar 4 10:14:12 UTC 2019 - Dr. Werner Fink <[email protected]> + +- Refine and harden update-alternatives work flow +- Move header and Makefile from bash-loadables to bash-devel + +------------------------------------------------------------------- +Fri Mar 1 14:01:16 UTC 2019 - Dr. Werner Fink <[email protected]> + +- Make update-alternatives work flawless + +------------------------------------------------------------------- +Fri Feb 8 10:30:17 UTC 2019 - Jan Engelhardt <[email protected]> + +- Put "sh" under control of update-alternatives + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bash.spec ++++++ --- /var/tmp/diff_new_pack.lqa5HT/_old 2019-03-18 10:33:37.435556589 +0100 +++ /var/tmp/diff_new_pack.lqa5HT/_new 2019-03-18 10:33:37.439556588 +0100 @@ -20,18 +20,6 @@ %bcond_with sjis Name: bash -BuildRequires: audit-devel -BuildRequires: autoconf -BuildRequires: bison -BuildRequires: fdupes -BuildRequires: makeinfo -BuildRequires: ncurses-devel -BuildRequires: patchutils -BuildRequires: pkg-config -# This has to be always the same version as included in the bash its self -BuildRequires: readline-devel == 8.0 -BuildRequires: screen -BuildRequires: sed %define bextend %nil Version: 5.0 Release: 0 @@ -84,6 +72,21 @@ Patch48: bash-4.3-extra-import-func.patch # PATCH-EXTEND-SUSE Allow root to clean file system if filled up Patch49: bash-4.3-pathtemp.patch +BuildRequires: audit-devel +BuildRequires: autoconf +BuildRequires: bison +BuildRequires: fdupes +BuildRequires: makeinfo +BuildRequires: ncurses-devel +BuildRequires: patchutils +BuildRequires: pkg-config +# This has to be always the same version as included in the bash its self +BuildRequires: readline-devel == 8.0 +BuildRequires: screen +BuildRequires: sed +BuildRequires: update-alternatives +Requires(post): update-alternatives +Requires(preun): update-alternatives %global _sysconfdir /etc %global _incdir %{_includedir} %global _ldldir /%{_lib}/bash @@ -126,8 +129,8 @@ %description devel This package contains the C header files for writing loadable new -builtins for the interpreter Bash. Use -I /usr/include/bash/<version> -on the compilers command line. +builtins for the interpreter Bash. Use the output of the command +`pkg-config bash --cflags' on the compilers command line. %package loadables Summary: Loadable bash builtins @@ -433,19 +436,24 @@ %install %make_install make -C examples/loadables/ install-supported DESTDIR=%{buildroot} libdir=/%{_lib} + mv -vf %{buildroot}%{_ldldir}/*.h %{buildroot}%{_includedir}/bash/ + mv -vf %{buildroot}%{_ldldir}/*.inc %{buildroot}%{_datadir}/bash rm -rf %{buildroot}%{_libdir}/bash rm -rf %{buildroot}/%{_lib}/pkgconfig sed -ri '/CC = gcc/s@(CC = gcc).*@\1@' %{buildroot}%{_libdir}/pkgconfig/bash.pc mkdir -p %{buildroot}/bin - mv %{buildroot}%{_bindir}/bash %{buildroot}/bin/ -%if %_minsh - install sh %{buildroot}/bin/sh - ln -sf ../../bin/sh %{buildroot}%{_bindir}/sh -%else - ln -sf bash %{buildroot}/bin/sh - ln -sf ../../bin/bash %{buildroot}%{_bindir}/sh -%endif - ln -sf ../../bin/bash %{buildroot}%{_bindir}/rbash + mkdir -p %{buildroot}%{_sysconfdir}/alternatives +# +# It should be noted that the move of /bin/bash to /usr/bin/bash +# had NOT done by me at 2019/02/08. Now only a symbolic link +# remains here :( +# The same had happen for the system POSIX shell /bin/sh +# + ln -sf %{_bindir}/bash %{buildroot}%{_sysconfdir}/alternatives/sh + ln -sf %{_bindir}/bash %{buildroot}/bin/bash + ln -sf %{_bindir}/sh %{buildroot}/bin/sh + ln -sf bash %{buildroot}%{_bindir}/rbash + ln -sf bash %{buildroot}%{_bindir}/sh install -m 644 COMPAT NEWS %{buildroot}%{_docdir}/%{name} install -m 644 COPYING %{buildroot}%{_docdir}/%{name} install -m 644 doc/FAQ %{buildroot}%{_docdir}/%{name} @@ -482,6 +490,15 @@ %find_lang bash %fdupes -s %{buildroot}%{_datadir}/bash/helpfiles +%post -p /bin/bash +%{_sbindir}/update-alternatives --quiet --force \ + --install %{_bindir}/sh sh %{_bindir}/bash 10100 + +%preun -p /bin/bash +if test "$1" = 0; then + %{_sbindir}/update-alternatives --quiet --remove sh %{_bindir}/bash +fi + %post doc %install_info --info-dir=%{_infodir} %{_infodir}/bash.info.gz @@ -491,7 +508,7 @@ %clean LD_LIBRARY_PATH=%{buildroot}/%{_lib} \ ldd -u -r %{buildroot}/bin/bash || true -%{?buildroot: %{__rm} -rf %{buildroot}} +%{?buildroot: %__rm -rf %{buildroot}} %files %defattr(-,root,root) @@ -499,12 +516,14 @@ %config %attr(600,root,root) %{_sysconfdir}/skel/.bash_history %config %attr(644,root,root) %{_sysconfdir}/skel/.bashrc %config %attr(644,root,root) %{_sysconfdir}/skel/.profile +%ghost %config %{_sysconfdir}/alternatives/sh +%dir %{_sysconfdir}/bash_completion.d /bin/bash /bin/sh -%dir %{_sysconfdir}/bash_completion.d +%{_bindir}/bash %{_bindir}/bashbug %{_bindir}/rbash -%{_bindir}/sh +%verify(not link mtime) %{_bindir}/sh %dir %{_datadir}/bash %dir %{_datadir}/bash/helpfiles %{_datadir}/bash/helpfiles/* @@ -521,18 +540,16 @@ %doc %{_mandir}/man1/rbash.1* %doc %{_docdir}/%{name} -%if 0%suse_version >= 1020 %files devel %defattr(-,root,root) -%dir /%{_includedir}/bash/ -%dir /%{_includedir}/bash/ -%dir /%{_includedir}/bash/builtins/ -%dir /%{_includedir}/bash/include/ -/%{_incdir}/bash/*.h -/%{_incdir}/bash/builtins/*.h -/%{_incdir}/bash/include/*.h +%dir %{_includedir}/bash/ +%dir %{_includedir}/bash/builtins/ +%dir %{_includedir}/bash/include/ +%{_incdir}/bash/*.h +%{_incdir}/bash/builtins/*.h +%{_incdir}/bash/include/*.h %{_libdir}/pkgconfig/bash.pc -%endif +%{_datadir}/bash/*.inc %files loadables %defattr(-,root,root) ++++++ bash-5.0-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-001 new/bash-5.0-patches/bash50-001 --- old/bash-5.0-patches/bash50-001 2019-01-18 21:02:46.000000000 +0100 +++ new/bash-5.0-patches/bash50-001 2019-02-07 16:07:38.279394853 +0100 @@ -16,7 +16,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.0/bashline.c 2018-11-27 13:20:16.000000000 -0500 +*** bashline.c 2018-11-27 13:20:16.000000000 -0500 --- bashline.c 2019-01-16 16:06:03.000000000 -0500 *************** *** 232,235 **** @@ -127,7 +127,7 @@ ! if (t && completion_glob_pattern (t) == 0) rl_explicit_arg = 1; /* XXX - force glob_complete_word to append `*' */ FREE (t); -*** ../bash-5.0/lib/glob/glob_loop.c 2018-12-31 13:35:15.000000000 -0500 +*** lib/glob/glob_loop.c 2018-12-31 13:35:15.000000000 -0500 --- lib/glob/glob_loop.c 2019-01-09 09:44:36.000000000 -0500 *************** *** 55,59 **** @@ -149,7 +149,7 @@ } --- 60,63 ---- -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-002 new/bash-5.0-patches/bash50-002 --- old/bash-5.0-patches/bash50-002 2019-01-18 21:03:00.000000000 +0100 +++ new/bash-5.0-patches/bash50-002 2019-02-07 16:07:38.347393579 +0100 @@ -16,7 +16,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.0/parser.h 2018-12-28 19:11:18.000000000 -0500 +*** parser.h 2018-12-28 19:11:18.000000000 -0500 --- parser.h 2019-01-11 15:13:03.000000000 -0500 *************** *** 48,51 **** @@ -26,7 +26,7 @@ + #define PST_ENDALIAS 0x200000 /* just finished expanding and consuming an alias */ /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */ -*** ../bash-5.0/parse.y 2019-01-02 13:57:34.000000000 -0500 +*** parse.y 2019-01-02 13:57:34.000000000 -0500 --- parse.y 2019-01-14 08:23:31.000000000 -0500 *************** *** 2558,2567 **** @@ -61,7 +61,7 @@ + parser_state &= ~PST_ENDALIAS; pop_string (); uc = shell_input_line[shell_input_line_index]; -*** ../bash-5.0/y.tab.c 2019-01-02 13:57:43.000000000 -0500 +*** y.tab.c 2019-01-02 13:57:43.000000000 -0500 --- y.tab.c 2019-01-14 08:39:23.000000000 -0500 *************** *** 4874,4883 **** @@ -96,7 +96,7 @@ + parser_state &= ~PST_ENDALIAS; pop_string (); uc = shell_input_line[shell_input_line_index]; -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/globpat-backslashes.patch new/bash-5.0-patches/globpat-backslashes.patch --- old/bash-5.0-patches/globpat-backslashes.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.0-patches/globpat-backslashes.patch 2019-03-11 08:17:46.738836000 +0100 @@ -0,0 +1,206 @@ +*** ../bash-5.0-patched/lib/glob/glob_loop.c 2019-01-16 16:13:21.000000000 -0500 +--- lib/glob/glob_loop.c 2019-02-01 09:45:11.000000000 -0500 +*************** +*** 27,34 **** + register const GCHAR *p; + register GCHAR c; +! int bopen; + + p = pattern; +! bopen = 0; + + while ((c = *p++) != L('\0')) +--- 27,34 ---- + register const GCHAR *p; + register GCHAR c; +! int bopen, bsquote; + + p = pattern; +! bopen = bsquote = 0; + + while ((c = *p++) != L('\0')) +*************** +*** 56,66 **** + case L('\\'): + /* Don't let the pattern end in a backslash (GMATCH returns no match +! if the pattern ends in a backslash anyway), but otherwise return 1, +! since the matching engine uses backslash as an escape character +! and it can be removed. */ +! return (*p != L('\0')); + } + +! return 0; + } + +--- 56,75 ---- + case L('\\'): + /* Don't let the pattern end in a backslash (GMATCH returns no match +! if the pattern ends in a backslash anyway), but otherwise note that +! we have seen this, since the matching engine uses backslash as an +! escape character and it can be removed. We return 2 later if we +! have seen only backslash-escaped characters, so interested callers +! know they can shortcut and just dequote the pathname. */ +! if (*p != L('\0')) +! { +! p++; +! bsquote = 1; +! continue; +! } +! else /* (*p == L('\0')) */ +! return 0; + } + +! return bsquote ? 2 : 0; + } + +*** ../bash-5.0-patched/lib/glob/glob.h 2013-10-28 14:46:12.000000000 -0400 +--- lib/glob/glob.h 2019-03-07 11:06:47.000000000 -0500 +*************** +*** 31,34 **** +--- 31,35 ---- + #define GX_ADDCURDIR 0x200 /* internal -- add passed directory name */ + #define GX_GLOBSTAR 0x400 /* turn on special handling of ** */ ++ #define GX_RECURSE 0x800 /* internal -- glob_filename called recursively */ + + extern int glob_pattern_p __P((const char *)); +*** ../bash-5.0-patched/lib/glob/glob.c 2018-09-20 10:53:23.000000000 -0400 +--- lib/glob/glob.c 2019-03-07 14:23:43.000000000 -0500 +*************** +*** 1062,1066 **** + unsigned int directory_len; + int free_dirname; /* flag */ +! int dflags; + + result = (char **) malloc (sizeof (char *)); +--- 1078,1082 ---- + unsigned int directory_len; + int free_dirname; /* flag */ +! int dflags, hasglob; + + result = (char **) malloc (sizeof (char *)); +*************** +*** 1111,1117 **** + } + + /* If directory_name contains globbing characters, then we +! have to expand the previous levels. Just recurse. */ +! if (directory_len > 0 && glob_pattern_p (directory_name)) + { + char **directories, *d, *p; +--- 1127,1136 ---- + } + ++ hasglob = 0; + /* If directory_name contains globbing characters, then we +! have to expand the previous levels. Just recurse. +! If glob_pattern_p returns != [0,1] we have a pattern that has backslash +! quotes but no unquoted glob pattern characters. We dequote it below. */ +! if (directory_len > 0 && (hasglob = glob_pattern_p (directory_name)) == 1) + { + char **directories, *d, *p; +*************** +*** 1176,1180 **** + d[directory_len - 1] = '\0'; + +! directories = glob_filename (d, dflags); + + if (free_dirname) +--- 1195,1199 ---- + d[directory_len - 1] = '\0'; + +! directories = glob_filename (d, dflags|GX_RECURSE); + + if (free_dirname) +*************** +*** 1333,1336 **** +--- 1352,1369 ---- + return (NULL); + } ++ /* If we have a directory name with quoted characters, and we are ++ being called recursively to glob the directory portion of a pathname, ++ we need to dequote the directory name before returning it so the ++ caller can read the directory */ ++ if (directory_len > 0 && hasglob == 2 && (flags & GX_RECURSE) != 0) ++ { ++ dequote_pathname (directory_name); ++ directory_len = strlen (directory_name); ++ } ++ ++ /* We could check whether or not the dequoted directory_name is a ++ directory and return it here, returning the original directory_name ++ if not, but we don't do that yet. I'm not sure it matters. */ ++ + /* Handle GX_MARKDIRS here. */ + result[0] = (char *) malloc (directory_len + 1); +*** ../bash-5.0-patched/pathexp.c 2018-04-29 17:44:48.000000000 -0400 +--- pathexp.c 2019-01-31 20:19:41.000000000 -0500 +*************** +*** 66,74 **** + register int c; + char *send; +! int open; + + DECLARE_MBSTATE; + +! open = 0; + send = string + strlen (string); + +--- 66,74 ---- + register int c; + char *send; +! int open, bsquote; + + DECLARE_MBSTATE; + +! open = bsquote = 0; + send = string + strlen (string); + +*************** +*** 101,105 **** + globbing. */ + case '\\': +! return (*string != 0); + + case CTLESC: +--- 101,112 ---- + globbing. */ + case '\\': +! if (*string != '\0' && *string != '/') +! { +! bsquote = 1; +! string++; +! continue; +! } +! else if (*string == 0) +! return (0); + + case CTLESC: +*************** +*** 118,122 **** + #endif + } +! return (0); + } + +--- 125,130 ---- + #endif + } +! +! return (bsquote ? 2 : 0); + } + +*** ../bash-5.0-patched/bashline.c 2019-01-16 16:13:21.000000000 -0500 +--- bashline.c 2019-02-22 09:29:08.000000000 -0500 +*************** +*** 3753,3757 **** + + case '\\': +! if (*string == 0) + return (0); + } +--- 3766,3770 ---- + + case '\\': +! if (*string++ == 0) + return (0); + }
