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