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);           
+       }


Reply via email to