Well done Ulrich!

I got this up and running on 
Ubuntu 12.10 (not suprising due to debian base)
Managed to run the first example script from the dtksh book too.

Peter

On Fri, Mar 29, 2013 at 05:41:19PM +0100, Ulrich Wilkens wrote:
> 
> Hello,
> 
> here's the announced patch for dtksh. It allows building on many
> more platforms.
> 
> The patch has been tested on:
> 
> - FreeBSD 9.0 i386 + amd64
> - FreeBSD >= 9.1 i386 + amd64
> - OpenBSD 5.1 i386
> - Xubuntu 12.04 i386 + amd64
> - Debian Squeeze 6.0 i386   *)
> - Fedora 17 i386
> 
> On other linux distributions it may also work.
> 
> 
> *) The ksh of Debian Squeeze (ksh93s) seems to be broken. Dtksh cannot
>    be build with this version. I installed the ksh package from Debian
>    Wheezy (ksh93u) and then it's ok.
> 
> 
> 
> -- 
> Ulrich Wilkens
> Email: m...@uwilkens.de
> 

> >From 3aadeb5bbc5547ea0bd1be2565724e9b455b9a47 Mon Sep 17 00:00:00 2001
> From: Ulrich Wilkens <m...@uwilkens.de>
> Date: Tue, 26 Mar 2013 04:08:13 +0100
> Subject: [PATCH] Build dtksh on more OSs
> 
> ---
>  cde/programs/Imakefile                             |    2 +-
>  cde/programs/dtksh/Imakefile                       |    9 ++++-----
>  cde/programs/dtksh/ksh93/Imakefile                 |    2 +-
>  cde/programs/dtksh/ksh93/ship/shipiffe.sh          |    2 +-
>  .../dtksh/ksh93/src/lib/libast/comp/conf.tab       |    4 ++++
>  cde/programs/dtksh/ksh93/src/lib/libast/conf.tab   |    4 ++++
>  .../dtksh/ksh93/src/lib/libast/features/lib        |    4 ++--
>  .../dtksh/ksh93/src/lib/libast/features/tty        |    2 ++
>  .../dtksh/ksh93/src/lib/libast/include/ast.h       |    8 ++++++++
>  .../dtksh/ksh93/src/lib/libast/include/ast_std.h   |    2 ++
>  .../dtksh/ksh93/src/lib/libast/include/sfio.h      |    2 ++
>  .../dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c    |    2 +-
>  .../dtksh/ksh93/src/lib/libcmd/features/symlink    |    9 ++++++++-
>  13 files changed, 40 insertions(+), 12 deletions(-)
> 
> diff --git a/cde/programs/Imakefile b/cde/programs/Imakefile
> index f628ce3..b04800f 100644
> --- a/cde/programs/Imakefile
> +++ b/cde/programs/Imakefile
> @@ -10,7 +10,7 @@ EXTRADIRS = types localized tttypes $(NSGMLSDIR) util
>  XCOMM some of these cannot be built on linux yet.
>  XCOMM dtksh dtinfo
>  #if defined(LinuxArchitecture)
> -DTKSHDIR = 
> +DTKSHDIR = dtksh
>  DTINFODIR = 
>  DTCMDIR = dtcm
>  DTLOGINDIR = dtlogin
> diff --git a/cde/programs/dtksh/Imakefile b/cde/programs/dtksh/Imakefile
> index f5071a3..b20ae7a 100644
> --- a/cde/programs/dtksh/Imakefile
> +++ b/cde/programs/dtksh/Imakefile
> @@ -61,16 +61,15 @@ EXTRA_INCLUDES = -I$(DTHELPSRC) -I$(DTPRINTSRC)
>  .NO_PARALLEL:
>  #endif
>  
> +#ifdef LinuxArchitecture
> +SYS_LIBRARIES = -lm -ldl
> +#endif
> +
>  #define IHaveSubdirs
>  #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
>  
> -#if defined(LinuxArchitecture)
> -SUBDIRS = examples
> -KSH93OBJ =
> -#else
>  SUBDIRS = examples ksh93
>  KSH93OBJ = $(KSH93SRC)/ksh93.o
> -#endif
>  
>  MakeSubdirs($(SUBDIRS))
>  
> diff --git a/cde/programs/dtksh/ksh93/Imakefile 
> b/cde/programs/dtksh/ksh93/Imakefile
> index 9e10032..3677918 100644
> --- a/cde/programs/dtksh/ksh93/Imakefile
> +++ b/cde/programs/dtksh/ksh93/Imakefile
> @@ -56,7 +56,7 @@ ALL_SUBS = *
>  
>  ksh93src:
>       $(RM) $(SHIP_DIR)/$(ALL_SUBS)/$(ALL_SUBS)/BUILT; \
> -     SHELL=$(KORNSHELL) CC=$(CC) CCFLAGS="$(CCFLAGS)" $(KORNSHELL) 
> ship/shipin $(FORCE_SHIP)
> +     SHELL=$(KORNSHELL) CC="$(CC)" CCFLAGS="$(CCFLAGS)" $(KORNSHELL) 
> ship/shipin $(FORCE_SHIP)
>  
>  ksh93.o: $(OBJS)
>       $(LD) -r -o $@ $(OBJS)
> diff --git a/cde/programs/dtksh/ksh93/ship/shipiffe.sh 
> b/cde/programs/dtksh/ksh93/ship/shipiffe.sh
> index 41a10a6..a443980 100644
> --- a/cde/programs/dtksh/ksh93/ship/shipiffe.sh
> +++ b/cde/programs/dtksh/ksh93/ship/shipiffe.sh
> @@ -1103,7 +1103,7 @@ $inc
>                                       *)      e='-e 
> /[\\\\/]sys[\\\\/]'$x'\.h"/d' ;;
>                                       esac
>                                       if      $cc -E $tmp.c <&$nullin >$tmp.i
> -                                     then    i=`sed -e '/^#[line     
> ]*[0-9][0-9]*[  ][      ]*"[\\\\/].*[\\\\/]'$x'\.h"/!d' $e -e 
> s'/.*"\(.*\)".*/\1/' -e 's,\\\\,/,g' -e 's,///*,/,g' $tmp.i | sort -u`
> +                                     then    i=`sed -e '/^#[line     
> ]*[0-9][0-9]*[  ][      ]*"[\\\\/].*[\\\\/]'$x'\.h"/!d' $e -e '/\/bits\//d' 
> -e s'/.*"\(.*\)".*/\1/' -e 's,\\\\,/,g' -e 's,///*,/,g' $tmp.i | sort -u`
>                                               for i in $i
>                                               do      break
>                                               done
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/comp/conf.tab 
> b/cde/programs/dtksh/ksh93/src/lib/libast/comp/conf.tab
> index b63580f..90f87ad 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/comp/conf.tab
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/comp/conf.tab
> @@ -235,7 +235,11 @@ OPEN_MAX_CEIL            50      AST     XX 1 L          
> OPEN_MAX
>  OS_VERSION           119     AES     SC 1 FSU
>  PAGESIZE             51      POSIX   SC 1 L          PAGE_SIZE 4096
>       #if _lib_getpagesize
> +     #if defined(linux)
> +     extern int              getpagesize(void);
> +     #else
>       extern ssize_t          getpagesize(void);
> +     #endif
>       #define _LOCAL_PAGESIZE getpagesize()
>       #endif
>  PAGE_SIZE            101     XOPEN   SC 1 L          PAGESIZE
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/conf.tab 
> b/cde/programs/dtksh/ksh93/src/lib/libast/conf.tab
> index 394908e..e3edc0d 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/conf.tab
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/conf.tab
> @@ -239,7 +239,11 @@ OPEN_MAX_CEIL            50      AST     XX 1 L          
> OPEN_MAX
>  OS_VERSION           119     AES     SC 1 FSU
>  PAGESIZE             51      POSIX   SC 1 L          PAGE_SIZE 4096
>       #if _lib_getpagesize
> +     #if defined(linux)
> +     extern int              getpagesize(void);
> +     #else
>       extern ssize_t          getpagesize(void);
> +     #endif
>       #define _LOCAL_PAGESIZE getpagesize()
>       #endif
>  PAGE_SIZE            101     XOPEN   SC 1 L          PAGESIZE
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/features/lib 
> b/cde/programs/dtksh/ksh93/src/lib/libast/features/lib
> index 3c5d508..bbe2725 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/features/lib
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/features/lib
> @@ -5,10 +5,10 @@ lib 
> _cleanup,BSDsetpgrp,atexit,bcopy,bzero,confstr,dirread,dup2,fchmod
>  lib  fcntl,fnmatch,fork,fsync,getconf,getdents,getdirentries,getdtablesize
>  lib  getgroups,getpagesize,getrlimit,getuniverse,index,killpg,link
>  lib  localeconv,lstat,mbtowc,memccpy
> -lib  memchr,memcmp,memcpy,memdup,memmove,memset,mkdir,mkfifo,mknod,mktemp
> +lib  memchr,memcmp,memcpy,memmove,memset,mkdir,mkfifo,mknod,mktemp
>  lib  mount,on_exit,onexit,opendir,pathconf,readlink,remove,rename,rindex
>  lib  rmdir,rewinddir,setlocale,setpgid,setpgrp,setpgrp2,setreuid,setsid
> -lib  setuid,sigaction,sigprocmask,sigsetmask,sigunblock,sigvec
> +lib  setuid,sigaction,sigprocmask,sigsetmask,sigvec
>  lib  socketpair,spawnve,spawnveg,strchr,strcoll,strdup,strerror,strrchr
>  lib  strtod,strtol,strtoul,strxfrm,symlink,sysconf
>  lib  telldir,tmpnam,tzset,universe,unlink,utime,vfork
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/features/tty 
> b/cde/programs/dtksh/ksh93/src/lib/libast/features/tty
> index fa55870..9a75fc8 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/features/tty
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/features/tty
> @@ -16,5 +16,7 @@ cat{
>       #else
>       #undef  ioctl
>       #endif
> +     #if !defined(linux)
>       extern int              ioctl(int, int, ...);
> +     #endif
>  }end
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h 
> b/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h
> index 11bad2b..ffe0b39 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h
> @@ -121,9 +121,17 @@
>   * workaround botched headers that assume <stdio.h>
>   */
>  
> +#if defined(linux)
> +#ifndef __FILE
> +#define __FILE       FILE
> +#endif
> +#endif
> +
> +#if !defined(CSRG_BASED)
>  #ifndef FILE
>  #define FILE Sfio_t
>  #endif
> +#endif
>  
>  /*
>   * exit() support -- this matches shell exit codes
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/ast_std.h 
> b/cde/programs/dtksh/ksh93/src/lib/libast/include/ast_std.h
> index e11431c..0835df5 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/include/ast_std.h
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/ast_std.h
> @@ -137,7 +137,9 @@
>  #define _SKIP_SFSTDIO_H
>  #else
>  #define _SFSTDIO_H
> +#if !defined(linux)
>  #define FILE int
> +#endif
>  #if defined(__STDPP__directive) && defined(__STDPP__hide)
>  #if !_std_def_calloc
>  __STDPP__directive pragma pp:hide calloc
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h 
> b/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h
> index e51c073..1176f2f 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h
> @@ -149,9 +149,11 @@
>  #define _STDIO_INCLUDED      1
>  #endif
>  
> +#if !defined(CSRG_BASED)
>  #ifndef FILE
>  #define FILE Sfio_t
>  #endif
> +#endif
>  #endif /* __cplusplus */
>  
>  typedef struct _sfio_        Sfile_t, Sfio_t, SFIO;
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c 
> b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c
> index 214bb50..7ec0b91 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c
> +++ b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c
> @@ -301,7 +301,7 @@ loop_fa :
>                       
> GETARG(form,form,argf,args,char*,char*,'1',t_user,n_user);
>                       if(!form)
>                               form = "";
> -#if defined(CSRG_BASED) && !defined(__LP64__)
> +#if (defined(CSRG_BASED) && !defined(__LP64__)) || (defined(linux) && 
> !defined(__LP64__))
>                       
> GETARG(argsp,argsp,argf,args,va_list*,va_list*,'2',t_user,n_user);
>                       memcpy((Void_t*)(&(fa->args)), (Void_t*)(&args), 
> sizeof(va_list));
>                       memcpy((Void_t*)(&args), (Void_t*)argsp, 
> sizeof(va_list));
> diff --git a/cde/programs/dtksh/ksh93/src/lib/libcmd/features/symlink 
> b/cde/programs/dtksh/ksh93/src/lib/libcmd/features/symlink
> index 6d054b8..2c2ceb6 100644
> --- a/cde/programs/dtksh/ksh93/src/lib/libcmd/features/symlink
> +++ b/cde/programs/dtksh/ksh93/src/lib/libcmd/features/symlink
> @@ -1 +1,8 @@
> -lib  lchmod,lchown
> +lib  lchown
> +tst  lib_lchmod note{ lchmod() in default lib(s) }end link{
> +     #include <sys/stat.h>
> +     main()
> +     {       lchmod("/tmp/lchmod_test", 0755);
> +             return 0;
> +     }
> +}end
> -- 
> 1.7.9.5
> 

> ------------------------------------------------------------------------------
> Own the Future-Intel(R) Level Up Game Demo Contest 2013
> Rise to greatness in Intel's independent game demo contest. Compete 
> for recognition, cash, and the chance to get your game on Steam. 
> $5K grand prize plus 10 genre and skill prizes. Submit your demo 
> by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2

> _______________________________________________
> cdesktopenv-devel mailing list
> cdesktopenv-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel


-- 
Peter Howkins
peter.howk...@marutan.net

------------------------------------------------------------------------------
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to