Hello community,
here is the log from the commit of package ksh for openSUSE:Factory
checked in at Fri Jun 17 15:26:20 CEST 2011.
--------
--- ksh/ksh.changes 2011-06-01 11:33:24.000000000 +0200
+++ /mounts/work_src_done/STABLE/ksh/ksh.changes 2011-06-17 12:32:42.000000000 +0200
@@ -1,0 +2,18 @@
+Tue Jun 14 11:36:28 UTC 2011 - werner@suse.de
+
+- Fix off by one error which should make timetype.sh work now
+- Update the array fix as well as the pipe fix
+- This also fixes bnc#677790
+
+-------------------------------------------------------------------
+Fri Jun 10 19:11:07 CEST 2011 - werner@suse.de
+
+- Avoid redirection in subshell if an eval was used (bnc#697394)
+
+-------------------------------------------------------------------
+Wed Jun 8 15:14:46 CEST 2011 - werner@suse.de
+
+- Extend Shift.JIS patch to avoid breakage of the parsers above
+- Avoid mounting 3D file system as this does not exist on linux
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
ksh93-argv.dif
ksh93-pipe.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksh.spec ++++++
--- /var/tmp/diff_new_pack.B6V6VG/_old 2011-06-17 15:24:36.000000000 +0200
+++ /var/tmp/diff_new_pack.B6V6VG/_new 2011-06-17 15:24:36.000000000 +0200
@@ -37,7 +37,7 @@
%endif
AutoReqProv: on
Version: 93t
-Release: 196
+Release: 198
Summary: Korn Shell
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: INIT.2010-06-21.tar.bz2
@@ -75,6 +75,8 @@
Patch21: ksh93-export.dif
Patch22: ksh93-eintr.dif
Patch23: ksh93-array.dif
+Patch24: ksh93-pipe.dif
+Patch25: ksh93-argv.dif
%global use_suid_exe 0
%global use_locale 1
%global debug_memleak 0
@@ -149,11 +151,11 @@
%patch21
%patch22
%patch23
+%patch24
+%patch25
%build
TMPDIR=$(mktemp -d /tmp/ksh-build.XXXXXX) || exit 1
- mkdir ${TMPDIR}/bin || exit 1
- PATH=${TMPDIR}/bin:$PATH
typeset -i IGNORED=0x$(ps --no-headers -o ignored $$)
typeset -i SIGPIPE=0x1000
if ((IGNORED & SIGPIPE)) ; then
@@ -243,6 +245,7 @@
feature=${TMPDIR:-/tmp}/feature.h
set -C
(cat > $feature)<<-'EOF'
+ #define SHOPT_FS_3D 0
#define SHOPT_SYSRC 1
#define SHOPT_REMOTE 1
#define SHOPT_CMDLIB_BLTIN 1
@@ -257,32 +260,40 @@
cat $feature
#
#
- echo 'int main () { return !(sizeof(void*) >= 8); }' | $CC -x c -o test64 -
- if ./test64 ; then
- LARGEFILE=""
- else
- LARGEFILE="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
- fi
- rm -f ./test64
- case "$RPM_ARCH" in
- ia64) RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}" ;;
- s390*) RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}" ;;
- ppc*|powerpc*)
- RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}" ;;
- esac
+ LARGEFILE="$(getconf LFS_CFLAGS)"
case "$RPM_ARCH" in
+ i[3456]86)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O2} -m32"
+ HOSTTYPE=linux.i386
+ ;;
+ x86_64)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O2} -m64"
+ HOSTTYPE=linux.i386-64
+ ;;
+ ia64)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}"
+ HOSTTYPE=linux.ia64
+ ;;
+ s390)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O} -m31"
+ HOSTTYPE=linux.s390
+ ;;
+ s390*)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O} -m64"
+ HOSTTYPE=linux.s390-64
+ ;;
ppc|powerpc)
- set -C
- (cat > ${TMPDIR:-/tmp}/gcc)<<-EOF
- #!/bin/sh
- case "$@" in
- *-dumpmachine*)
- echo powerpc-suse-linux ;;
- *) exec -a gcc gcc ${1+"$@"}
- esac
- EOF
- set +C
- chmod +x ${TMPDIR:-/tmp}/gcc
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O} -mno-powerpc64"
+ HOSTTYPE=linux.powerpc
+ ;;
+ ppc64|powerpc64)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O} -mpowerpc64"
+ HOSTTYPE=linux.powerpc64
+ ;;
+ *)
+ RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}"
+ HOSTTYPE=linux.$RPM_ARCH
+ ;;
esac
RPM_OPT_FLAGS=$(echo "${RPM_OPT_FLAGS}"|sed -r 's/[[:blank:]]+-g[0-9]?/ -g2/g')
UNIVERSE=att
@@ -305,7 +316,6 @@
cflags -Wl,-rpath,/%{_lib}/ast LDSOFLG
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE $LARGEFILE"
RPM_OPT_FLAGS="$RPM_OPT_FLAGS $IGNORE $FEATURE"
- HOSTTYPE=linux.${RPM_ARCH}
mam_cc_L=use
mam_cc_OPTIMIZE=-pipe
export mam_cc_L mam_cc_OPTIMIZE HOSTTYPE LDFLAGS RPM_OPT_FLAGS UNIVERSE
++++++ ksh93-argv.dif ++++++
--- src/cmd/ksh93/sh/xec.c
+++ src/cmd/ksh93/sh/xec.c 2011-06-14 13:31:32.471925963 +0200
@@ -2914,7 +2914,7 @@ int sh_fun(Namval_t *np, Namval_t *nq, c
long mode;
char *prefix = shp->prefix;
int n=0;
- char *av[2];
+ char *av[3];
Fcin_t save;
fcsave(&save);
if((offset=staktell())>0)
@@ -2922,7 +2922,7 @@ int sh_fun(Namval_t *np, Namval_t *nq, c
shp->prefix = 0;
if(!argv)
{
- argv = av;
+ argv = av+1;
argv[1]=0;
}
argv[0] = nv_name(np);
++++++ ksh93-array.dif ++++++
--- /var/tmp/diff_new_pack.B6V6VG/_old 2011-06-17 15:24:36.000000000 +0200
+++ /var/tmp/diff_new_pack.B6V6VG/_new 2011-06-17 15:24:36.000000000 +0200
@@ -49,3 +49,14 @@
{
if((ap->header.nelem&ARRAY_NOCHILD) && nv_isattr(ap->cur,NV_CHILD))
continue;
+--- src/cmd/ksh93/sh/xec.c
++++ src/cmd/ksh93/sh/xec.c 2011-06-14 13:31:32.471925963 +0200
+@@ -680,7 +680,7 @@ static int set_instance(Shell_t *shp,Nam
+ char *sp=0,*cp;
+ Namarr_t *ap;
+ Namval_t *np;
+- if(!nv_isattr(nq,NV_MINIMAL|NV_EXPORT) && (np=(Namval_t*)nq->nvenv) && nv_isarray(np))
++ if(!nv_isattr(nq,NV_MINIMAL|NV_EXPORT|NV_ARRAY) && (np=(Namval_t*)nq->nvenv) && nv_isarray(np))
+ nq = np;
+ cp = nv_name(nq);
+ memset(nr,0,sizeof(*nr));
++++++ ksh93-eintr.dif ++++++
--- /var/tmp/diff_new_pack.B6V6VG/_old 2011-06-17 15:24:36.000000000 +0200
+++ /var/tmp/diff_new_pack.B6V6VG/_new 2011-06-17 15:24:36.000000000 +0200
@@ -47,17 +47,6 @@
}
/*
---- src/cmd/ksh93/sh/subshell.c
-+++ src/cmd/ksh93/sh/subshell.c 2011-04-29 15:34:13.747926082 +0200
-@@ -235,7 +235,7 @@
- if(!sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
- return(np);
- /* don't bother to save if in newer scope */
-- if(sp->var!=shp->var_tree && sp->var!=shp->var_base && shp->last_root==shp->var_tree)
-+ if(sp->var!=shp->var_tree && shp->last_root==shp->var_tree)
- return(np);
- if((ap=nv_arrayptr(np)) && (mp=nv_opensub(np)))
- {
--- src/cmd/ksh93/sh/xec.c
+++ src/cmd/ksh93/sh/xec.c 2011-05-03 15:02:23.411926136 +0200
@@ -53,6 +53,7 @@
++++++ ksh93-pipe.dif ++++++
--- src/cmd/ksh93/include/defs.h
+++ src/cmd/ksh93/include/defs.h 2011-06-10 17:37:22.852426230 +0200
@@ -154,7 +154,7 @@ struct limits
pid_t bckpid; /* background process id */ \
pid_t cpid; \
pid_t pipepid; \
- int32_t ppid; /* parent process id of shell */ \
+ pid_t ppid; /* parent process id of shell */ \
int topfd; \
int sigmax; /* maximum number of signals */ \
int savesig; \
--- src/cmd/ksh93/sh/io.c
+++ src/cmd/ksh93/sh/io.c 2011-06-10 18:13:02.511926423 +0200
@@ -1076,15 +1076,18 @@ int sh_redirect(Shell_t *shp,struct iono
message = e_file;
goto fail;
}
- if(shp->subshell && dupfd==1 && (sfset(sfstdout,0,0)&SF_STRING))
+ if(shp->subshell && dupfd==1)
{
if(sfset(sfstdout,0,0)&SF_STRING)
sh_subtmpfile(shp);
- shp->subdup |= 1<< fn;
+ if(shp->comsub==1)
+ shp->subdup |= 1<< fn;
dupfd = sffileno(sfstdout);
}
else if(shp->sftable[dupfd])
sfsync(shp->sftable[dupfd]);
+ if(dupfd!=1 && fn < 10)
+ shp->subdup &= ~(1<