Hello community,

here is the log from the commit of package bash for openSUSE:Factory checked in 
at 2015-10-28 17:15:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bash (Old)
 and      /work/SRC/openSUSE:Factory/.bash.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bash"

Changes:
--------
--- /work/SRC/openSUSE:Factory/bash/bash.changes        2015-09-11 
09:00:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.bash.new/bash.changes   2015-10-28 
17:15:12.000000000 +0100
@@ -1,0 +2,15 @@
+Mon Oct 19 13:38:58 UTC 2015 - wer...@suse.de
+
+- Define the USE_MKTEMP and USE_MKSTEMP cpp macros as the
+  implementation is already there.
+- Add patch bash-4.3-pathtemp.patch to allow root to clear the
+  file systems.  Otherwise the completion does not work if /tmp
+  if full (ENOSPC for here documents)
+
+-------------------------------------------------------------------
+Fri Oct 16 13:02:27 UTC 2015 - wer...@suse.de
+
+- Remove --hash-size options as there is no any change in the final
+  binary nor library anymore
+
+-------------------------------------------------------------------

New:
----
  bash-4.3-pathtemp.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bash.spec ++++++
--- /var/tmp/diff_new_pack.g96QeS/_old  2015-10-28 17:15:13.000000000 +0100
+++ /var/tmp/diff_new_pack.g96QeS/_new  2015-10-28 17:15:13.000000000 +0100
@@ -99,6 +99,8 @@
 Patch47:        bash-4.3-perl522.patch
 # PATCH-FIX-SUSE
 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
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %global         _sysconfdir /etc
 %global         _incdir     %{_includedir}
@@ -319,6 +321,7 @@
 %if %{with import_function}
 %patch48
 %endif
+%patch49
 %patch0  -p0 -b .0
 pushd ../readline-%{rl_vers}%{extend}
 for patch in ../readline-%{rl_vers}-patches/*; do
@@ -397,13 +400,7 @@
       esac
       set +o noclobber
   }
-  echo 'int main () { return !(sizeof(void*) >= 8); }' | gcc -x c -o test64 -
-  if ./test64 ; then
-      LARGEFILE=""
-  else
-      LARGEFILE="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-  fi
-  rm -f ./test64
+  LARGEFILE="$(getconf LFS_CFLAGS)"
   (cat > dyn.map)<<-'EOF'
        {
            *;
@@ -442,7 +439,6 @@
   cflags -DIMPORT_FUNCTIONS_DEF=0 CFLAGS
   cflags -Wl,--as-needed         LDFLAGS
   cflags -Wl,-O2                 LDFLAGS
-  cflags -Wl,--hash-size=8599    LDFLAGS
   cflags -Wl,-rpath,%{_ldldir}/%{bash_vers}   LDFLAGS
   cflags -Wl,--version-script=${PWD}/rl.map   LDFLAGS
   cflags -Wl,--dynamic-list=${PWD}/dyn.map    LDFLAGS
@@ -474,7 +470,6 @@
   ln -sf ../readline-%{rl_vers} readline
   LD_LIBRARY_PATH=$PWD/../readline-%{rl_vers}
   export LD_LIBRARY_PATH
-  LDFLAGS="${LDFLAGS/hash-size=8599/hash-size=16699}"
   CC="gcc -I$PWD -L$PWD/../readline-%{rl_vers}"
 %if %_minsh
   cflags -Os CFLAGS

++++++ bash-4.3-pathtemp.patch ++++++
---
 lib/sh/tmpfile.c |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

--- lib/sh/tmpfile.c
+++ lib/sh/tmpfile.c    2015-10-19 13:35:30.869518731 +0000
@@ -36,6 +36,14 @@
 #include <stdio.h>
 #include <errno.h>
 
+#if defined(__linux__)
+#  include <sys/statfs.h>
+#  include <unistd.h>
+#  ifndef  TMPFS_MAGIC
+#    define TMPFS_MAGIC 0x01021994
+#  endif
+#endif
+
 #include <shell.h>
 
 #ifndef errno
@@ -60,6 +68,8 @@ static unsigned long filenum = 1L;
 static char *
 get_sys_tmpdir ()
 {
+  static int doshm;
+
   if (sys_tmpdir)
     return sys_tmpdir;
 
@@ -86,6 +96,31 @@ get_sys_tmpdir ()
   return sys_tmpdir;
 }
 
+#if defined(__linux__)
+static int
+emergency_sys_tmpdir ()
+{
+  static char *shm = "/dev/shm";
+  static size_t pgsz;
+  struct statfs fs;
+  static int doshm;
+
+  if (getuid() != 0)
+    return 0;
+
+  if (doshm)
+    return 0;
+
+  doshm++;
+
+  if (statfs(shm, &fs) < 0 || fs.f_type != TMPFS_MAGIC || eaccess(shm, 
W_OK|X_OK))
+    return 0;
+         
+  sys_tmpdir = shm;
+  return 1;
+}
+#endif
+
 static char *
 get_tmpdir (flags)
      int flags;
@@ -164,6 +199,7 @@ sh_mktmpfd (nameroot, flags, namep)
   int fd, tdlen;
 
   filename = (char *)xmalloc (PATH_MAX + 1);
+enospace:
   tdir = get_tmpdir (flags);
   tdlen = strlen (tdir);
 
@@ -177,6 +213,10 @@ sh_mktmpfd (nameroot, flags, namep)
       free (filename);
       filename = NULL;
     }
+
+  if (fd < 0 && errno == ENOSPC && emergency_sys_tmpdir())
+    goto enospace;
+
   if (namep)
     *namep = filename;
   return fd;
@@ -194,6 +234,9 @@ sh_mktmpfd (nameroot, flags, namep)
     }
   while (fd < 0 && errno == EEXIST);
 
+  if (fd < 0 && errno == ENOSPC && emergency_sys_tmpdir())
+    goto enospace;
+
   if (namep)
     *namep = filename;
   else
++++++ bash-4.3.dif ++++++
--- /var/tmp/diff_new_pack.g96QeS/_old  2015-10-28 17:15:14.000000000 +0100
+++ /var/tmp/diff_new_pack.g96QeS/_new  2015-10-28 17:15:14.000000000 +0100
@@ -49,6 +49,17 @@
  
  /* Define if you want the case-capitalizing operators (~[~]) and the
     `capcase' variable attribute (declare -c). */
+@@ -132,3 +136,10 @@
+ /* Define to 1 if you want to be able to export indexed arrays to processes
+    using the foo=([0]=one [1]=two) and so on */
+ /* #define ARRAY_EXPORT 1 */
++
++#ifndef USE_MKTEMP
++#  define USE_MKTEMP
++#endif
++#ifndef USE_MKSTEMP
++#  define USE_MKSTEMP
++#endif
 --- doc/Makefile.in
 +++ doc/Makefile.in    2006-03-27 12:15:25.000000000 +0000
 @@ -146,7 +146,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $


Reply via email to