In metaconfig.git, the branch master has been updated

<http://perl5.git.perl.org/metaconfig.git/commitdiff/c402af1253059015c7f79e8625b3367cddcda5cd?hp=7a27bf006cb24055261e07588aea6f8eb377640a>

- Log -----------------------------------------------------------------
commit c402af1253059015c7f79e8625b3367cddcda5cd
Author: H.Merijn Brand - Tux <h.m.br...@xs4all.nl>
Date:   Wed Oct 1 08:08:08 2014 +0200

    Also add all utilities for building from units to repo
    
    PLEASE do NOT modify these in the repo, as that will break MY builds.
    I only moved them here to have all readily available
    
    Note that some still need manual change if used locally
    • mconfig
    • metaconfig
    • metagrep
    • metalint
    • metaxref
    • mlint
    • packinit
    • patcil
    • patpost
    • patsend

A       bin/find_config_h_deps.pl
A       bin/jmake
A       bin/jmkmf
A       bin/kitpost
A       bin/kitsend
A       bin/makeSH
A       bin/makedist
A       bin/manicheck
A       bin/manifake
A       bin/manilist
A       bin/mconfig
A       bin/metaconfig
M       bin/metagrep
A       bin/metalint
A       bin/metaxref
A       bin/mlint
A       bin/packinit
A       bin/pat
A       bin/patbase
A       bin/patcil
A       bin/patclean
A       bin/patcol
A       bin/patdiff
A       bin/patftp
A       bin/patindex
A       bin/patlog
A       bin/patmake
A       bin/patname
A       bin/patnotify
A       bin/patpost
A       bin/patsend
A       bin/patsnap

commit b794565aa24a9ff18e19cb1352d6f0715cd5d637
Author: H.Merijn Brand - Tux <h.m.br...@xs4all.nl>
Date:   Wed Oct 1 08:00:30 2014 +0200

    Add the files from dist/meta to perl's repo
    
    In order to make the "shared" files from meta/dist readily available
    in the perl distribution sources, include them in git

M       .gitignore
A       dist/Glossary
A       dist/Index
A       dist/U/AAAAA.U
A       dist/U/Assert.U
A       dist/U/Begin.U
A       dist/U/Checkcc.U
A       dist/U/Chk_MANI.U
A       dist/U/Chk_whoami.U
A       dist/U/Compile.U
A       dist/U/Config_h.U
A       dist/U/Config_sh.U
A       dist/U/Configdir.U
A       dist/U/Cppsym.U
A       dist/U/Cross.U
A       dist/U/Csym.U
A       dist/U/End.U
A       dist/U/Extract.U
A       dist/U/Extractall.U
A       dist/U/Filexp.U
A       dist/U/Findhdr.U
A       dist/U/Finish.U
A       dist/U/Getfile.U
A       dist/U/Guess.U
A       dist/U/Head.U
A       dist/U/Inhdr.U
A       dist/U/Init.U
A       dist/U/Inlibc.U
A       dist/U/Instruct.U
A       dist/U/Loc.U
A       dist/U/Loc_sed.U
A       dist/U/Magic_h.U
A       dist/U/MailAuthor.U
A       dist/U/MailList.U
A       dist/U/Mkdirp.U
A       dist/U/Mksymlinks.U
A       dist/U/Myinit.U
A       dist/U/Myread.U
A       dist/U/Nothing.U
A       dist/U/Null.U
A       dist/U/Obsol_h.U
A       dist/U/Obsol_sh.U
A       dist/U/Oldconfig.U
A       dist/U/Oldsym.U
A       dist/U/Options.U
A       dist/U/Prefixit.U
A       dist/U/Prefixup.U
A       dist/U/Rcs.U
A       dist/U/Setvar.U
A       dist/U/Signal.U
A       dist/U/Tr.U
A       dist/U/Typedef.U
A       dist/U/Unix.U
A       dist/U/Warn.U
A       dist/U/Warn_v7EXT.U
A       dist/U/Warn_v7ND.U
A       dist/U/Whoa.U
A       dist/U/abortsig.U
A       dist/U/active.U
A       dist/U/afs.U
A       dist/U/alignbytes.U
A       dist/U/archlib.U
A       dist/U/archname.U
A       dist/U/baserev.U
A       dist/U/basicshell.U
A       dist/U/bin.U
A       dist/U/bitpbyte.U
A       dist/U/byteorder.U
A       dist/U/cc.U
A       dist/U/ccflags.U
A       dist/U/cf_email.U
A       dist/U/cf_name.U
A       dist/U/cf_who.U
A       dist/U/charorder.U
A       dist/U/charsize.U
A       dist/U/contains.U
A       dist/U/cpp_stuff.U
A       dist/U/cpp_trad.U
A       dist/U/cppfilecom.U
A       dist/U/cppstdin.U
A       dist/U/d_NOFILE.U
A       dist/U/d_NeWS.U
A       dist/U/d_PORTAR.U
A       dist/U/d_SHM_MAC.U
A       dist/U/d_access.U
A       dist/U/d_alarm.U
A       dist/U/d_attribut.U
A       dist/U/d_bcmp.U
A       dist/U/d_bcopy.U
A       dist/U/d_brokstat.U
A       dist/U/d_bsdjmp.U
A       dist/U/d_byacc.U
A       dist/U/d_bzero.U
A       dist/U/d_casti32.U
A       dist/U/d_castneg.U
A       dist/U/d_cbrt.U
A       dist/U/d_charsprf.U
A       dist/U/d_chown.U
A       dist/U/d_chroot.U
A       dist/U/d_chsize.U
A       dist/U/d_ckeypad.U
A       dist/U/d_closedir.U
A       dist/U/d_const.U
A       dist/U/d_crypt.U
A       dist/U/d_csh.U
A       dist/U/d_ctermid.U
A       dist/U/d_cuserid.U
A       dist/U/d_dbl_dig.U
A       dist/U/d_difftime.U
A       dist/U/d_dlerror.U
A       dist/U/d_dlopen.U
A       dist/U/d_dosuid.U
A       dist/U/d_drem.U
A       dist/U/d_dup2.U
A       dist/U/d_eofpipe.U
A       dist/U/d_euc2jis.U
A       dist/U/d_fchmod.U
A       dist/U/d_fchown.U
A       dist/U/d_fcntl.U
A       dist/U/d_fd_set.U
A       dist/U/d_ffs.U
A       dist/U/d_fgetpos.U
A       dist/U/d_flexfnam.U
A       dist/U/d_flock.U
A       dist/U/d_fmod.U
A       dist/U/d_fork.U
A       dist/U/d_fsetpos.U
A       dist/U/d_ftime.U
A       dist/U/d_ftrncate.U
A       dist/U/d_gconvert.U
A       dist/U/d_getgrps.U
A       dist/U/d_gethbynm.U
A       dist/U/d_gethent.U
A       dist/U/d_gethid.U
A       dist/U/d_gethname.U
A       dist/U/d_getlogin.U
A       dist/U/d_getopt.U
A       dist/U/d_getpagsz.U
A       dist/U/d_getpgid.U
A       dist/U/d_getpgrp.U
A       dist/U/d_getpgrp2.U
A       dist/U/d_getppid.U
A       dist/U/d_getprior.U
A       dist/U/d_getpwent.U
A       dist/U/d_getwd.U
A       dist/U/d_gnulibc.U
A       dist/U/d_group.U
A       dist/U/d_havetlib.U
A       dist/U/d_hidnet.U
A       dist/U/d_htonl.U
A       dist/U/d_inetaton.U
A       dist/U/d_inetd.U
A       dist/U/d_internet.U
A       dist/U/d_isascii.U
A       dist/U/d_itimer.U
A       dist/U/d_keepsig.U
A       dist/U/d_killpg.U
A       dist/U/d_link.U
A       dist/U/d_linuxstd.U
A       dist/U/d_locconv.U
A       dist/U/d_lockf.U
A       dist/U/d_lstat.U
A       dist/U/d_mblen.U
A       dist/U/d_mbstowcs.U
A       dist/U/d_mbtowc.U
A       dist/U/d_memalign.U
A       dist/U/d_memccpy.U
A       dist/U/d_memchr.U
A       dist/U/d_memcmp.U
A       dist/U/d_memcpy.U
A       dist/U/d_memmove.U
A       dist/U/d_memset.U
A       dist/U/d_mkdir.U
A       dist/U/d_mkfifo.U
A       dist/U/d_mktime.U
A       dist/U/d_mmap.U
A       dist/U/d_msem_lck.U
A       dist/U/d_msg.U
A       dist/U/d_msgctl.U
A       dist/U/d_msgget.U
A       dist/U/d_msgrcv.U
A       dist/U/d_msgsnd.U
A       dist/U/d_msync.U
A       dist/U/d_munmap.U
A       dist/U/d_newsadm.U
A       dist/U/d_nice.U
A       dist/U/d_nolnbuf.U
A       dist/U/d_normsig.U
A       dist/U/d_open3.U
A       dist/U/d_passwd.U
A       dist/U/d_pathconf.U
A       dist/U/d_pause.U
A       dist/U/d_perror.U
A       dist/U/d_pidcheck.U
A       dist/U/d_pipe.U
A       dist/U/d_poll.U
A       dist/U/d_popen.U
A       dist/U/d_portable.U
A       dist/U/d_pread.U
A       dist/U/d_preadv.U
A       dist/U/d_psignal.U
A       dist/U/d_pwrite.U
A       dist/U/d_pwritev.U
A       dist/U/d_raster.U
A       dist/U/d_rdchk.U
A       dist/U/d_readdir.U
A       dist/U/d_readlink.U
A       dist/U/d_regcmp.U
A       dist/U/d_rename.U
A       dist/U/d_rmdir.U
A       dist/U/d_rusage.U
A       dist/U/d_safebcpy.U
A       dist/U/d_safemcpy.U
A       dist/U/d_sanemcmp.U
A       dist/U/d_sbrk.U
A       dist/U/d_scandir.U
A       dist/U/d_scannl.U
A       dist/U/d_scorfl.U
A       dist/U/d_select.U
A       dist/U/d_sem.U
A       dist/U/d_semctl.U
A       dist/U/d_semget.U
A       dist/U/d_semop.U
A       dist/U/d_setegid.U
A       dist/U/d_seteuid.U
A       dist/U/d_setgrps.U
A       dist/U/d_setlnbuf.U
A       dist/U/d_setlocale.U
A       dist/U/d_setpgid.U
A       dist/U/d_setpgrp.U
A       dist/U/d_setpgrp2.U
A       dist/U/d_setprior.U
A       dist/U/d_setregid.U
A       dist/U/d_setreuid.U
A       dist/U/d_setrgid.U
A       dist/U/d_setruid.U
A       dist/U/d_setsid.U
A       dist/U/d_sgndchr.U
A       dist/U/d_shm.U
A       dist/U/d_shmat.U
A       dist/U/d_shmctl.U
A       dist/U/d_shmdt.U
A       dist/U/d_shmget.U
A       dist/U/d_sigaction.U
A       dist/U/d_sigblock.U
A       dist/U/d_sighold.U
A       dist/U/d_siglist.U
A       dist/U/d_sigsetjmp.U
A       dist/U/d_sigsetmk.U
A       dist/U/d_sigvec.U
A       dist/U/d_sjis2jis.U
A       dist/U/d_socket.U
A       dist/U/d_speedopt.U
A       dist/U/d_stat.U
A       dist/U/d_statblks.U
A       dist/U/d_stdstdio.U
A       dist/U/d_strccmp.U
A       dist/U/d_strchr.U
A       dist/U/d_strcoll.U
A       dist/U/d_strcspn.U
A       dist/U/d_strctcpy.U
A       dist/U/d_strdup.U
A       dist/U/d_strerror.U
A       dist/U/d_strftime.U
A       dist/U/d_strstr.U
A       dist/U/d_strtod.U
A       dist/U/d_strtok.U
A       dist/U/d_strtol.U
A       dist/U/d_strtoul.U
A       dist/U/d_strxfrm.U
A       dist/U/d_su_chown.U
A       dist/U/d_symlink.U
A       dist/U/d_syscall.U
A       dist/U/d_sysconf.U
A       dist/U/d_syslog.U
A       dist/U/d_system.U
A       dist/U/d_table.U
A       dist/U/d_tcgtpgrp.U
A       dist/U/d_tcstpgrp.U
A       dist/U/d_time.U
A       dist/U/d_times.U
A       dist/U/d_tminsys.U
A       dist/U/d_truncate.U
A       dist/U/d_tzmin.U
A       dist/U/d_tzname.U
A       dist/U/d_ulimit.U
A       dist/U/d_umask.U
A       dist/U/d_usendir.U
A       dist/U/d_usleep.U
A       dist/U/d_uwait.U
A       dist/U/d_vfork.U
A       dist/U/d_voidsig.U
A       dist/U/d_volatile.U
A       dist/U/d_vprintf.U
A       dist/U/d_wait3.U
A       dist/U/d_wait4.U
A       dist/U/d_waitpid.U
A       dist/U/d_wcstombs.U
A       dist/U/d_wctomb.U
A       dist/U/d_wifstat.U
A       dist/U/d_xdrs.U
A       dist/U/defeditor.U
A       dist/U/doublesize.U
A       dist/U/ebcdic.U
A       dist/U/errnolist.U
A       dist/U/etc.U
A       dist/U/filexp.U
A       dist/U/floatsize.U
A       dist/U/fpostype.U
A       dist/U/fpu.U
A       dist/U/gccvers.U
A       dist/U/gidtype.U
A       dist/U/groupstype.U
A       dist/U/h_fcntl.U
A       dist/U/h_sysfile.U
A       dist/U/i_arpainet.U
A       dist/U/i_db.U
A       dist/U/i_dbm.U
A       dist/U/i_dirent.U
A       dist/U/i_dld.U
A       dist/U/i_dlfcn.U
A       dist/U/i_fcntl.U
A       dist/U/i_float.U
A       dist/U/i_gdbm.U
A       dist/U/i_grp.U
A       dist/U/i_inttypes.U
A       dist/U/i_limits.U
A       dist/U/i_locale.U
A       dist/U/i_malloc.U
A       dist/U/i_math.U
A       dist/U/i_memory.U
A       dist/U/i_ndbm.U
A       dist/U/i_neterrno.U
A       dist/U/i_niin.U
A       dist/U/i_poll.U
A       dist/U/i_pwd.U
A       dist/U/i_regex.U
A       dist/U/i_sfio.U
A       dist/U/i_stddef.U
A       dist/U/i_stdlib.U
A       dist/U/i_string.U
A       dist/U/i_sysdir.U
A       dist/U/i_sysfile.U
A       dist/U/i_sysioctl.U
A       dist/U/i_sysmman.U
A       dist/U/i_sysndir.U
A       dist/U/i_sysparam.U
A       dist/U/i_syspoll.U
A       dist/U/i_sysresrc.U
A       dist/U/i_sysselct.U
A       dist/U/i_syssock.U
A       dist/U/i_sysstat.U
A       dist/U/i_systable.U
A       dist/U/i_systimeb.U
A       dist/U/i_systimes.U
A       dist/U/i_systwgcf.U
A       dist/U/i_systypes.U
A       dist/U/i_sysun.U
A       dist/U/i_syswait.U
A       dist/U/i_termio.U
A       dist/U/i_time.U
A       dist/U/i_unistd.U
A       dist/U/i_utime.U
A       dist/U/i_values.U
A       dist/U/i_varhdr.U
A       dist/U/i_vfork.U
A       dist/U/i_whoami.U
A       dist/U/ilp.U
A       dist/U/inc.U
A       dist/U/install.U
A       dist/U/intsize.U
A       dist/U/ipc.U
A       dist/U/issymlink.U
A       dist/U/kernel.U
A       dist/U/lex.U
A       dist/U/lib.U
A       dist/U/libc.U
A       dist/U/libdbm.U
A       dist/U/libflex.U
A       dist/U/libnlist.U
A       dist/U/libnm.U
A       dist/U/libpth.U
A       dist/U/libs.U
A       dist/U/libyacc.U
A       dist/U/lintlib.U
A       dist/U/lns.U
A       dist/U/locdist.U
A       dist/U/longsize.U
A       dist/U/lseektype.U
A       dist/U/maildir.U
A       dist/U/mailer.U
A       dist/U/mailfile.U
A       dist/U/make.U
A       dist/U/mallocsrc.U
A       dist/U/man1dir.U
A       dist/U/man3dir.U
A       dist/U/manfmt.U
A       dist/U/mansrc.U
A       dist/U/mboxchar.U
A       dist/U/mkdep.U
A       dist/U/models.U
A       dist/U/modetype.U
A       dist/U/myhostname.U
A       dist/U/n.U
A       dist/U/nametype.U
A       dist/U/nblock_io.U
A       dist/U/newslevel.U
A       dist/U/newslib.U
A       dist/U/newsspool.U
A       dist/U/nis.U
A       dist/U/nlist_pfx.U
A       dist/U/orderlib.U
A       dist/U/orgname.U
A       dist/U/packadmin.U
A       dist/U/package.U
A       dist/U/pager.U
A       dist/U/patchlevel.U
A       dist/U/perlpath.U
A       dist/U/pidtype.U
A       dist/U/pkgsrc.U
A       dist/U/prefix.U
A       dist/U/prefshell.U
A       dist/U/privlib.U
A       dist/U/prototype.U
A       dist/U/ptrsize.U
A       dist/U/randbits.U
A       dist/U/randfunc.U
A       dist/U/rcs_branch.U
A       dist/U/registers.U
A       dist/U/rootid.U
A       dist/U/sbrksmart.U
A       dist/U/sbrktype.U
A       dist/U/scriptdir.U
A       dist/U/selecttype.U
A       dist/U/sh.U
A       dist/U/shm_for.U
A       dist/U/sig_name.U
A       dist/U/sitearch.U
A       dist/U/sitelib.U
A       dist/U/sizetype.U
A       dist/U/so.U
A       dist/U/sockopt.U
A       dist/U/spitshell.U
A       dist/U/src.U
A       dist/U/ssizetype.U
A       dist/U/startperl.U
A       dist/U/startsh.U
A       dist/U/stdchar.U
A       dist/U/sunscanf.U
A       dist/U/sysman.U
A       dist/U/trnl.U
A       dist/U/uidtype.U
A       dist/U/usenm.U
A       dist/U/usesocks.U
A       dist/U/usrinc.U
A       dist/U/vaproto.U
A       dist/U/voidflags.U
A       dist/U/warnflags.U
A       dist/U/yacc.U
A       dist/bindex
A       dist/configure
A       dist/files/Jmake.rules
A       dist/files/Jmake.tmpl
A       dist/files/fixcpp
A       dist/lib/C/fake/dup2.C
A       dist/lib/C/fake/getopt.C
A       dist/lib/C/fake/rename.C
A       dist/lib/C/fake/scandir.C
A       dist/lib/C/fake/setsid.C
A       dist/lib/errnolist.SH
A       dist/lib/errnolist.a
A       dist/lib/errnolist.mk
A       dist/lib/makedepend.SH
A       dist/lib/makedir.SH
A       dist/makegloss
-----------------------------------------------------------------------

Summary of changes:
 .gitignore                |     1 -
 bin/find_config_h_deps.pl |    77 +
 bin/jmake                 |   510 +++
 bin/jmkmf                 |    83 +
 bin/kitpost               |   284 ++
 bin/kitsend               |   240 ++
 bin/makeSH                |    76 +
 bin/makedist              |   601 +++
 bin/manicheck             |    59 +
 bin/manifake              |    54 +
 bin/manilist              |   507 +++
 bin/mconfig               |  1931 +++++++++
 bin/metaconfig            |  2359 +++++++++++
 bin/metagrep              |    22 +-
 bin/metalint              |  2328 ++++++++++
 bin/metaxref              |  1231 ++++++
 bin/mlint                 |  1964 +++++++++
 bin/packinit              |   498 +++
 bin/pat                   |   269 ++
 bin/patbase               |   244 ++
 bin/patcil                |   727 ++++
 bin/patclean              |   333 ++
 bin/patcol                |   460 ++
 bin/patdiff               |   379 ++
 bin/patftp                |   198 +
 bin/patindex              |    43 +
 bin/patlog                |   436 ++
 bin/patmake               |   477 +++
 bin/patname               |   323 ++
 bin/patnotify             |   333 ++
 bin/patpost               |   269 ++
 bin/patsend               |   351 ++
 bin/patsnap               |   246 ++
 dist/Glossary             | 10091 ++++++++++++++++++++++++++++++++++++++++++++
 dist/Index                |  1583 +++++++
 dist/U/AAAAA.U            |    46 +
 dist/U/Assert.U           |    26 +
 dist/U/Begin.U            |    39 +
 dist/U/Checkcc.U          |   135 +
 dist/U/Chk_MANI.U         |    88 +
 dist/U/Chk_whoami.U       |    25 +
 dist/U/Compile.U          |    63 +
 dist/U/Config_h.U         |   114 +
 dist/U/Config_sh.U        |   110 +
 dist/U/Configdir.U        |    28 +
 dist/U/Cppsym.U           |   286 ++
 dist/U/Cross.U            |   349 ++
 dist/U/Csym.U             |    97 +
 dist/U/End.U              |    27 +
 dist/U/Extract.U          |   105 +
 dist/U/Extractall.U       |    51 +
 dist/U/Filexp.U           |    69 +
 dist/U/Findhdr.U          |   126 +
 dist/U/Finish.U           |   141 +
 dist/U/Getfile.U          |   339 ++
 dist/U/Guess.U            |   228 +
 dist/U/Head.U             |   282 ++
 dist/U/Inhdr.U            |    77 +
 dist/U/Init.U             |    81 +
 dist/U/Inlibc.U           |    64 +
 dist/U/Instruct.U         |   116 +
 dist/U/Loc.U              |   381 ++
 dist/U/Loc_sed.U          |    33 +
 dist/U/Magic_h.U          |    43 +
 dist/U/MailAuthor.U       |   192 +
 dist/U/MailList.U         |    82 +
 dist/U/Mkdirp.U           |    51 +
 dist/U/Mksymlinks.U       |    90 +
 dist/U/Myinit.U           |    26 +
 dist/U/Myread.U           |   199 +
 dist/U/Nothing.U          |    19 +
 dist/U/Null.U             |    20 +
 dist/U/Obsol_h.U          |    28 +
 dist/U/Obsol_sh.U         |    27 +
 dist/U/Oldconfig.U        |   687 +++
 dist/U/Oldsym.U           |    66 +
 dist/U/Options.U          |   363 ++
 dist/U/Prefixit.U         |    68 +
 dist/U/Prefixup.U         |    38 +
 dist/U/Rcs.U              |    34 +
 dist/U/Setvar.U           |    50 +
 dist/U/Signal.U           |   271 ++
 dist/U/Tr.U               |   103 +
 dist/U/Typedef.U          |    63 +
 dist/U/Unix.U             |    64 +
 dist/U/Warn.U             |    57 +
 dist/U/Warn_v7EXT.U       |    34 +
 dist/U/Warn_v7ND.U        |    33 +
 dist/U/Whoa.U             |    51 +
 dist/U/abortsig.U         |    79 +
 dist/U/active.U           |    50 +
 dist/U/afs.U              |    55 +
 dist/U/alignbytes.U       |   141 +
 dist/U/archlib.U          |   125 +
 dist/U/archname.U         |    76 +
 dist/U/baserev.U          |    22 +
 dist/U/basicshell.U       |    47 +
 dist/U/bin.U              |    88 +
 dist/U/bitpbyte.U         |    74 +
 dist/U/byteorder.U        |    99 +
 dist/U/cc.U               |    58 +
 dist/U/ccflags.U          |   420 ++
 dist/U/cf_email.U         |    69 +
 dist/U/cf_name.U          |    72 +
 dist/U/cf_who.U           |    62 +
 dist/U/charorder.U        |   143 +
 dist/U/charsize.U         |    64 +
 dist/U/contains.U         |    43 +
 dist/U/cpp_stuff.U        |   157 +
 dist/U/cpp_trad.U         |    41 +
 dist/U/cppfilecom.U       |   204 +
 dist/U/cppstdin.U         |   249 ++
 dist/U/d_NOFILE.U         |   189 +
 dist/U/d_NeWS.U           |   101 +
 dist/U/d_PORTAR.U         |    79 +
 dist/U/d_SHM_MAC.U        |   141 +
 dist/U/d_access.U         |    74 +
 dist/U/d_alarm.U          |    33 +
 dist/U/d_attribut.U       |    64 +
 dist/U/d_bcmp.U           |    44 +
 dist/U/d_bcopy.U          |    44 +
 dist/U/d_brokstat.U       |    75 +
 dist/U/d_bsdjmp.U         |    86 +
 dist/U/d_byacc.U          |    33 +
 dist/U/d_bzero.U          |    44 +
 dist/U/d_casti32.U        |    87 +
 dist/U/d_castneg.U        |   143 +
 dist/U/d_cbrt.U           |    32 +
 dist/U/d_charsprf.U       |    52 +
 dist/U/d_chown.U          |    33 +
 dist/U/d_chroot.U         |    33 +
 dist/U/d_chsize.U         |    32 +
 dist/U/d_ckeypad.U        |    54 +
 dist/U/d_closedir.U       |   107 +
 dist/U/d_const.U          |    66 +
 dist/U/d_crypt.U          |    76 +
 dist/U/d_csh.U            |    62 +
 dist/U/d_ctermid.U        |    31 +
 dist/U/d_cuserid.U        |    34 +
 dist/U/d_dbl_dig.U        |    61 +
 dist/U/d_difftime.U       |    33 +
 dist/U/d_dlerror.U        |    46 +
 dist/U/d_dlopen.U         |    45 +
 dist/U/d_dosuid.U         |   169 +
 dist/U/d_drem.U           |    35 +
 dist/U/d_dup2.U           |    31 +
 dist/U/d_eofpipe.U        |    93 +
 dist/U/d_euc2jis.U        |    32 +
 dist/U/d_fchmod.U         |    32 +
 dist/U/d_fchown.U         |    32 +
 dist/U/d_fcntl.U          |    31 +
 dist/U/d_fd_set.U         |   138 +
 dist/U/d_ffs.U            |    33 +
 dist/U/d_fgetpos.U        |    31 +
 dist/U/d_flexfnam.U       |    77 +
 dist/U/d_flock.U          |    31 +
 dist/U/d_fmod.U           |    34 +
 dist/U/d_fork.U           |    33 +
 dist/U/d_fsetpos.U        |    31 +
 dist/U/d_ftime.U          |    78 +
 dist/U/d_ftrncate.U       |    31 +
 dist/U/d_gconvert.U       |   147 +
 dist/U/d_getgrps.U        |    33 +
 dist/U/d_gethbynm.U       |    32 +
 dist/U/d_gethent.U        |    31 +
 dist/U/d_gethid.U         |    31 +
 dist/U/d_gethname.U       |   287 ++
 dist/U/d_getlogin.U       |    34 +
 dist/U/d_getopt.U         |    31 +
 dist/U/d_getpagsz.U       |   104 +
 dist/U/d_getpgid.U        |    34 +
 dist/U/d_getpgrp.U        |   108 +
 dist/U/d_getpgrp2.U       |    32 +
 dist/U/d_getppid.U        |    34 +
 dist/U/d_getprior.U       |    31 +
 dist/U/d_getpwent.U       |    40 +
 dist/U/d_getwd.U          |    41 +
 dist/U/d_gnulibc.U        |    98 +
 dist/U/d_group.U          |    23 +
 dist/U/d_havetlib.U       |   125 +
 dist/U/d_hidnet.U         |    68 +
 dist/U/d_htonl.U          |    88 +
 dist/U/d_inetaton.U       |    34 +
 dist/U/d_inetd.U          |    70 +
 dist/U/d_internet.U       |    52 +
 dist/U/d_isascii.U        |    57 +
 dist/U/d_itimer.U         |    32 +
 dist/U/d_keepsig.U        |    81 +
 dist/U/d_killpg.U         |    33 +
 dist/U/d_link.U           |    31 +
 dist/U/d_linuxstd.U       |    55 +
 dist/U/d_locconv.U        |    33 +
 dist/U/d_lockf.U          |    33 +
 dist/U/d_lstat.U          |    31 +
 dist/U/d_mblen.U          |    34 +
 dist/U/d_mbstowcs.U       |    32 +
 dist/U/d_mbtowc.U         |    32 +
 dist/U/d_memalign.U       |    29 +
 dist/U/d_memccpy.U        |    33 +
 dist/U/d_memchr.U         |    32 +
 dist/U/d_memcmp.U         |    35 +
 dist/U/d_memcpy.U         |    35 +
 dist/U/d_memmove.U        |    34 +
 dist/U/d_memset.U         |    35 +
 dist/U/d_mkdir.U          |    33 +
 dist/U/d_mkfifo.U         |    36 +
 dist/U/d_mktime.U         |    33 +
 dist/U/d_mmap.U           |    31 +
 dist/U/d_msem_lck.U       |    28 +
 dist/U/d_msg.U            |    45 +
 dist/U/d_msgctl.U         |    31 +
 dist/U/d_msgget.U         |    31 +
 dist/U/d_msgrcv.U         |    31 +
 dist/U/d_msgsnd.U         |    31 +
 dist/U/d_msync.U          |    31 +
 dist/U/d_munmap.U         |    31 +
 dist/U/d_newsadm.U        |    72 +
 dist/U/d_nice.U           |    33 +
 dist/U/d_nolnbuf.U        |    99 +
 dist/U/d_normsig.U        |    57 +
 dist/U/d_open3.U          |    90 +
 dist/U/d_passwd.U         |    23 +
 dist/U/d_pathconf.U       |    55 +
 dist/U/d_pause.U          |    34 +
 dist/U/d_perror.U         |    44 +
 dist/U/d_pidcheck.U       |    75 +
 dist/U/d_pipe.U           |    34 +
 dist/U/d_poll.U           |    36 +
 dist/U/d_popen.U          |    31 +
 dist/U/d_portable.U       |    71 +
 dist/U/d_pread.U          |    29 +
 dist/U/d_preadv.U         |    30 +
 dist/U/d_psignal.U        |    31 +
 dist/U/d_pwrite.U         |    29 +
 dist/U/d_pwritev.U        |    30 +
 dist/U/d_raster.U         |    57 +
 dist/U/d_rdchk.U          |    33 +
 dist/U/d_readdir.U        |    79 +
 dist/U/d_readlink.U       |    34 +
 dist/U/d_regcmp.U         |    80 +
 dist/U/d_rename.U         |    33 +
 dist/U/d_rmdir.U          |    32 +
 dist/U/d_rusage.U         |    36 +
 dist/U/d_safebcpy.U       |   124 +
 dist/U/d_safemcpy.U       |   127 +
 dist/U/d_sanemcmp.U       |    88 +
 dist/U/d_sbrk.U           |    31 +
 dist/U/d_scandir.U        |    31 +
 dist/U/d_scannl.U         |    74 +
 dist/U/d_scorfl.U         |    58 +
 dist/U/d_select.U         |    33 +
 dist/U/d_sem.U            |    45 +
 dist/U/d_semctl.U         |    31 +
 dist/U/d_semget.U         |    31 +
 dist/U/d_semop.U          |    31 +
 dist/U/d_setegid.U        |    32 +
 dist/U/d_seteuid.U        |    32 +
 dist/U/d_setgrps.U        |    33 +
 dist/U/d_setlnbuf.U       |    36 +
 dist/U/d_setlocale.U      |    33 +
 dist/U/d_setpgid.U        |    37 +
 dist/U/d_setpgrp.U        |   116 +
 dist/U/d_setpgrp2.U       |    32 +
 dist/U/d_setprior.U       |    31 +
 dist/U/d_setregid.U       |    46 +
 dist/U/d_setreuid.U       |    46 +
 dist/U/d_setrgid.U        |    32 +
 dist/U/d_setruid.U        |    32 +
 dist/U/d_setsid.U         |    34 +
 dist/U/d_sgndchr.U        |    59 +
 dist/U/d_shm.U            |    45 +
 dist/U/d_shmat.U          |    93 +
 dist/U/d_shmctl.U         |    31 +
 dist/U/d_shmdt.U          |    31 +
 dist/U/d_shmget.U         |    31 +
 dist/U/d_sigaction.U      |    61 +
 dist/U/d_sigblock.U       |    31 +
 dist/U/d_sighold.U        |    31 +
 dist/U/d_siglist.U        |    39 +
 dist/U/d_sigsetjmp.U      |   105 +
 dist/U/d_sigsetmk.U       |    41 +
 dist/U/d_sigvec.U         |    79 +
 dist/U/d_sjis2jis.U       |    32 +
 dist/U/d_socket.U         |   123 +
 dist/U/d_speedopt.U       |    62 +
 dist/U/d_stat.U           |    31 +
 dist/U/d_statblks.U       |    46 +
 dist/U/d_stdstdio.U       |   325 ++
 dist/U/d_strccmp.U        |    38 +
 dist/U/d_strchr.U         |    95 +
 dist/U/d_strcoll.U        |    33 +
 dist/U/d_strcspn.U        |    32 +
 dist/U/d_strctcpy.U       |    53 +
 dist/U/d_strdup.U         |    32 +
 dist/U/d_strerror.U       |   117 +
 dist/U/d_strftime.U       |    31 +
 dist/U/d_strstr.U         |    31 +
 dist/U/d_strtod.U         |    34 +
 dist/U/d_strtok.U         |    35 +
 dist/U/d_strtol.U         |    32 +
 dist/U/d_strtoul.U        |    34 +
 dist/U/d_strxfrm.U        |    33 +
 dist/U/d_su_chown.U       |    41 +
 dist/U/d_symlink.U        |    32 +
 dist/U/d_syscall.U        |    31 +
 dist/U/d_sysconf.U        |    34 +
 dist/U/d_syslog.U         |    44 +
 dist/U/d_system.U         |    31 +
 dist/U/d_table.U          |    34 +
 dist/U/d_tcgtpgrp.U       |    34 +
 dist/U/d_tcstpgrp.U       |    34 +
 dist/U/d_time.U           |    66 +
 dist/U/d_times.U          |    74 +
 dist/U/d_tminsys.U        |    41 +
 dist/U/d_truncate.U       |    31 +
 dist/U/d_tzmin.U          |    53 +
 dist/U/d_tzname.U         |    42 +
 dist/U/d_ulimit.U         |    31 +
 dist/U/d_umask.U          |    34 +
 dist/U/d_usendir.U        |    79 +
 dist/U/d_usleep.U         |    31 +
 dist/U/d_uwait.U          |   123 +
 dist/U/d_vfork.U          |    91 +
 dist/U/d_voidsig.U        |    89 +
 dist/U/d_volatile.U       |    74 +
 dist/U/d_vprintf.U        |    81 +
 dist/U/d_wait3.U          |    31 +
 dist/U/d_wait4.U          |    30 +
 dist/U/d_waitpid.U        |    31 +
 dist/U/d_wcstombs.U       |    32 +
 dist/U/d_wctomb.U         |    34 +
 dist/U/d_wifstat.U        |    87 +
 dist/U/d_xdrs.U           |    42 +
 dist/U/defeditor.U        |    45 +
 dist/U/doublesize.U       |    58 +
 dist/U/ebcdic.U           |    58 +
 dist/U/errnolist.U        |   106 +
 dist/U/etc.U              |    42 +
 dist/U/filexp.U           |    30 +
 dist/U/floatsize.U        |    58 +
 dist/U/fpostype.U         |    39 +
 dist/U/fpu.U              |    73 +
 dist/U/gccvers.U          |   117 +
 dist/U/gidtype.U          |    61 +
 dist/U/groupstype.U       |    63 +
 dist/U/h_fcntl.U          |    23 +
 dist/U/h_sysfile.U        |    23 +
 dist/U/i_arpainet.U       |    31 +
 dist/U/i_db.U             |   146 +
 dist/U/i_dbm.U            |    79 +
 dist/U/i_dirent.U         |   146 +
 dist/U/i_dld.U            |    34 +
 dist/U/i_dlfcn.U          |    34 +
 dist/U/i_fcntl.U          |    61 +
 dist/U/i_float.U          |    35 +
 dist/U/i_gdbm.U           |    53 +
 dist/U/i_grp.U            |    31 +
 dist/U/i_inttypes.U       |    35 +
 dist/U/i_limits.U         |    33 +
 dist/U/i_locale.U         |    32 +
 dist/U/i_malloc.U         |    31 +
 dist/U/i_math.U           |    34 +
 dist/U/i_memory.U         |    65 +
 dist/U/i_ndbm.U           |    53 +
 dist/U/i_neterrno.U       |    65 +
 dist/U/i_niin.U           |    45 +
 dist/U/i_poll.U           |    28 +
 dist/U/i_pwd.U            |   162 +
 dist/U/i_regex.U          |    35 +
 dist/U/i_sfio.U           |    32 +
 dist/U/i_stddef.U         |    32 +
 dist/U/i_stdlib.U         |    32 +
 dist/U/i_string.U         |    62 +
 dist/U/i_sysdir.U         |    34 +
 dist/U/i_sysfile.U        |    60 +
 dist/U/i_sysioctl.U       |   202 +
 dist/U/i_sysmman.U        |    34 +
 dist/U/i_sysndir.U        |    31 +
 dist/U/i_sysparam.U       |    31 +
 dist/U/i_syspoll.U        |    28 +
 dist/U/i_sysresrc.U       |    34 +
 dist/U/i_sysselct.U       |    39 +
 dist/U/i_syssock.U        |    32 +
 dist/U/i_sysstat.U        |    32 +
 dist/U/i_systable.U       |    32 +
 dist/U/i_systimeb.U       |    55 +
 dist/U/i_systimes.U       |    31 +
 dist/U/i_systwgcf.U       |    31 +
 dist/U/i_systypes.U       |    34 +
 dist/U/i_sysun.U          |    35 +
 dist/U/i_syswait.U        |    34 +
 dist/U/i_termio.U         |   123 +
 dist/U/i_time.U           |   171 +
 dist/U/i_unistd.U         |    31 +
 dist/U/i_utime.U          |    31 +
 dist/U/i_values.U         |    35 +
 dist/U/i_varhdr.U         |   164 +
 dist/U/i_vfork.U          |    40 +
 dist/U/i_whoami.U         |    35 +
 dist/U/ilp.U              |   116 +
 dist/U/inc.U              |    39 +
 dist/U/install.U          |   194 +
 dist/U/intsize.U          |    89 +
 dist/U/ipc.U              |   171 +
 dist/U/issymlink.U        |    85 +
 dist/U/kernel.U           |    63 +
 dist/U/lex.U              |    67 +
 dist/U/lib.U              |    54 +
 dist/U/libc.U             |   405 ++
 dist/U/libdbm.U           |    47 +
 dist/U/libflex.U          |    65 +
 dist/U/libnlist.U         |    49 +
 dist/U/libnm.U            |    45 +
 dist/U/libpth.U           |   132 +
 dist/U/libs.U             |   242 ++
 dist/U/libyacc.U          |    64 +
 dist/U/lintlib.U          |    38 +
 dist/U/lns.U              |    41 +
 dist/U/locdist.U          |   174 +
 dist/U/longsize.U         |    24 +
 dist/U/lseektype.U        |    40 +
 dist/U/maildir.U          |    41 +
 dist/U/mailer.U           |    61 +
 dist/U/mailfile.U         |    56 +
 dist/U/make.U             |    60 +
 dist/U/mallocsrc.U        |   171 +
 dist/U/man1dir.U          |   147 +
 dist/U/man3dir.U          |   158 +
 dist/U/manfmt.U           |   118 +
 dist/U/mansrc.U           |   150 +
 dist/U/mboxchar.U         |    70 +
 dist/U/mkdep.U            |   268 ++
 dist/U/models.U           |   214 +
 dist/U/modetype.U         |    40 +
 dist/U/myhostname.U       |   284 ++
 dist/U/n.U                |    45 +
 dist/U/nametype.U         |   134 +
 dist/U/nblock_io.U        |   254 ++
 dist/U/newslevel.U        |    53 +
 dist/U/newslib.U          |    61 +
 dist/U/newsspool.U        |    52 +
 dist/U/nis.U              |   168 +
 dist/U/nlist_pfx.U        |   135 +
 dist/U/orderlib.U         |    95 +
 dist/U/orgname.U          |    65 +
 dist/U/packadmin.U        |    33 +
 dist/U/package.U          |    56 +
 dist/U/pager.U            |    59 +
 dist/U/patchlevel.U       |    36 +
 dist/U/perlpath.U         |    56 +
 dist/U/pidtype.U          |    39 +
 dist/U/pkgsrc.U           |    26 +
 dist/U/prefix.U           |    80 +
 dist/U/prefshell.U        |    60 +
 dist/U/privlib.U          |    96 +
 dist/U/prototype.U        |   118 +
 dist/U/ptrsize.U          |    58 +
 dist/U/randbits.U         |    83 +
 dist/U/randfunc.U         |   164 +
 dist/U/rcs_branch.U       |    43 +
 dist/U/registers.U        |   103 +
 dist/U/rootid.U           |    35 +
 dist/U/sbrksmart.U        |    85 +
 dist/U/sbrktype.U         |    44 +
 dist/U/scriptdir.U        |   110 +
 dist/U/selecttype.U       |   109 +
 dist/U/sh.U               |    92 +
 dist/U/shm_for.U          |   118 +
 dist/U/sig_name.U         |   157 +
 dist/U/sitearch.U         |    94 +
 dist/U/sitelib.U          |    97 +
 dist/U/sizetype.U         |    40 +
 dist/U/so.U               |    50 +
 dist/U/sockopt.U          |    88 +
 dist/U/spitshell.U        |   107 +
 dist/U/src.U              |    92 +
 dist/U/ssizetype.U        |    91 +
 dist/U/startperl.U        |    95 +
 dist/U/startsh.U          |    50 +
 dist/U/stdchar.U          |    40 +
 dist/U/sunscanf.U         |    55 +
 dist/U/sysman.U           |    50 +
 dist/U/trnl.U             |    59 +
 dist/U/uidtype.U          |    57 +
 dist/U/usenm.U            |   144 +
 dist/U/usesocks.U         |    46 +
 dist/U/usrinc.U           |    93 +
 dist/U/vaproto.U          |    65 +
 dist/U/voidflags.U        |   168 +
 dist/U/warnflags.U        |    55 +
 dist/U/yacc.U             |    90 +
 dist/bindex               |   162 +
 dist/configure            |   144 +
 dist/files/Jmake.rules    |  1825 ++++++++
 dist/files/Jmake.tmpl     |   253 ++
 dist/files/fixcpp         |   160 +
 dist/lib/C/fake/dup2.C    |    78 +
 dist/lib/C/fake/getopt.C  |   133 +
 dist/lib/C/fake/rename.C  |    45 +
 dist/lib/C/fake/scandir.C |   131 +
 dist/lib/C/fake/setsid.C  |    64 +
 dist/lib/errnolist.SH     |    44 +
 dist/lib/errnolist.a      |    52 +
 dist/lib/errnolist.mk     |    42 +
 dist/lib/makedepend.SH    |   169 +
 dist/lib/makedir.SH       |    86 +
 dist/makegloss            |   194 +
 507 files changed, 66031 insertions(+), 6 deletions(-)
 create mode 100755 bin/find_config_h_deps.pl
 create mode 100755 bin/jmake
 create mode 100755 bin/jmkmf
 create mode 100755 bin/kitpost
 create mode 100755 bin/kitsend
 create mode 100755 bin/makeSH
 create mode 100755 bin/makedist
 create mode 100755 bin/manicheck
 create mode 100755 bin/manifake
 create mode 100755 bin/manilist
 create mode 100755 bin/mconfig
 create mode 100755 bin/metaconfig
 create mode 100755 bin/metalint
 create mode 100755 bin/metaxref
 create mode 100755 bin/mlint
 create mode 100755 bin/packinit
 create mode 100755 bin/pat
 create mode 100755 bin/patbase
 create mode 100755 bin/patcil
 create mode 100755 bin/patclean
 create mode 100755 bin/patcol
 create mode 100755 bin/patdiff
 create mode 100755 bin/patftp
 create mode 100755 bin/patindex
 create mode 100755 bin/patlog
 create mode 100755 bin/patmake
 create mode 100755 bin/patname
 create mode 100755 bin/patnotify
 create mode 100755 bin/patpost
 create mode 100755 bin/patsend
 create mode 100755 bin/patsnap
 create mode 100644 dist/Glossary
 create mode 100644 dist/Index
 create mode 100644 dist/U/AAAAA.U
 create mode 100644 dist/U/Assert.U
 create mode 100644 dist/U/Begin.U
 create mode 100644 dist/U/Checkcc.U
 create mode 100644 dist/U/Chk_MANI.U
 create mode 100644 dist/U/Chk_whoami.U
 create mode 100644 dist/U/Compile.U
 create mode 100644 dist/U/Config_h.U
 create mode 100644 dist/U/Config_sh.U
 create mode 100644 dist/U/Configdir.U
 create mode 100644 dist/U/Cppsym.U
 create mode 100644 dist/U/Cross.U
 create mode 100644 dist/U/Csym.U
 create mode 100644 dist/U/End.U
 create mode 100644 dist/U/Extract.U
 create mode 100644 dist/U/Extractall.U
 create mode 100644 dist/U/Filexp.U
 create mode 100644 dist/U/Findhdr.U
 create mode 100644 dist/U/Finish.U
 create mode 100644 dist/U/Getfile.U
 create mode 100644 dist/U/Guess.U
 create mode 100644 dist/U/Head.U
 create mode 100644 dist/U/Inhdr.U
 create mode 100644 dist/U/Init.U
 create mode 100644 dist/U/Inlibc.U
 create mode 100644 dist/U/Instruct.U
 create mode 100644 dist/U/Loc.U
 create mode 100644 dist/U/Loc_sed.U
 create mode 100644 dist/U/Magic_h.U
 create mode 100644 dist/U/MailAuthor.U
 create mode 100644 dist/U/MailList.U
 create mode 100644 dist/U/Mkdirp.U
 create mode 100644 dist/U/Mksymlinks.U
 create mode 100644 dist/U/Myinit.U
 create mode 100644 dist/U/Myread.U
 create mode 100644 dist/U/Nothing.U
 create mode 100644 dist/U/Null.U
 create mode 100644 dist/U/Obsol_h.U
 create mode 100644 dist/U/Obsol_sh.U
 create mode 100644 dist/U/Oldconfig.U
 create mode 100644 dist/U/Oldsym.U
 create mode 100644 dist/U/Options.U
 create mode 100644 dist/U/Prefixit.U
 create mode 100644 dist/U/Prefixup.U
 create mode 100644 dist/U/Rcs.U
 create mode 100644 dist/U/Setvar.U
 create mode 100644 dist/U/Signal.U
 create mode 100644 dist/U/Tr.U
 create mode 100644 dist/U/Typedef.U
 create mode 100644 dist/U/Unix.U
 create mode 100644 dist/U/Warn.U
 create mode 100644 dist/U/Warn_v7EXT.U
 create mode 100644 dist/U/Warn_v7ND.U
 create mode 100644 dist/U/Whoa.U
 create mode 100644 dist/U/abortsig.U
 create mode 100644 dist/U/active.U
 create mode 100644 dist/U/afs.U
 create mode 100644 dist/U/alignbytes.U
 create mode 100644 dist/U/archlib.U
 create mode 100644 dist/U/archname.U
 create mode 100644 dist/U/baserev.U
 create mode 100644 dist/U/basicshell.U
 create mode 100644 dist/U/bin.U
 create mode 100644 dist/U/bitpbyte.U
 create mode 100644 dist/U/byteorder.U
 create mode 100644 dist/U/cc.U
 create mode 100644 dist/U/ccflags.U
 create mode 100644 dist/U/cf_email.U
 create mode 100644 dist/U/cf_name.U
 create mode 100644 dist/U/cf_who.U
 create mode 100644 dist/U/charorder.U
 create mode 100644 dist/U/charsize.U
 create mode 100644 dist/U/contains.U
 create mode 100644 dist/U/cpp_stuff.U
 create mode 100644 dist/U/cpp_trad.U
 create mode 100644 dist/U/cppfilecom.U
 create mode 100644 dist/U/cppstdin.U
 create mode 100644 dist/U/d_NOFILE.U
 create mode 100644 dist/U/d_NeWS.U
 create mode 100644 dist/U/d_PORTAR.U
 create mode 100644 dist/U/d_SHM_MAC.U
 create mode 100644 dist/U/d_access.U
 create mode 100644 dist/U/d_alarm.U
 create mode 100644 dist/U/d_attribut.U
 create mode 100644 dist/U/d_bcmp.U
 create mode 100644 dist/U/d_bcopy.U
 create mode 100644 dist/U/d_brokstat.U
 create mode 100644 dist/U/d_bsdjmp.U
 create mode 100644 dist/U/d_byacc.U
 create mode 100644 dist/U/d_bzero.U
 create mode 100644 dist/U/d_casti32.U
 create mode 100644 dist/U/d_castneg.U
 create mode 100644 dist/U/d_cbrt.U
 create mode 100644 dist/U/d_charsprf.U
 create mode 100644 dist/U/d_chown.U
 create mode 100644 dist/U/d_chroot.U
 create mode 100644 dist/U/d_chsize.U
 create mode 100644 dist/U/d_ckeypad.U
 create mode 100644 dist/U/d_closedir.U
 create mode 100644 dist/U/d_const.U
 create mode 100644 dist/U/d_crypt.U
 create mode 100644 dist/U/d_csh.U
 create mode 100644 dist/U/d_ctermid.U
 create mode 100644 dist/U/d_cuserid.U
 create mode 100644 dist/U/d_dbl_dig.U
 create mode 100644 dist/U/d_difftime.U
 create mode 100644 dist/U/d_dlerror.U
 create mode 100644 dist/U/d_dlopen.U
 create mode 100644 dist/U/d_dosuid.U
 create mode 100644 dist/U/d_drem.U
 create mode 100644 dist/U/d_dup2.U
 create mode 100644 dist/U/d_eofpipe.U
 create mode 100644 dist/U/d_euc2jis.U
 create mode 100644 dist/U/d_fchmod.U
 create mode 100644 dist/U/d_fchown.U
 create mode 100644 dist/U/d_fcntl.U
 create mode 100644 dist/U/d_fd_set.U
 create mode 100644 dist/U/d_ffs.U
 create mode 100644 dist/U/d_fgetpos.U
 create mode 100644 dist/U/d_flexfnam.U
 create mode 100644 dist/U/d_flock.U
 create mode 100644 dist/U/d_fmod.U
 create mode 100644 dist/U/d_fork.U
 create mode 100644 dist/U/d_fsetpos.U
 create mode 100644 dist/U/d_ftime.U
 create mode 100644 dist/U/d_ftrncate.U
 create mode 100644 dist/U/d_gconvert.U
 create mode 100644 dist/U/d_getgrps.U
 create mode 100644 dist/U/d_gethbynm.U
 create mode 100644 dist/U/d_gethent.U
 create mode 100644 dist/U/d_gethid.U
 create mode 100644 dist/U/d_gethname.U
 create mode 100644 dist/U/d_getlogin.U
 create mode 100644 dist/U/d_getopt.U
 create mode 100644 dist/U/d_getpagsz.U
 create mode 100644 dist/U/d_getpgid.U
 create mode 100644 dist/U/d_getpgrp.U
 create mode 100644 dist/U/d_getpgrp2.U
 create mode 100644 dist/U/d_getppid.U
 create mode 100644 dist/U/d_getprior.U
 create mode 100644 dist/U/d_getpwent.U
 create mode 100644 dist/U/d_getwd.U
 create mode 100644 dist/U/d_gnulibc.U
 create mode 100644 dist/U/d_group.U
 create mode 100644 dist/U/d_havetlib.U
 create mode 100644 dist/U/d_hidnet.U
 create mode 100644 dist/U/d_htonl.U
 create mode 100644 dist/U/d_inetaton.U
 create mode 100644 dist/U/d_inetd.U
 create mode 100644 dist/U/d_internet.U
 create mode 100644 dist/U/d_isascii.U
 create mode 100644 dist/U/d_itimer.U
 create mode 100644 dist/U/d_keepsig.U
 create mode 100644 dist/U/d_killpg.U
 create mode 100644 dist/U/d_link.U
 create mode 100644 dist/U/d_linuxstd.U
 create mode 100644 dist/U/d_locconv.U
 create mode 100644 dist/U/d_lockf.U
 create mode 100644 dist/U/d_lstat.U
 create mode 100644 dist/U/d_mblen.U
 create mode 100644 dist/U/d_mbstowcs.U
 create mode 100644 dist/U/d_mbtowc.U
 create mode 100644 dist/U/d_memalign.U
 create mode 100644 dist/U/d_memccpy.U
 create mode 100644 dist/U/d_memchr.U
 create mode 100644 dist/U/d_memcmp.U
 create mode 100644 dist/U/d_memcpy.U
 create mode 100644 dist/U/d_memmove.U
 create mode 100644 dist/U/d_memset.U
 create mode 100644 dist/U/d_mkdir.U
 create mode 100644 dist/U/d_mkfifo.U
 create mode 100644 dist/U/d_mktime.U
 create mode 100644 dist/U/d_mmap.U
 create mode 100644 dist/U/d_msem_lck.U
 create mode 100644 dist/U/d_msg.U
 create mode 100644 dist/U/d_msgctl.U
 create mode 100644 dist/U/d_msgget.U
 create mode 100644 dist/U/d_msgrcv.U
 create mode 100644 dist/U/d_msgsnd.U
 create mode 100644 dist/U/d_msync.U
 create mode 100644 dist/U/d_munmap.U
 create mode 100644 dist/U/d_newsadm.U
 create mode 100644 dist/U/d_nice.U
 create mode 100644 dist/U/d_nolnbuf.U
 create mode 100644 dist/U/d_normsig.U
 create mode 100644 dist/U/d_open3.U
 create mode 100644 dist/U/d_passwd.U
 create mode 100644 dist/U/d_pathconf.U
 create mode 100644 dist/U/d_pause.U
 create mode 100644 dist/U/d_perror.U
 create mode 100644 dist/U/d_pidcheck.U
 create mode 100644 dist/U/d_pipe.U
 create mode 100644 dist/U/d_poll.U
 create mode 100644 dist/U/d_popen.U
 create mode 100644 dist/U/d_portable.U
 create mode 100644 dist/U/d_pread.U
 create mode 100644 dist/U/d_preadv.U
 create mode 100644 dist/U/d_psignal.U
 create mode 100644 dist/U/d_pwrite.U
 create mode 100644 dist/U/d_pwritev.U
 create mode 100644 dist/U/d_raster.U
 create mode 100644 dist/U/d_rdchk.U
 create mode 100644 dist/U/d_readdir.U
 create mode 100644 dist/U/d_readlink.U
 create mode 100644 dist/U/d_regcmp.U
 create mode 100644 dist/U/d_rename.U
 create mode 100644 dist/U/d_rmdir.U
 create mode 100644 dist/U/d_rusage.U
 create mode 100644 dist/U/d_safebcpy.U
 create mode 100644 dist/U/d_safemcpy.U
 create mode 100644 dist/U/d_sanemcmp.U
 create mode 100644 dist/U/d_sbrk.U
 create mode 100644 dist/U/d_scandir.U
 create mode 100644 dist/U/d_scannl.U
 create mode 100644 dist/U/d_scorfl.U
 create mode 100644 dist/U/d_select.U
 create mode 100644 dist/U/d_sem.U
 create mode 100644 dist/U/d_semctl.U
 create mode 100644 dist/U/d_semget.U
 create mode 100644 dist/U/d_semop.U
 create mode 100644 dist/U/d_setegid.U
 create mode 100644 dist/U/d_seteuid.U
 create mode 100644 dist/U/d_setgrps.U
 create mode 100644 dist/U/d_setlnbuf.U
 create mode 100644 dist/U/d_setlocale.U
 create mode 100644 dist/U/d_setpgid.U
 create mode 100644 dist/U/d_setpgrp.U
 create mode 100644 dist/U/d_setpgrp2.U
 create mode 100644 dist/U/d_setprior.U
 create mode 100644 dist/U/d_setregid.U
 create mode 100644 dist/U/d_setreuid.U
 create mode 100644 dist/U/d_setrgid.U
 create mode 100644 dist/U/d_setruid.U
 create mode 100644 dist/U/d_setsid.U
 create mode 100644 dist/U/d_sgndchr.U
 create mode 100644 dist/U/d_shm.U
 create mode 100644 dist/U/d_shmat.U
 create mode 100644 dist/U/d_shmctl.U
 create mode 100644 dist/U/d_shmdt.U
 create mode 100644 dist/U/d_shmget.U
 create mode 100644 dist/U/d_sigaction.U
 create mode 100644 dist/U/d_sigblock.U
 create mode 100644 dist/U/d_sighold.U
 create mode 100644 dist/U/d_siglist.U
 create mode 100644 dist/U/d_sigsetjmp.U
 create mode 100644 dist/U/d_sigsetmk.U
 create mode 100644 dist/U/d_sigvec.U
 create mode 100644 dist/U/d_sjis2jis.U
 create mode 100644 dist/U/d_socket.U
 create mode 100644 dist/U/d_speedopt.U
 create mode 100644 dist/U/d_stat.U
 create mode 100644 dist/U/d_statblks.U
 create mode 100644 dist/U/d_stdstdio.U
 create mode 100644 dist/U/d_strccmp.U
 create mode 100644 dist/U/d_strchr.U
 create mode 100644 dist/U/d_strcoll.U
 create mode 100644 dist/U/d_strcspn.U
 create mode 100644 dist/U/d_strctcpy.U
 create mode 100644 dist/U/d_strdup.U
 create mode 100644 dist/U/d_strerror.U
 create mode 100644 dist/U/d_strftime.U
 create mode 100644 dist/U/d_strstr.U
 create mode 100644 dist/U/d_strtod.U
 create mode 100644 dist/U/d_strtok.U
 create mode 100644 dist/U/d_strtol.U
 create mode 100644 dist/U/d_strtoul.U
 create mode 100644 dist/U/d_strxfrm.U
 create mode 100644 dist/U/d_su_chown.U
 create mode 100644 dist/U/d_symlink.U
 create mode 100644 dist/U/d_syscall.U
 create mode 100644 dist/U/d_sysconf.U
 create mode 100644 dist/U/d_syslog.U
 create mode 100644 dist/U/d_system.U
 create mode 100644 dist/U/d_table.U
 create mode 100644 dist/U/d_tcgtpgrp.U
 create mode 100644 dist/U/d_tcstpgrp.U
 create mode 100644 dist/U/d_time.U
 create mode 100644 dist/U/d_times.U
 create mode 100644 dist/U/d_tminsys.U
 create mode 100644 dist/U/d_truncate.U
 create mode 100644 dist/U/d_tzmin.U
 create mode 100644 dist/U/d_tzname.U
 create mode 100644 dist/U/d_ulimit.U
 create mode 100644 dist/U/d_umask.U
 create mode 100644 dist/U/d_usendir.U
 create mode 100644 dist/U/d_usleep.U
 create mode 100644 dist/U/d_uwait.U
 create mode 100644 dist/U/d_vfork.U
 create mode 100644 dist/U/d_voidsig.U
 create mode 100644 dist/U/d_volatile.U
 create mode 100644 dist/U/d_vprintf.U
 create mode 100644 dist/U/d_wait3.U
 create mode 100644 dist/U/d_wait4.U
 create mode 100644 dist/U/d_waitpid.U
 create mode 100644 dist/U/d_wcstombs.U
 create mode 100644 dist/U/d_wctomb.U
 create mode 100644 dist/U/d_wifstat.U
 create mode 100644 dist/U/d_xdrs.U
 create mode 100644 dist/U/defeditor.U
 create mode 100644 dist/U/doublesize.U
 create mode 100644 dist/U/ebcdic.U
 create mode 100644 dist/U/errnolist.U
 create mode 100644 dist/U/etc.U
 create mode 100644 dist/U/filexp.U
 create mode 100644 dist/U/floatsize.U
 create mode 100644 dist/U/fpostype.U
 create mode 100644 dist/U/fpu.U
 create mode 100644 dist/U/gccvers.U
 create mode 100644 dist/U/gidtype.U
 create mode 100644 dist/U/groupstype.U
 create mode 100644 dist/U/h_fcntl.U
 create mode 100644 dist/U/h_sysfile.U
 create mode 100644 dist/U/i_arpainet.U
 create mode 100644 dist/U/i_db.U
 create mode 100644 dist/U/i_dbm.U
 create mode 100644 dist/U/i_dirent.U
 create mode 100644 dist/U/i_dld.U
 create mode 100644 dist/U/i_dlfcn.U
 create mode 100644 dist/U/i_fcntl.U
 create mode 100644 dist/U/i_float.U
 create mode 100644 dist/U/i_gdbm.U
 create mode 100644 dist/U/i_grp.U
 create mode 100644 dist/U/i_inttypes.U
 create mode 100644 dist/U/i_limits.U
 create mode 100644 dist/U/i_locale.U
 create mode 100644 dist/U/i_malloc.U
 create mode 100644 dist/U/i_math.U
 create mode 100644 dist/U/i_memory.U
 create mode 100644 dist/U/i_ndbm.U
 create mode 100644 dist/U/i_neterrno.U
 create mode 100644 dist/U/i_niin.U
 create mode 100644 dist/U/i_poll.U
 create mode 100644 dist/U/i_pwd.U
 create mode 100644 dist/U/i_regex.U
 create mode 100644 dist/U/i_sfio.U
 create mode 100644 dist/U/i_stddef.U
 create mode 100644 dist/U/i_stdlib.U
 create mode 100644 dist/U/i_string.U
 create mode 100644 dist/U/i_sysdir.U
 create mode 100644 dist/U/i_sysfile.U
 create mode 100644 dist/U/i_sysioctl.U
 create mode 100644 dist/U/i_sysmman.U
 create mode 100644 dist/U/i_sysndir.U
 create mode 100644 dist/U/i_sysparam.U
 create mode 100644 dist/U/i_syspoll.U
 create mode 100644 dist/U/i_sysresrc.U
 create mode 100644 dist/U/i_sysselct.U
 create mode 100644 dist/U/i_syssock.U
 create mode 100644 dist/U/i_sysstat.U
 create mode 100644 dist/U/i_systable.U
 create mode 100644 dist/U/i_systimeb.U
 create mode 100644 dist/U/i_systimes.U
 create mode 100644 dist/U/i_systwgcf.U
 create mode 100644 dist/U/i_systypes.U
 create mode 100644 dist/U/i_sysun.U
 create mode 100644 dist/U/i_syswait.U
 create mode 100644 dist/U/i_termio.U
 create mode 100644 dist/U/i_time.U
 create mode 100644 dist/U/i_unistd.U
 create mode 100644 dist/U/i_utime.U
 create mode 100644 dist/U/i_values.U
 create mode 100644 dist/U/i_varhdr.U
 create mode 100644 dist/U/i_vfork.U
 create mode 100644 dist/U/i_whoami.U
 create mode 100644 dist/U/ilp.U
 create mode 100644 dist/U/inc.U
 create mode 100644 dist/U/install.U
 create mode 100644 dist/U/intsize.U
 create mode 100644 dist/U/ipc.U
 create mode 100644 dist/U/issymlink.U
 create mode 100644 dist/U/kernel.U
 create mode 100644 dist/U/lex.U
 create mode 100644 dist/U/lib.U
 create mode 100644 dist/U/libc.U
 create mode 100644 dist/U/libdbm.U
 create mode 100644 dist/U/libflex.U
 create mode 100644 dist/U/libnlist.U
 create mode 100644 dist/U/libnm.U
 create mode 100644 dist/U/libpth.U
 create mode 100644 dist/U/libs.U
 create mode 100644 dist/U/libyacc.U
 create mode 100644 dist/U/lintlib.U
 create mode 100644 dist/U/lns.U
 create mode 100644 dist/U/locdist.U
 create mode 100644 dist/U/longsize.U
 create mode 100644 dist/U/lseektype.U
 create mode 100644 dist/U/maildir.U
 create mode 100644 dist/U/mailer.U
 create mode 100644 dist/U/mailfile.U
 create mode 100644 dist/U/make.U
 create mode 100644 dist/U/mallocsrc.U
 create mode 100644 dist/U/man1dir.U
 create mode 100644 dist/U/man3dir.U
 create mode 100644 dist/U/manfmt.U
 create mode 100644 dist/U/mansrc.U
 create mode 100644 dist/U/mboxchar.U
 create mode 100644 dist/U/mkdep.U
 create mode 100644 dist/U/models.U
 create mode 100644 dist/U/modetype.U
 create mode 100644 dist/U/myhostname.U
 create mode 100644 dist/U/n.U
 create mode 100644 dist/U/nametype.U
 create mode 100644 dist/U/nblock_io.U
 create mode 100644 dist/U/newslevel.U
 create mode 100644 dist/U/newslib.U
 create mode 100644 dist/U/newsspool.U
 create mode 100644 dist/U/nis.U
 create mode 100644 dist/U/nlist_pfx.U
 create mode 100644 dist/U/orderlib.U
 create mode 100644 dist/U/orgname.U
 create mode 100644 dist/U/packadmin.U
 create mode 100644 dist/U/package.U
 create mode 100644 dist/U/pager.U
 create mode 100644 dist/U/patchlevel.U
 create mode 100644 dist/U/perlpath.U
 create mode 100644 dist/U/pidtype.U
 create mode 100644 dist/U/pkgsrc.U
 create mode 100644 dist/U/prefix.U
 create mode 100644 dist/U/prefshell.U
 create mode 100644 dist/U/privlib.U
 create mode 100644 dist/U/prototype.U
 create mode 100644 dist/U/ptrsize.U
 create mode 100644 dist/U/randbits.U
 create mode 100644 dist/U/randfunc.U
 create mode 100644 dist/U/rcs_branch.U
 create mode 100644 dist/U/registers.U
 create mode 100644 dist/U/rootid.U
 create mode 100644 dist/U/sbrksmart.U
 create mode 100644 dist/U/sbrktype.U
 create mode 100644 dist/U/scriptdir.U
 create mode 100644 dist/U/selecttype.U
 create mode 100644 dist/U/sh.U
 create mode 100644 dist/U/shm_for.U
 create mode 100644 dist/U/sig_name.U
 create mode 100644 dist/U/sitearch.U
 create mode 100644 dist/U/sitelib.U
 create mode 100644 dist/U/sizetype.U
 create mode 100644 dist/U/so.U
 create mode 100644 dist/U/sockopt.U
 create mode 100644 dist/U/spitshell.U
 create mode 100644 dist/U/src.U
 create mode 100644 dist/U/ssizetype.U
 create mode 100644 dist/U/startperl.U
 create mode 100644 dist/U/startsh.U
 create mode 100644 dist/U/stdchar.U
 create mode 100644 dist/U/sunscanf.U
 create mode 100644 dist/U/sysman.U
 create mode 100644 dist/U/trnl.U
 create mode 100644 dist/U/uidtype.U
 create mode 100644 dist/U/usenm.U
 create mode 100644 dist/U/usesocks.U
 create mode 100644 dist/U/usrinc.U
 create mode 100644 dist/U/vaproto.U
 create mode 100644 dist/U/voidflags.U
 create mode 100644 dist/U/warnflags.U
 create mode 100644 dist/U/yacc.U
 create mode 100755 dist/bindex
 create mode 100755 dist/configure
 create mode 100644 dist/files/Jmake.rules
 create mode 100644 dist/files/Jmake.tmpl
 create mode 100755 dist/files/fixcpp
 create mode 100644 dist/lib/C/fake/dup2.C
 create mode 100644 dist/lib/C/fake/getopt.C
 create mode 100644 dist/lib/C/fake/rename.C
 create mode 100644 dist/lib/C/fake/scandir.C
 create mode 100644 dist/lib/C/fake/setsid.C
 create mode 100644 dist/lib/errnolist.SH
 create mode 100644 dist/lib/errnolist.a
 create mode 100644 dist/lib/errnolist.mk
 create mode 100644 dist/lib/makedepend.SH
 create mode 100644 dist/lib/makedir.SH
 create mode 100755 dist/makegloss

diff --git a/.gitignore b/.gitignore
index 79d154f..bfefddb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
 U/all
 dist-svn
 dist-3.5-20
-dist
diff --git a/bin/find_config_h_deps.pl b/bin/find_config_h_deps.pl
new file mode 100755
index 0000000..13f7ddf
--- /dev/null
+++ b/bin/find_config_h_deps.pl
@@ -0,0 +1,77 @@
+#!/pro/bin/perl
+
+# This script reorders config_h.SH after metaconfig
+# Changing metaconfig is too complicated
+#
+# Copyright (C) 2005-2005 by H.Merijn Brand (m)'05 [25-05-2005]
+#
+# You may distribute under the terms of either the GNU General Public
+# License or the Artistic License, as specified in the README file.
+
+use strict;
+use warnings;
+
+my ($cSH, $ch, @ch, %ch) = ("config_h.SH");
+open $ch, "<$cSH" or die "Cannot open $cSH: $!\n";
+{   local $/ = "\n\n";
+    @ch = <$ch>;
+    close  $ch;
+    }
+
+my @ref;
+sub ch_index ()
+{
+    %ch = ();
+    foreach my $ch (0 .. $#ch) {
+       while ($ch[$ch] =~ m{^/\* ([A-Z]\w+)}gm) {
+           $ch{$1} = $ch;
+           push @{$ref[$ch]}, $1;
+           }
+       }
+    } # ch_index
+
+ch_index;
+my @CH = @ch;
+my %RF;
+foreach my $ch (0 .. $#CH) {
+    $CH[$ch] =~ s{/\*.*?\*/\s*}{}gis;
+    while ($CH[$ch] =~ m{\b([A-Z]\w+)}g) {
+       exists $ch{$1} or  next;
+       $ch{$1} == $ch and next;
+       #print STDERR "$ref[$ch][0] ($ch) ref to $1 ($ch{$1})\n";
+       $RF{$1}{$ref[$ch][0]}++;
+       }
+    }
+foreach my $r (sort keys %RF) {
+    my $R = sprintf "%-20s", $r;
+    print "    $r => [ qw ( @{[sort keys %{$RF{$r}}]}\t) ],\n";
+    }
+
+my %dep = (
+    # This symbol must be defined BEFORE ...
+    BYTEORDER          => [ qw( UVSIZE                         ) ],
+    LONGSIZE           => [ qw( BYTEORDER                      ) ],
+    MULTIARCH          => [ qw( BYTEORDER MEM_ALIGNBYTES       ) ],
+    USE_CROSS_COMPILE  => [ qw( BYTEORDER MEM_ALIGNBYTES       ) ],
+    HAS_QUAD           => [ qw( I64TYPE                        ) ],
+    HAS_GETGROUPS      => [ qw( Groups_t                       ) ],
+    HAS_SETGROUPS      => [ qw( Groups_t                       ) ],
+    );
+
+my $CHANGED = 0;
+my $changed;
+do {
+    $changed = 0;
+    foreach my $sym (keys %dep) {
+       ch_index;
+       foreach my $dep (@{$dep{$sym}}) {
+           print STDERR "Check if $sym\t($ch{$sym}) precedes 
$dep\t($ch{$dep})\n";
+           $ch{$sym} < $ch{$dep} and next;
+           my $ch = splice @ch, $ch{$sym}, 1;
+           splice @ch, $ch{$dep}, 0, $ch;
+           $changed++;
+           $CHANGED++;
+           ch_index;
+           }
+       }
+    } while ($changed);
diff --git a/bin/jmake b/bin/jmake
new file mode 100755
index 0000000..77281ef
--- /dev/null
+++ b/bin/jmake
@@ -0,0 +1,510 @@
+#!/usr/bin/perl
+       eval 'exec perl -S $0 "$@"'
+               if $runnning_under_some_shell;
+
+# $Id: jmake.SH 20 2008-01-04 23:14:00Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# $Log: jmake.SH,v $
+# Revision 3.0.1.9  2004/08/22 09:01:42  ram
+# patch71: renamed |test as |case as the construct has its syntax
+# patch71: added |subst section to allow variable substitutions
+#
+# Revision 3.0.1.8  2004/08/21 23:19:46  ram
+# patch71: added '|shell' section to emit verbatim code in Makefile.SH
+# patch71: new '|test' to conditionally generate Makefile sections
+#
+# Revision 3.0.1.7  2004/08/21 20:59:57  ram
+# patch71: replaced old "do foo()" with modern "&foo()" syntax
+# patch71: take care of junk emitted by GNU make when running commands
+# patch71: new ^^^ escape sequence, removing extra spaces afterwards
+#
+# Revision 3.0.1.6  1995/09/25  09:08:01  ram
+# patch59: will now force macro definitions to the left
+#
+# Revision 3.0.1.5  1995/07/25  13:34:47  ram
+# patch56: all error messages are now prefixed with the program name
+#
+# Revision 3.0.1.4  1995/03/21  08:45:27  ram
+# patch52: now invokes cpp through new fixcpp script
+# patch52: first pass now skips cpp comments alltogether
+#
+# Revision 3.0.1.3  1994/10/29  15:47:01  ram
+# patch36: added various escapes in strings for perl5 support
+#
+# Revision 3.0.1.2  1993/08/24  12:12:50  ram
+# patch3: privlib dir was ~name expanded in the wrong place
+#
+# Revision 3.0.1.1  1993/08/19  06:42:13  ram
+# patch1: leading config.sh searching was not aborting properly
+#
+# Revision 3.0  1993/08/18  12:04:17  ram
+# Baseline for dist 3.0 netwide release.
+#
+
+$dir = '/pro/3gl/CPAN/lib/dist/files';
+$cpp = '/usr/bin/cpp';
+$version = '3.5';
+$patchlevel = '0';
+
+($me = $0) =~ s|.*/(.*)|$1|;
+$dir = &tilda_expand($dir);            # ~name expansion
+$file = $dir . '/Jmake.tmpl';
+
+$cpp_opt = "-I. ";                             # For Jmakefile, which is local
+while ($ARGV[0] =~ /^-/) {
+       $_ = shift;
+       last if /--/;
+       $cpp_opt .= "$_ ";
+}
+$cpp_opt .= "-I$dir";
+
+# Pass 0 is looking at the template for "?CP:CP =" lines that are to be
+# emitted if the CP variable is needed.  Later on, when we see $(CP) being
+# used, we'll be able to set the $symbol{CP} entry to 1 to have the CP
+# variable initialized by the template.
+
+open(TMPL, $file) || die "$me: can't open $file: $!\n";
+while (<TMPL>) {
+       next unless /^\?([\w_]+):\1\s+=/;
+       $wanted{$1}++;
+}
+close TMPL;
+
+# Thank you HP-UX for having a cpp that blindly strips trailing backslashes
+# in the text. Run through cpp by using the fixcpp script...
+
+open(CPP, "$dir/fixcpp $cpp_opt $file |");
+while (<CPP>) {
+       # Record defined symbols in Jmakefile. We won't catch symbols
+       # in conditional commands, but that's ok, I hope.
+       if ($in_symbol) {
+               $val = $_;
+               $in_symbol = 0 if !($val =~ s/\\\s*$//);        # Last line
+               if ($val = /^\|expand/) {               # Found an expand 
command
+                       $in_symbol = 0;                         # Stop 
gathering value
+                       $val .= "void::x";                      # Stop any 
incomplete escape sequence
+               }
+               chop($val);
+               $Makesym{$current_symbol} .= $val;
+       } elsif (/^\s*(\w+)\s*=(.*)/ && !$in_symbol) {
+               # Found a makefile's macro declaration
+               $val = $2;
+               $current_symbol = $1;
+               if ($val =~ s/\\\s*$//) {       # Remove final '\'
+                       $in_symbol = 1;                 # This is a 
continuation line
+               }
+               $Makesym{$current_symbol} = $val;
+               push(@Order, $current_symbol);  # Keep track of order
+       }
+       # Protect RCS keyword Id or Header from normal substitution
+       s/\$(Id|Header|Log)/\$X-$1/;
+       # Restore possibly escaped C comments
+       s|/#\*|/*|g;
+       s|\*#/|*/|g;
+       # Remove all ^^^ (null space character) up to next non-space character
+       s|\^\^\^\s*||g;
+       # Remove all ^^ (null space character)
+       s|\^\^||g;
+       # Restore escaped ^^ and ^^^ sequences
+       s|\^\\\^\\\^|^^^|g;
+       s|\^\\\^|^^|g;
+       next if /^#\s+\d+/;             # Skip cpp commments
+
+       s/^;#/#/;
+       s/@#\s?/\n/g;           # Kept for backward compatibility
+       s/@!\s?/\n/g;
+       s/@@\s?/\n\t/g;
+
+       # A '\r' is added to all lines, in order to let 'split' keep them
+       # As lines ending with '\' won't fit in the next regular
+       # expression (why ?), we have to treat that special case separately
+       s/\n$/\r\n/gm;
+       s/\\\s*$/\\\r/gm;       # Remove spaces after final '\' and add '\r'
+       @macro = split(/\n/);
+       for ($i = 0; $i <= $#macro; $i++) {
+               chop($_ = $macro[$i]);                          # Remove final 
'\r'
+               s/\s+$//g;                                                      
# Remove possible useless spaces
+               if (/^TOP\s*=\s*(\S+)/) {                       # Get the top 
from generated file
+                       $top = $1;
+               }
+               find_wanted($_);                                        # Look 
for known $(VAR) usage
+               if (s/^\s*>//) {                                        # '>' 
means "symbol wanted"
+                       warn "$me: the '>$_' construct is deprecated for known 
symbols\n"
+                               if $wanted{$_} && 
!$warned_wanted_symbol_deprecated++;
+                       $symbol{$_} = 1;
+               } elsif (s/^\s*\+//) {                          # '+' means 
"initialization section"
+                       if (s/^\+(\w+)//) {                             # '++' 
means add to variable list
+                               $added{$1} .= $_;
+                       } else {                                                
# A single '+' means "add as is".
+                               push(@init, $_);
+                       }
+               } elsif (s/^\|//) {                                     # 
Command for us
+                       if (/suffix\s+(\S+)/) {                 # Add suffix
+                               push(@suffix, $1) unless $seen{$1};
+                               $seen{$1} = 1;
+                       } elsif (s/^rule://) {                  # Add building 
rule
+                               s/^\s(\s*\S+)/\t$1/;            # Make sure 
leading tab is there
+                               push(@rule, $_);
+                       } elsif (/^skip/) {                             # 
Unconditional skip... funny!
+                               push(@makefile, "|$_");         # Skip handled 
in pass 2
+                       } elsif (/^expand/) {
+                               push(@makefile, "|$_");         # Expand 
handled in pass 2
+                       } elsif (/^once\s+(.*)/) {              # Once handled 
in pass 1
+                               if ($Once{$1}++) {                      # 
Symbol already seen -- skip
+                                       for (; $i <= $#macro; $i++) {
+                                               last if $macro[$i] =~/^-once/;
+                                       }
+                                       warn("$me: -once not found for $1")
+                                               unless $macro[$i] =~/^-once/;
+                               }
+                       } elsif (/^shell/) {                    # Escaping to 
shell
+                               push(@makefile, "|$_");         # will be 
handled in pass 2
+                       } elsif (/^case/) {                             # 
Conditional generation
+                               push(@makefile, "|$_");         # will be 
handled in pass 2
+                       } elsif (/^subst/) {                    # Section with 
var substitution
+                               push(@makefile, "|$_");         # will be 
handled in pass 2
+                       } else {
+                               print "$me: Warning: unknown command $_\n";
+                       }
+               } else {
+                       next if /^-once/;                       # Control 
statement removed
+                       push(@makefile, $_);
+               }
+       }
+}
+close CPP;
+
+@key = keys(%added);
+$last_was_blank = 1;   # To avoid blank line at the top of the file
+$symbol{'INIT'} = 1 if ($#init >= 0 || $#key >=0);             # 
Initializations
+$symbol{'SUFFIX'} = 1 if ($#suffix >= 0 || $#rule >=0);        # Rules or 
suffixes
+$symbol{'TOP'} = 1 if $top eq '.';             # If imake invoked for the top
+
+$shellmode = 0;                        # Set to true within "shell" section
+$casemode = 0;                 # Counts nesting levels within "case" section
+$substmode = 0;                        # True when within section with 
variable substitution
+
+$SPIT_START = "\$spitshell >>Makefile <<'!NO!SUBS!'\n";
+$SPIT_END = "!NO!SUBS!\n";
+$GROK_START = "\$spitshell >>Makefile <<!GROK!THIS!\n";
+$GROK_END = "!GROK!THIS!\n";
+
+open(MAKEFILE, ">Makefile.SH");
+# We have to use for instead of foreach to handle 'skip' easily
+line: for ($i = 0; $i <= $#makefile; $i++) {
+       $_ = $makefile[$i];
+       next if /^-skip|-expand/;               # They might have made a mistake
+
+       # Strip consecutive blank lines in generated file
+
+       if (/^\s*$/) {
+               next if ($last_was_blank);
+               $last_was_blank = 1;
+       } else {
+               $last_was_blank = 0;
+       }
+
+       # In shell mode, we're transparent, untill we reach a "-shell"
+       # We don't call print_makefile() as we don't want to record
+       # those non-makefile lines in the @Generated array.
+
+       if ($shellmode) {
+               if (/^-shell/) {                        # Ending shell mode, 
back to Makefile
+                       print MAKEFILE $substmode ? $GROK_START : $SPIT_START;
+                       $shellmode = 0;
+               } elsif (/^\|shell/) {
+                       die "$me: can't nest 'shell' sections.\n";
+               } else {
+                       print MAKEFILE "$_\n";
+               }
+               next;
+       } elsif (/^\|shell/) {
+               print MAKEFILE $substmode ? $GROK_END : $SPIT_END;
+               $shellmode = 1;                         # Next lines emitted 
verbatim as shell
+               next;
+       }
+
+       # In subst mode, the section until "-subst" is emitted regularily,
+       # excepted that it will be in a grok section, so its $var will be
+       # substituted by the shell.
+
+       if ($substmode) {
+               if (/^-subst/) {                        # Ending subst mode, 
back to regular
+                       print MAKEFILE $GROK_END;
+                       print MAKEFILE $SPIT_START;
+                       $substmode = 0;
+                       next;
+               } elsif (/^\|subst/) {
+                       die "$me: can't nest 'subst' sections.\n";
+               } 
+               # Continue with line
+       } elsif (/^\|subst/) {
+               print MAKEFILE $SPIT_END;       # End spit section in 
Makefile.SH
+               print MAKEFILE $GROK_START;
+               $substmode = 1;                         # Next lines subject to 
$ interpretation
+               next;
+       }
+
+       # In a "case" section, the Makefile will be conditionally generated
+       # based on the value of the supplied variable, as evaluated by the 
shell.
+       # We can nest "case" sections without problems.
+
+       if (/^-case/) {                                 # Ending current case 
section
+               if ($casemode == 0) {
+                       warn "$me: ignoring spurious '-case'\n";
+                       next;
+               }
+               print MAKEFILE $substmode ? $GROK_END : $SPIT_END;
+               my $indent = "\t" x ($casemode - 1);
+               print MAKEFILE "${indent}\t;;\n";
+               print MAKEFILE "${indent}esac\n";
+               print MAKEFILE "${indent}", $substmode ? $GROK_START : 
$SPIT_START;
+               $casemode--;
+               next;
+       }
+
+       if (/^\|case/) {
+               my ($var, $value) = /^\|case\s+(\w+)\s+in\s+(.*)/;
+               die "$me: unparseable directive '$_'\n" if $var eq '';
+               $casemode++;
+               print MAKEFILE $substmode ? $GROK_END : $SPIT_END;
+               my $indent = "\t" x ($casemode - 1);
+               print MAKEFILE "${indent}case \"\$$var\" in\n";
+               print MAKEFILE "${indent}$value)\n";
+               print MAKEFILE "${indent}\t", $substmode ? $GROK_START : 
$SPIT_START;
+               next;
+       }
+
+       # Process regular line to be generated in Makefile.SH
+
+       s/<TAG>/[jmake $version PL$patchlevel]/;
+
+       # Lines starting with ?SYMBOL: (resp. %SYMBOL:) are to be processed
+       # only if SYMBOL is defined (resp. undefined).
+
+       # Apply in sequence
+       while (/^\s*\?|\s*%/) {
+               if (s/^\s*\?(\w+)://) {                                 # 
Wanted symbol ?
+                       next line unless $symbol{$1};
+               } elsif (s/^\s*%(\w+)://) {                             # 
Unwanted symbol ?
+                       next line if $symbol{$1};
+               } else {
+                       print "$me: Warning: missing ':' in $_\n";
+                       last;
+               }
+       }
+
+       # We wish to make sure there is a leading tab if the line starts with
+       # a space to prevent problems later on. However, variable definitions
+       # might want to be aligned on the '=' (imake style). Not all make
+       # may be able to cope with those though, so they are left justified
+       # again.
+
+       s/^\s/\t/ unless /^\s+\w+\s+=/;         # Make sure leading tab is there
+       s/^\s+(\w+\s+=)/$1/;                            # Left justify variable 
definition
+       s/^;#/#/;                                                       # 
Comments in Jmakefile
+
+       if (s/^\|//) {                                          # Command for us
+               if (/^skip/) {                                  # Skip until 
-skip
+                       for (; $i <= $#makefile; $i++) {
+                               last if $makefile[$i] =~ /^-skip/;
+                       }
+               } elsif (s/^expand//) {
+                       &init_expand($_);                       # Initializes 
data structures
+                       $i++;                                           # Skip 
expand line
+                       undef @Expand;                          # Storage for 
expanded lines
+                       $pattern = '';                          # Assume no 
pattern
+                       for (; $i <= $#makefile; $i++) {
+                               $_ = $makefile[$i];
+                               if (s/^-expand//) {                     # 
Reached end of expansion
+                                       if (s/^\s*(.*)/$1/) {   # Expand 
followed by a pattern
+                                               $pattern = $_;          # Get 
pattern to be removed
+                                       }
+                                       last;
+                               }
+                               s/^\s/\t/;                              # Make 
sure leading tab is there
+                               push(@Expand, $_);              # Line to be 
expanded
+                       }
+                       &expand($pattern);                      # Expand all 
lines in buffer
+               } else {
+                       die "$me: unknown command $_\n";
+               }
+       } elsif (/^INIT/) {                                             # 
Initialization section
+               # All the initializations are put in the variable substitution
+               # section of the Makefile.SH. Therefore, we have to protect all
+               # the '$' signs that are not followed by an alphanumeric 
character.
+               foreach (@init) {
+                       # Dumps core sometimes with perl 4.0 PL10
+                       # &protect_dollars(*_);
+                       $_ = &protect_dollars($_);
+                       &print_makefile($_);
+               }
+               foreach (@key) {        # @key set earlier to keys(%added)
+                       $_ .= " = " . $added{$_};
+                       # Dumps core sometimes with perl 4.0 PL10
+                       # &protect_dollars(*_);
+                       $_ = &protect_dollars($_);
+                       &print_makefile($_);
+               }
+       } elsif (/^SUFFIX/) {                                   # 
Suffixes/Rules section
+               # Rules and suffixes are put in the variable substitution
+               # section of the Makefile.SH. Therefore, we have to protect all
+               # the '$' signs that are not followed by an alphanumeric 
character.
+               if ($#suffix >= 0) {
+                       print MAKEFILE ".SUFFIXES:";
+                       foreach (@suffix) {
+                               # Dumps core sometimes with perl 4.0 PL10
+                               # &protect_dollars(*_);
+                               $_ = &protect_dollars($_);
+                               print MAKEFILE " $_";
+                       }
+                       print MAKEFILE "\n\n";
+               }
+               foreach (@rule) {
+                       # Dumps core sometimes with perl 4.0 PL10
+                       # &protect_dollars(*_);
+                       $_ = &protect_dollars($_);
+                       print MAKEFILE "$_\n";
+               }
+       } else {
+               &print_makefile($_);
+       }
+}
+close MAKEFILE;
+
+sub protect_dollars {
+       # Dumps core sometimes with perl 4.0 PL10
+       # local(*_) = shift(@_);
+       s/\\\$/\\=/g;           # Protect already escaped '$'
+       s/(\$\W)/\\$1/g;        # Escape unprotected '$'
+       s/\\=/\\\$/g;           # Restore escaped '$'
+       $_;                                     # Because perl dumps core... :-(
+}
+
+# Initializes data structures for expansion. If we detect Makefile
+# macro in the 'expand' line (the argument), then we write a small
+# makefile that will do the substitution for us -- I'm lazy today :-)
+sub init_expand {
+       local($_) = shift(@_);
+       undef %Vars;            # Reset array of variables
+       $Vars_len = 0;          # Number of "symbols" in first expanded
+       if (/\$\(\w+\)/) {      # If at least one macro
+               local($make) = "/tmp/mkjm$$";
+               open(MAKE, ">$make") || die "$me: can't create $make: $!\n";
+               &gen_variables();                       # Generates already 
computed variables
+               foreach $var (@Order) {         # Print each in order we found 
them
+                       print MAKE "$var = $Makesym{$var}\n" if !$Gvars{$var};
+               }
+               # We prepend OUTPUT: in front of the line that interests us, 
because
+               # some makes can print extra information, especially GNU make 
with
+               # its entering/leaving blurb when invoked from another makefile.
+               print MAKE "all:\n\t\@echo 'OUTPUT: $_'\n";
+               close MAKE;
+               chop($_ = `make -f $make all | grep ^OUTPUT:`);
+               unlink($make);
+       }
+       s/^OUTPUT: //;
+       while (s/^\s*(\w+)!([^!]*)!//) {
+               $Vars{$1} = $2;
+               # Record only length for _first_ expanded symbol
+               $Vars_len = split(/\s\s*/, $2) unless $Vars_len;
+       }
+}
+
+# Expand lines in the @Expand array. The argument is a pattern which is to
+# be removed from the last chunk of expanded lines.
+# For each symbol s, !s is replaced by the next item, and !s:p=q does the
+# same after having replaced the pattern 'p' by pattern 'q' in the item.
+# Spaces are NOT allowed in 'p' or 'q'. Substitution is done once (no /g).
+sub expand {
+       local($pattern) = shift;                # To-be-removed pattern for 
last chunk
+       local($_);
+       local($sub);
+       local($i);
+       local(@expands);
+       for ($i = 0; $i < $Vars_len; $i++) {
+               foreach $line (@Expand) {
+                       $_ = $line;             # Don't modify elements in array
+                       foreach $sym (keys %Vars) {
+                               @expands = split(/\s\s*/, $Vars{$sym});
+                               $sub = $expands[$i];
+                               $sub =~ s/\/\///g;              # // is a void 
value
+                               while (s/!${sym}:([^\s]*)=([^\s]*)/,x##x,/) {
+                                       # Replacing item is altered by some 
pattern
+                                       local($p) = $1;
+                                       local($q) = $2;
+                                       local($subq) = $sub;
+                                       eval "\$subq =~ s=${p}=${q}=";
+                                       s/,x##x,/${subq}/;
+                               }
+                               s/!${sym}/${sub}/g;
+                       }
+                       # Protect substitution in an 'eval' in case of error
+                       eval "s/${pattern}\$//" if $pattern && $i == ($Vars_len 
- 1);
+                       &print_makefile($_);
+               }
+       }
+}
+
+# Prints its argument in MAKEFILE and records it also in Generated
+sub print_makefile {
+       local($_) = shift(@_);          # Line to be printed
+       print MAKEFILE "$_\n";
+       push(@Generated, "$_\n");
+}
+
+# Generates in MAKE file all the generated variable we have so far for
+# final Makefile. This is mainly intended to allow expansion of variables
+# which are already defined with an expand.
+sub gen_variables {
+       undef %Gvars;                           # Reset already generated 
variables
+       local ($in_symbol) = 0;         # True when in variable (Makefile's 
macro)
+       foreach (@Generated) {
+               if ($in_symbol) {
+                       if (/^\s*(\w+)\s*=(.*)/) {              # Missed the 
end of previous macro
+                               $in_symbol = 0;
+                               $Gvars{$1} = 1;                                 
# Definition of variable seen
+                               $in_symbol = 1 if (/\\\s*$/);   # There is a 
final '\'
+                               print MAKE "void::\n";                  # Cut 
incomplete esc sequence
+                       } else  {
+                               $in_symbol = 0 if !(/\\\s*$/);  # Last line
+                       }
+                       print MAKE;
+               } elsif (/^\s*(\w+)\s*=(.*)/ && !$in_symbol) {
+                       # Found a makefile's macro declaration
+                       $Gvars{$1} = 1;                                 # 
Definition of variable seen
+                       $in_symbol = 1 if (/\\\s*$/);   # There is a final '\'
+                       print MAKE;
+               }
+       }
+       print MAKE "void::\n";          # Cut incomplete escape sequence
+}
+
+# Parse line to extract all $(VAR) usage and trigger the symbol if VAR
+# is among the wanted set, as if they had manually said ">VAR" like in
+# the old days.
+sub find_wanted {
+       my ($l) = @_;
+       while ($l =~ s/\$\(([\w_]+)\)//) {
+               $symbol{$1}++ if $wanted{$1};
+       }
+}
+
+# Perform ~name expansion ala ksh...
+# (banish csh from your vocabulary ;-)
+sub tilda_expand {
+       local($path) = @_;
+       return $path unless $path =~ /^~/;
+       $path =~ s:^~([^/]+):(getpwnam($1))[$[+7]:e;                    # ~name
+       $path =~ s:^~:$ENV{'HOME'} || (getpwuid($<))[$[+7]:e;   # ~
+       $path;
+}
+
diff --git a/bin/jmkmf b/bin/jmkmf
new file mode 100755
index 0000000..bc56c48
--- /dev/null
+++ b/bin/jmkmf
@@ -0,0 +1,83 @@
+#!/bin/sh
+# @(#) Generates a Makefile from a Jmakefile
+
+# $Id: jmkmf.SH 1 2006-08-24 12:32:52Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# $Log: jmkmf.SH,v $
+# Revision 3.0.1.2  2004/08/21 23:18:13  ram
+# patch71: automatically figures the top dir and the current dir
+# patch71: don't run Makefile.SH if the jmake call failed
+#
+# Revision 3.0.1.1  1993/08/19  06:42:14  ram
+# patch1: leading config.sh searching was not aborting properly
+#
+# Revision 3.0  1993/08/18  12:04:19  ram
+# Baseline for dist 3.0 netwide release.
+#
+
+usage="usage:  $0 [top_of_sources_pathname [current_directory]]"
+
+curdir=
+
+case $# in 
+    0)
+               if test -f .package; then topdir=.;
+               elif test -f ../.package; then topdir=..;
+               elif test -f ../../.package; then topdir=../..;
+               elif test -f ../../../.package; then topdir=../../..;
+               elif test -f ../../../../.package; then topdir=../../../..;
+               else
+                       echo "$0: WARNING: can't determine top package 
directory" >&2
+               fi
+               ;;
+    1) topdir=$1 ;;
+    2) topdir=$1  curdir=$2 ;;
+    *) echo "$usage" 1>&2; exit 1 ;;
+esac
+
+case "$topdir" in
+    -*) echo "$usage" 1>&2; exit 1 ;;
+esac
+
+case "$curdir" in
+'')
+       here=`pwd`
+       top=`cd $topdir; pwd`
+       curdir=`perl -e \
+               'print substr($ARGV[0], length($ARGV[1])+1), "\n";' $here $top`
+       case "$curdir" in
+       '') curdir=.;;
+       esac
+       ;;
+esac
+
+if test -f Jmakefile; then
+       : ok
+else
+       echo "$0: no Jmakefile found in current directory" >&2
+       exit 1
+fi
+
+if test -f Makefile.SH; then 
+    echo mv Makefile.SH Makefile.SH~
+    mv Makefile.SH Makefile.SH~
+fi
+
+args="-DTOPDIR=$topdir -DCURDIR=$curdir"
+
+echo jmake $args
+if jmake $args; then
+       echo sh Makefile.SH
+       sh Makefile.SH
+else
+       echo "jmake failed, aborting" >&2
+       exit 1
+fi
diff --git a/bin/kitpost b/bin/kitpost
new file mode 100755
index 0000000..bdde1cc
--- /dev/null
+++ b/bin/kitpost
@@ -0,0 +1,284 @@
+#!/usr/bin/perl
+       eval "exec perl -S $0 $*"
+               if $running_under_some_shell;
+
+# $Id: kitpost.SH 1 2006-08-24 12:32:52Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# $Log: kitpost.SH,v $
+# Revision 3.0.1.2  1994/10/29  15:48:26  ram
+# patch36: don't use rootid as a variable, it is known by metaconfig
+#
+# Revision 3.0.1.1  1994/05/06  13:54:53  ram
+# patch23: created
+#
+
+$inews='inews';
+$mailer='/usr/sbin/sendmail';
+$orgname='PROCURA B.V.';
+$version = '3.5';
+$patchlevel = '0';
+
+$progname = &profile;  # Read ~/.dist_profile
+require 'getopts.pl';
+&usage unless $#ARGV >= 0;
+&usage unless &Getopts("hrVm:D:H:");
+
+if ($opt_V) {
+       print STDERR "$progname $version PL$patchlevel\n";
+       exit 0;
+} elsif ($opt_h) {
+       &usage;
+}
+
+$RCSEXT = ',v' unless $RCSEXT;
+if ($inews eq 'inews') {
+       $inews = '/usr/lib/news/inews' if -f '/usr/lib/news/inews';
+}
+
+chdir '..' if -d '../bugs';
+
+&readpackage;
+
+$orgname = &tilda_expand($orgname);
+chop($orgname = `cat $orgname`) if $orgname =~ m|^/|;
+
+if ($opt_r) {
+       $repost = ' (REPOST)';
+}
+
+while ($_ = shift) {
+       if (/^(kit)?[1-9][\d\-]*$/) {
+               s/^kit//;
+               push(@argv,$_);
+       } else {
+               push(@ngroups,$_);
+       }
+}
+$ngroups = join(',',@ngroups) unless $#ngroups < 0;
+$dest = $opt_m;
+&usage unless $ngroups || $dest;
+
+@ARGV = @argv;
+
+if (-f "$package.kit10") {
+       @filelist = <$package.kit[0-9][0-9]>;
+}
+else {
+       @filelist = <$package.kit[0-9]>;
+}
+pop(@filelist) =~ /(\d+)$/ && ($maxnum = $1 + 0);
+
+if ($#ARGV < 0) {
+       $argv = "1-$maxnum";
+       @ARGV = $argv;
+}
+
+$argv = &rangeargs(@ARGV);
+@ARGV = split(' ', $argv);
+
+$argv =~ s/ $//;
+
+if ($#ARGV < 0) {
+       print STDERR "$progname: no kits specified.\n";
+       &usage;
+} else {
+       local($s) = $#ARGV ? 's' : '';
+       print "$progname: posting $package $baserev kit$s $argv to 
$ngroups...\n"
+               if $ngroups;
+       print "$progname: mailing $package $baserev kit$s $argv to $dest...\n"
+               if $dest;
+}
+
+$desc = "$opt_D, " if $opt_D;
+
+fork && exit;
+
+# Compute a suitable root message ID that all parts will reference, so that
+# threaded news readers will correctly process them.
+# Unfortunately, this works only when all kits are sent.
+($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
+       localtime(time);
+$mon++;
+$rootmid = "$year$mon$mday$hour$min$sec.AA$$";
+$first = $maxnum >= 10 ? "01" : "1";
+$rootmsgid = "<$rootmid.P$first.$maintloc>";
+
+until ($#ARGV < 0) {
+       $kitnum = shift;
+       $kitnum = "0$kitnum" if $kitnum < 10 && $maxnum >= 10;
+       open(FILE, "$package.kit$kitnum") ||
+               die "$progname: can't open $package.kit$kitnum: $!\n";
+       if ($ngroups) {
+               open(INEWS,"|$inews -h") || die "$progname: can't fork $inews: 
$!\n";
+       }
+       if ($dest) {
+               $opt = '-odq' if $mailer =~ /sendmail/;
+               $dest =~ s/,/ /g;
+               ($to = $dest) =~ s/\s+/, /g;
+               open(MAILER,"|$mailer $opt $dest") ||
+                       die "$progname: can't fork $mailer: $!\n";
+       }
+
+       $msg_id = "<$rootmid.P$kitnum.$maintloc>";
+       $msg_id = $rootmsgid if $kitnum == 1;
+       $msg_id .= "\nReferences: $rootmsgid" if $kitnum != 1;
+
+       print INEWS "Newsgroups: $ngroups\n";
+       print MAILER "To: $to\n";
+$head = <<EOH;
+Subject: $package $baserev - ${desc}part$kitnum/$maxnum$repost
+Message-ID: $msg_id
+Organization: $orgname
+
+Submitted-by: $maintname <$maintloc>
+Archive-name: $package-$baserev/part$kitnum
+Environment: UNIX
+
+EOH
+       print INEWS $head;
+       print MAILER $head;
+
+       if ($kitnum == 1 && $opt_H) {
+               open(HEAD, $opt_H) || warn "$progname: can't open $opt_H: $!\n";
+               while (<HEAD>) {
+                       print INEWS;
+                       print MAILER;
+               }
+               close HEAD;
+       }
+
+       while (<FILE>) {
+               print INEWS;
+               print MAILER;
+       }
+       close FILE;
+       close INEWS;
+       die "$progname: could not post part$kitnum.\n" if $ngroups && $?;
+       close MAILER;
+       die "$progname: could not send part$kitnum.\n" if $dest && $?;
+}
+
+sub usage {
+       print STDERR <<EOM;
+Usage: $progname [-hrV] [-H file] [-D desc] [-m dest1,dest2] [kits] 
[newsgroups]
+  -h : print this message and exit
+  -m : set-up recipients for (additional) mailing
+  -r : signals a repost
+  -D : specify description string for subject line
+  -H : specify file to be used as header for first part
+  -V : print version number and exit
+EOM
+       exit 1;
+}
+
+sub rangeargs {
+       local($result) = '';
+       local($min,$max,$_);
+       while ($#_ >= 0) {
+               $_ = shift(@_);
+               while (/^\s*\d/) {
+                       s/^\s*(\d+)//;
+                       $min = $1;
+                       if (s/^,//) {
+                               $max = $min;
+                       }
+                       elsif (s/^-(\d*)//) {
+                               $max = $1;
+                               if ($max == 0 && $maxnum) {
+                                       $max = $maxnum;
+                               }
+                               s/^[^,],?//;
+                       }
+                       else {
+                               $max = $min;
+                       }
+                       for ($i = $min; $i <= $max; ++$i) {
+                               $result .= $i . ' ';
+                       }
+               }
+       }
+       $result;
+}
+
+sub readpackage {
+       if (! -f '.package') {
+               if (
+                       -f '../.package' ||
+                       -f '../../.package' ||
+                       -f '../../../.package' ||
+                       -f '../../../../.package'
+               ) {
+                       die "Run in top level directory only.\n";
+               } else {
+                       die "No .package file!  Run packinit.\n";
+               }
+       }
+       open(PACKAGE,'.package');
+       while (<PACKAGE>) {
+               next if /^:/;
+               next if /^#/;
+               if (($var,$val) = /^\s*(\w+)=(.*)/) {
+                       $val = "\"$val\"" unless $val =~ /^['"]/;
+                       eval "\$$var = $val;";
+               }
+       }
+       close PACKAGE;
+}
+
+# Perform ~name expansion ala ksh...
+# (banish csh from your vocabulary ;-)
+sub tilda_expand {
+       local($path) = @_;
+       return $path unless $path =~ /^~/;
+       $path =~ s:^~([^/]+):(getpwnam($1))[$[+7]:e;                    # ~name
+       $path =~ s:^~:$ENV{'HOME'} || (getpwuid($<))[$[+7]:e;   # ~
+       $path;
+}
+
+# Set up profile components into %Profile, add any profile-supplied options
+# into @ARGV and return the command invocation name.
+sub profile {
+       local($profile) = &tilda_expand($ENV{'DIST'} || '~/.dist_profile');
+       local($me) = $0;                # Command name
+       $me =~ s|.*/(.*)|$1|;   # Keep only base name
+       return $me unless -s $profile;
+       local(*PROFILE);                # Local file descriptor
+       local($options) = '';   # Options we get back from profile
+       unless (open(PROFILE, $profile)) {
+               warn "$me: cannot open $profile: $!\n";
+               return;
+       }
+       local($_);
+       local($component);
+       while (<PROFILE>) {
+               next if /^\s*#/;        # Skip comments
+               next unless /^$me/o;
+               if (s/^$me://o) {       # progname: options
+                       chop;
+                       $options .= $_; # Merge options if more than one line
+               }
+               elsif (s/^$me-([^:]+)://o) {    # progname-component: value
+                       $component = $1;
+                       chop;
+                       s/^\s+//;               # Trim leading and trailing 
spaces
+                       s/\s+$//;
+                       $Profile{$component} = $_;
+               }
+       }
+       close PROFILE;
+       return unless $options;
+       require 'shellwords.pl';
+       local(@opts);
+       eval '@opts = &shellwords($options)';   # Protect against mismatched 
quotes
+       unshift(@ARGV, @opts);
+       return $me;                             # Return our invocation name
+}
+
diff --git a/bin/kitsend b/bin/kitsend
new file mode 100755
index 0000000..94ba77f
--- /dev/null
+++ b/bin/kitsend
@@ -0,0 +1,240 @@
+#!/usr/bin/perl
+       eval 'exec perl -S $0 "$@"'
+               if $running_under_some_shell;
+
+# $Id: kitsend.SH 1 2006-08-24 12:32:52Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# Original Author: Harlan Stenn <har...@mumps.pfcs.com>
+#
+# $Log: kitsend.SH,v $
+# Revision 3.0.1.2  1994/05/06  13:59:57  ram
+# patch23: random code cleanup to follow pat tools style
+# patch23: made configurable from dist profile
+# patch23: now understands -V and -h options
+# patch23: mails now flagged with a bulk precedence
+# patch23: added X-Mailer header and now calls mailer via open()
+#
+# Revision 3.0.1.1  1993/08/19  06:42:15  ram
+# patch1: leading config.sh searching was not aborting properly
+#
+# Revision 3.0  1993/08/18  12:04:25  ram
+# Baseline for dist 3.0 netwide release.
+#
+
+$orgname='PROCURA B.V.';
+$mailer='/usr/sbin/sendmail';
+$version = '3.5';
+$patchlevel = '0';
+
+$progname = &profile;          # Read ~/.dist_profile
+require 'getopts.pl';
+&usage unless &Getopts('hV');
+
+if ($opt_V) {
+       print STDERR "$progname $version PL$patchlevel\n";
+       exit 0;
+} elsif ($opt_h) {
+       &usage;
+}
+
+$orgname = &tilda_expand($orgname);
+chop($orgname = `cat $orgname`) if $orgname =~ m|^/|;
+
+&readpackage;
+
+while ($_ = shift) {
+       if (/^(kit)?[1-9][\d,-]*$/) {
+               s/^kit//;
+               push(@argv, $_);
+       }
+       else {
+               push(@dest, $_);
+       }
+}
+$dest = join(' ',@dest);
+&usage unless $dest;
+
+@ARGV = @argv;
+
+if (-f "$package.kit10") {
+       @filelist = <$package.kit[0-9][0-9]>;
+}
+else {
+       @filelist = <$package.kit[0-9]>;
+}
+pop(@filelist) =~ /(\d+)$/ && ($maxnum = $1 + 0);
+
+if ($#ARGV < 0) {
+       $argv = "1-$maxnum";
+       @ARGV = $argv;
+}
+$argv = &rangeargs(@ARGV);
+@ARGV = split(' ', $argv);
+
+$argv =~ s/ $//;
+
+if ($#ARGV < 0) {
+       die "$progname: no kits specified.\n";
+} elsif ($#ARGV) {
+       print "$progname: sending $package $baserev kits $argv to $dest...\n";
+} else {
+       print "$progname: sending $package $baserev kit $argv to $dest...\n";
+}
+
+fork && exit;
+
+$opt = '-odq' if $mailer =~ /sendmail/;
+
+until ($#ARGV < 0) {
+       $kitnum = shift;
+
+       # Provision for broken mailers...
+       @dest = split(' ', $dest);
+       while (@smalldest = splice(@dest, 0, 50)) {
+               $to = join(', ', @smalldest);   # Sensible To: for sendmail
+               $smalldest = join(' ', @smalldest);
+
+               open(MAILER, "|$mailer $opt $smalldest") ||
+                       die "$progname: can't fork $mailer: $!\n";
+               print MAILER
+"To: $to
+Subject: $package $baserev kit #$kitnum
+Precedence: bulk
+X-Mailer: dist [version $version PL$patchlevel]
+Organization: $orgname
+
+[There are $maxnum kits for $package version $baserev.]
+
+";
+               $kitnum = "0$kitnum" if $kitnum < 10 && $maxnum >= 10;
+               open(FILE,"$package.kit$kitnum") ||
+                       die "$progname: can't open $package.kit$kitnum: $!\n";
+               while (<FILE>) {
+                       print MAILER;
+               }
+               close FILE;
+               close MAILER;
+               warn "$progname: ERROR mailing of $package.kit$kitnum to 
$dest\n" if $?;
+       }
+}
+
+sub usage {
+       print STDERR <<EOM;
+Usage: $progname [-hV] [kits] dest
+  -h : print this message and exit
+  -V : print version number and exit
+EOM
+       exit 1;
+}
+
+sub rangeargs {
+       local($result) = '';
+       local($min,$max,$_);
+       while ($#_ >= 0) {
+               $_ = shift(@_);
+               while (/^\s*\d/) {
+                       s/^\s*(\d+)//;
+                       $min = $1;
+                       if (s/^,//) {
+                               $max = $min;
+                       }
+                       elsif (s/^-(\d*)//) {
+                               $max = $1;
+                               if ($max == 0 && $maxnum) {
+                                       $max = $maxnum;
+                               }
+                               s/^[^,],?//;
+                       }
+                       else {
+                               $max = $min;
+                       }
+                       for ($i = $min; $i <= $max; ++$i) {
+                               $result .= $i . ' ';
+                       }
+               }
+       }
+       $result;
+}
+
+sub readpackage {
+       if (! -f '.package') {
+               if (
+                       -f '../.package' ||
+                       -f '../../.package' ||
+                       -f '../../../.package' ||
+                       -f '../../../../.package'
+               ) {
+                       die "Run in top level directory only.\n";
+               } else {
+                       die "No .package file!  Run packinit.\n";
+               }
+       }
+       open(PACKAGE,'.package');
+       while (<PACKAGE>) {
+               next if /^:/;
+               next if /^#/;
+               if (($var,$val) = /^\s*(\w+)=(.*)/) {
+                       $val = "\"$val\"" unless $val =~ /^['"]/;
+                       eval "\$$var = $val;";
+               }
+       }
+       close PACKAGE;
+}
+
+# Perform ~name expansion ala ksh...
+# (banish csh from your vocabulary ;-)
+sub tilda_expand {
+       local($path) = @_;
+       return $path unless $path =~ /^~/;
+       $path =~ s:^~([^/]+):(getpwnam($1))[$[+7]:e;                    # ~name
+       $path =~ s:^~:$ENV{'HOME'} || (getpwuid($<))[$[+7]:e;   # ~
+       $path;
+}
+
+# Set up profile components into %Profile, add any profile-supplied options
+# into @ARGV and return the command invocation name.
+sub profile {
+       local($profile) = &tilda_expand($ENV{'DIST'} || '~/.dist_profile');
+       local($me) = $0;                # Command name
+       $me =~ s|.*/(.*)|$1|;   # Keep only base name
+       return $me unless -s $profile;
+       local(*PROFILE);                # Local file descriptor
+       local($options) = '';   # Options we get back from profile
+       unless (open(PROFILE, $profile)) {
+               warn "$me: cannot open $profile: $!\n";
+               return;
+       }
+       local($_);
+       local($component);
+       while (<PROFILE>) {
+               next if /^\s*#/;        # Skip comments
+               next unless /^$me/o;
+               if (s/^$me://o) {       # progname: options
+                       chop;
+                       $options .= $_; # Merge options if more than one line
+               }
+               elsif (s/^$me-([^:]+)://o) {    # progname-component: value
+                       $component = $1;
+                       chop;
+                       s/^\s+//;               # Trim leading and trailing 
spaces
+                       s/\s+$//;
+                       $Profile{$component} = $_;
+               }
+       }
+       close PROFILE;
+       return unless $options;
+       require 'shellwords.pl';
+       local(@opts);
+       eval '@opts = &shellwords($options)';   # Protect against mismatched 
quotes
+       unshift(@ARGV, @opts);
+       return $me;                             # Return our invocation name
+}
+
diff --git a/bin/makeSH b/bin/makeSH
new file mode 100755
index 0000000..54e7b3e
--- /dev/null
+++ b/bin/makeSH
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+# $Id: makeSH,v 3.0.1.1 1993/08/19 06:42:16 ram Exp ram $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# Original Author: Larry Wall <lw...@netlabs.com>
+#
+# $Log: makeSH,v $
+# Revision 3.0.1.1  1993/08/19  06:42:16  ram
+# patch1: leading config.sh searching was not aborting properly
+#
+# Revision 3.0  1993/08/18  12:04:26  ram
+# Baseline for dist 3.0 netwide release.
+#
+
+for file do
+       if test -f $file.SH; then
+               mv $file.SH $file.SH.old
+               echo "makeSH: renaming $file.SH as $file.SH.old."
+    fi
+       base=`basename $file`
+
+       cat >$file.SH <<BLURFL
+case \$CONFIG in
+'')
+       if test -f config.sh; then TOP=.;
+       elif test -f ../config.sh; then TOP=..;
+       elif test -f ../../config.sh; then TOP=../..;
+       elif test -f ../../../config.sh; then TOP=../../..;
+       elif test -f ../../../../config.sh; then TOP=../../../..;
+       else
+               echo "Can't find config.sh."; exit 1
+       fi
+       . \$TOP/config.sh
+       ;;
+esac
+: This forces SH files to create target in same directory as SH file.
+: This is so that make depend always knows where to find SH derivatives.
+case "\$0" in
+*/*) cd \`expr X\$0 : 'X\(.*\)/'\` ;;
+esac
+echo "Extracting $file (with variable substitutions)"
+: This section of the file will have variable substitutions done on it.
+: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!.
+: Protect any dollar signs and backticks that you do not want interpreted
+: by putting a backslash in front.  You may delete these comments.
+\$spitshell >$base <<!GROK!THIS!
+BLURFL
+
+       case `sed q $file` in
+       */bin/sh) echo '$startsh' >>$file.SH ;;
+       esac
+
+       cat >>$file.SH <<BLURFL
+!GROK!THIS!
+
+: In the following dollars and backticks do not need the extra backslash.
+\$spitshell >>$base <<'!NO!SUBS!'
+BLURFL
+
+       sed -e '1{' -e '/#!.*\/bin\/sh$/d' -e '}' $file >>$file.SH
+    
+       cat >>$file.SH <<BLURFL
+!NO!SUBS!
+chmod 755 $base
+\$eunicefix $base
+BLURFL
+       chmod 755 $file.SH
+done
diff --git a/bin/makedist b/bin/makedist
new file mode 100755
index 0000000..c60aaec
--- /dev/null
+++ b/bin/makedist
@@ -0,0 +1,601 @@
+#!/usr/bin/perl
+       eval "exec perl -S $0 $*"
+               if $running_under_some_shell;
+
+# $Id: makedist.SH 1 2006-08-24 12:32:52Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# $Log: makedist.SH,v $
+# Revision 3.0.1.2  1994/01/24  13:58:20  ram
+# patch16: modified call to manifake to trap exceptions manually
+# patch16: removed final sed post-processing to allow 'make depend' target
+# patch16: added ~/.dist_profile awareness
+#
+# Revision 3.0.1.1  1993/08/19  06:42:17  ram
+# patch1: leading config.sh searching was not aborting properly
+#
+# Revision 3.0  1993/08/18  12:04:28  ram
+# Baseline for dist 3.0 netwide release.
+#
+
+$version = '3.5';
+$patchlevel = '0';
+
+&profile;                                      # Read ~/.dist_profile
+require 'getopts.pl';
+&usage unless &Getopts('c:f:dhvqs:V');
+
+$ENV{'DIST'} = '/dev/null';    # Disable ~/.dist_profile
+
+if ($opt_V) {
+       print STDERR "makedist $version PL$patchlevel\n";
+       exit 0;
+} elsif ($opt_h) {
+       &usage;
+}
+
+$MAXKITSIZE = 50000 unless $MAXKITSIZE = $opt_s;
+$KITOVERHEAD = 1800;
+$FILEOVERHEAD = 90;
+$CHOPSIZE = $MAXKITSIZE - $KITOVERHEAD - $FILEOVERHEAD;
+
+$NEWMANI = 'MANIFEST.new' unless $NEWMANI = $opt_f;
+$MANI = 'MANIFEST' unless $opt_f;
+$PACKLIST = 'PACKLIST';
+$PACKNOTES = 'PACKNOTES';
+
+$tmpdir = "/tmp/MKst$$";       # Where to copy distribution
+$tmpdir = '.' if $opt_q;       # Quick mode: no need to copy distribution
+
+&set_sig('aborted');           # Make sure we clean up in case of emergency
+
+&readpackage;
+&get_patchlevel;
+
+eval '&manifake';                      # Want to trap possible die and 
redirect to fatal
+if ($@ ne '') {
+       chop($@);
+       &fatal($@);
+}
+
+if ($opt_c) {                          # Copy distribution only, no shell 
archive
+       &distcopy;
+       exit 0;
+}
+
+&distfake;
+&copyright'init($copyright) if -f $copyright;
+
+unlink <$package.kit? $package.kit??>;
+chop($curdir = `pwd`);
+chdir $tmpdir || die "Can't chdir to $tmpdir.\n";
+
+&maniread;
+&kitlists;
+&manimake;
+&kitbuild;
+&cleanup;
+exit 0;
+
+# Physically build the kits
+sub kitbuild {
+       $numkits = $#list;
+       if ($numkits > 9) {
+               $sp = '%02d';
+       } else {
+               $sp = '%d';
+       }
+
+       for ($kitnum = 1; $kitnum <= $numkits; $kitnum++) {
+               $list = $list[$kitnum];
+               $kit = sprintf("$package.kit" . $sp,$kitnum);
+               print "*** Making $kit ***\n";
+               open(KIT,">$curdir/$kit") || do fatal("Can't create 
$curdir/$kit: $!");
+
+               &kitleader;
+
+               @files = split(' ',$list);
+               reset 'X';
+               for $file (@files) {
+                       $_ = $file;
+                       while (s|^(.*)/.*$|$1|) {
+                               push(@Xdirs,$_) unless $Xseen{$_}++;
+                       }
+               }
+               print KIT "mkdir ",join(' ', sort @Xdirs)," 2>/dev/null\n";
+
+               foreach $file (@files) {
+                       print "\t",$file,"\n" if $opt_v;
+                       print KIT "echo Extracting $file\n";
+                       print KIT "sed >$file <<'!STUFFY!FUNK!' -e 's/X//'\n";
+                       open(FILE, $file);
+                       &copyright'reset;                       # Reset 
copyright for new file
+                       while (<FILE>) {
+                               # Use Lock[e]r as a pattern in case it is 
applied on ourselves
+                               s|Lock[e]r:.*\$|\$|;    # Remove locker mark
+                               print KIT &copyright'filter($_, 'X');
+                       }
+                       close FILE;
+                       print KIT "!STUFFY!FUNK!\n";
+                       -x "$file" && (print KIT "chmod +x $file\n");
+               }
+               &kittrailer;
+               chmod 0755, $kit;
+       }
+}
+
+sub kitlists {
+       for $filename (keys %comment) {
+               next if $filename =~ m|/$|;             # Skip directories
+               next if -d $filename;                   # Better safe than sorry
+               
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
+                  $blksize,$blocks) = stat($filename);
+
+               # Make sure file is not larger than the CHOPSIZE limit. If it 
is,
+               # a split is attempted.
+               if ($size > $CHOPSIZE) {
+                       print "Splitting $filename...\n" if $opt_v;
+                       $file_comment = $comment{$filename};
+                       open(FILE, $filename) || die "Can't open $filename: 
$!\n";
+                       $piece = 'AA';
+                       ($dir, $name) = ('.', $filename)
+                               unless ($dir, $name) = ($filename =~ 
m|(.*)/(.*)|);
+                       $chopped = $dir . '/' . substr($name, 0, 11);
+                       $chopped =~ s|^\./||;
+                       &fatal("There is already a split file named $chopped")
+                               if defined $Chopped{$chopped};
+                       $Chopped{$chopped} = $filename; # Association split <-> 
real file
+                       $size = 0;
+                       open(CURPIECE, ">$chopped:$piece") ||
+                               &fatal("Can't create $chopped:$piece: $!");
+                       while (<FILE>) {
+                               if ($size + length($_) > $CHOPSIZE) {
+                                       close CURPIECE;
+                                       $size{"$chopped:$piece"} = $size;
+                                       $comment{"$chopped:$piece"} = 
"$file_comment (part $piece)";
+                                       push(@files, "$chopped:$piece");
+                                       print "\t$chopped:$piece ($size 
bytes)\n" if $opt_v;
+                                       $size = 0;
+                                       $piece++;               # AA -> AB, 
etc...
+                                       open(CURPIECE, ">$chopped:$piece") ||
+                                               &fatal("Can't create 
$chopped:$piece: $!");
+                               }
+                               print CURPIECE $_;
+                               $size += length($_);
+                       }
+                       close FILE;
+                       close CURPIECE;
+                       $size{"$chopped:$piece"} = $size;
+                       $comment{"$chopped:$piece"} = "$file_comment (part 
$piece)";
+                       push(@files, "$chopped:$piece");
+                       print "\t$chopped:$piece ($size bytes)\n" if $opt_v;
+                       delete $comment{$filename};             # File split, 
not in PACKLIST
+               } else {
+                       $size += 1000000 if $filename =~ /README/;
+                       $size{$filename} = $size;
+                       push(@files, "$filename");
+               }
+       }
+
+       # Build a file PACKNOTES to reconstruct split files
+       if (defined %Chopped) {
+               open(PACKNOTES, ">$PACKNOTES") || &fatal("Can't create 
PACKNOTES: $!");
+               foreach (keys %Chopped) {
+                       print PACKNOTES <<EOC;
+echo 'Building $Chopped{$_}...'
+cat $_:[A-Z][A-Z] > $Chopped{$_}
+rm -f $_:[A-Z][A-Z]
+EOC
+               }
+               close PACKNOTES;
+               push(@files, $PACKNOTES);
+               $comment{$PACKNOTES} = 'Script to reconstruct split files';
+               
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
+                  $blksize,$blocks) = stat($PACKNOTES);
+               $size{$PACKNOTES} = $size;
+       }
+
+       # Currently, file PACKLIST does not exist, so its size is unknown and
+       # it cannot be correctly put in one archive. Therefore, we take the
+       # size of MANIFEST.new, which will give us a good estimation.
+       push(@files, 'PACKLIST');
+
+       ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
+          $blksize,$blocks) = stat($NEWMANI);
+       $size{$PACKLIST} = $size;
+
+       sub revnum { $size{$a} < $size{$b} ? 1 : $size{$a} > $size{$b} ? -1 : 
0; }
+       @files = sort revnum @files;
+
+       for (@files) {
+               $size = $size{$_};
+               $size -= 1000000 if /README/;
+               $i=1;
+               while (($newtot = int($tot[$i] + $size + $size/40 + 
$FILEOVERHEAD)) >
+                       $MAXKITSIZE-$KITOVERHEAD && $tot[$i]) {
+                               $i++;
+               }
+               $tot[$i] = $newtot;
+               print "Adding $_ to kit $i giving $newtot bytes\n" if $opt_d;
+               $kit{$_} = $i;
+               $list[$i] .= " $_";
+       }
+}
+
+# Read manifest file and initialize the %comment array.
+sub maniread {
+       do fatal("You don't have a $NEWMANI file.  Run manifake")
+               unless -f "$NEWMANI";
+       open(NEWMANI,$NEWMANI) || do fatal("Can't read $NEWMANI: $!");
+       while (<NEWMANI>) {
+               ($key,$val) = split(' ',$_,1) unless ($key,$val) = 
/^(\S+)\s+(.*)/;
+               $comment{$key} = $val;
+       }
+       close NEWMANI;
+}
+
+# MANIFEST and MANIFEST.new must say the same thing.  Create the
+# PACKLIST file (thus avoiding kit numbers in MANIFEST, which causes big
+# patches when only re-ordering occurred).  Note that PACKLIST should
+# not appear in MANIFEST.new (the user may remove it).
+sub manimake {
+       # Add built packlist
+       $comment{$PACKLIST} = 'Which files came with which kits';
+
+       open(PACKLIST, ">$PACKLIST") || do fatal("Can't create $PACKLIST: $!");
+       print PACKLIST
+"After all the $package kits are run you should have the following files:
+
+Filename                   Kit Description
+--------                   --- -----------
+";
+       for (sort keys(comment)) {
+               printf PACKLIST "%-27s %2s %.47s\n", $_, $kit{$_}, $comment{$_};
+       }
+       close PACKLIST;
+}
+
+sub kitleader {
+       local($plevel);
+       $plevel = " at patchlevel $patch_level" if $patch_level ne '';
+       print KIT <<EOH;
+#! /bin/sh
+#
+# This is $package version $baserev$plevel.
+# Make a new directory for the $package sources, cd to it, and run kits 1 up
+# to $numkits through sh.  When all $numkits kits have been run, read README.
+#
+echo " "
+cat <<EOM
+This is $package $baserev$plevel, kit $kitnum (of $numkits):
+If this shell archive is complete, the line "End of kit $kitnum (of $numkits)"
+will echo at the end.
+EOM
+export PATH || (echo "Please use sh to unpack this archive." ; kill \$\$)
+EOH
+}
+
+sub kittrailer {
+       $rangelist = '';
+       for ($i = 1; $i <= $numkits; $i++) {
+               $rangelist .= ' ' . $i;
+       }
+       print KIT <<EOM;
+echo \"End of kit $kitnum (of $numkits)\"
+echo \" \"
+cat /dev/null >kit${kitnum}isdone
+run=''
+config=''
+for iskit in$rangelist; do
+       if test -f kit\${iskit}isdone; then
+               run=\"\$run \$iskit\"
+       else
+               todo=\"\$todo \$iskit\"
+       fi
+done
+case \$todo in
+       '')
+               echo \"You have run all your kits.\"
+EOM
+       if (defined %Chopped) {         # Some splitting occurred
+               print KIT <<EOM;
+               if test -f $PACKNOTES; then
+                       sh $PACKNOTES
+               else
+                       echo \"You have to rebuild split files by hand (see 
$PACKLIST).\"
+               fi
+EOM
+       }
+       if (-f "README" && -f "Configure") {
+               print KIT
+"              echo \"Please read README and then type Configure.\"
+               chmod 755 Configure\n";
+       } elsif (-f "README") {
+               print KIT
+"              echo \"Please read README first.\"\n";
+       } elsif (-f "Configure") {
+               print KIT
+"              echo \"Please run Configure first.\"
+               chmod 755 Configure\n";
+       }
+       print KIT <<EOM;
+               rm -f kit*isdone
+               ;;
+       *)  echo \"You have run\$run.\"
+               echo \"You still need to run\$todo.\"
+               ;;
+esac
+: Someone might mail this, so exit before signature...
+exit 0
+EOM
+}
+
+sub get_patchlevel {
+       $patch_level = '';
+       if (-f 'patchlevel.h') {
+               open(PL, 'patchlevel.h');
+               while (<PL>) {
+                       /^#define\s+PATCHLEVEL\s+(\w+)/ && ($patch_level = $1);
+               }
+               close PL;
+       }
+}
+
+sub distfake {
+       return if $opt_q;
+       local($sw);
+       $sw = 's' unless $opt_v;
+       mkdir($tmpdir, 0700) || die "Can't create directory $tmpdir.\n";
+       print "Building a copy of distribution in $tmpdir...\n" if $opt_v;
+       system 'perl', '-S', 'patcol', "-a$sw", '-f', $NEWMANI, '-d', $tmpdir;
+       system 'cp', $NEWMANI, "$tmpdir/$NEWMANI"
+               unless -f "$tmpdir/$NEWMANI" && !$opt_f;
+}
+
+sub distcopy {
+       local($sw);                     # Switch to force patcol to copy 
checked out files
+       &makedir($opt_c);
+       print "Building a copy of distribution in $opt_c...\n" if $opt_v;
+       $sw = 'c' if $opt_q;
+       $sw .= 's' unless $opt_v;
+       system 'perl', '-S', 'patcol', "-aRC$sw", '-f', $NEWMANI, '-d', $opt_c;
+}
+
+sub distrm {
+       return if $opt_q;
+       print "Removing distribution in $tmpdir...\n" if $opt_v;
+       chdir "/";                      # Do not stay in removed directory...
+       system '/bin/rm', '-rf', "$tmpdir";
+}
+
+sub splitrm {
+       foreach $base (keys %Chopped) {
+               print "Removing split files for $base:\n" if $opt_v;
+               $piece = 'AA';
+               while (-f "$base:$piece") {
+                       print "\t$base:$piece\n" if $opt_v;
+                       unlink "$base:$piece";
+                       $piece++;               # AA -> AB, etc...
+               }
+       }
+}
+
+sub cleanup {
+       &distrm if -d $tmpdir;
+       if ($opt_q) {
+               &splitrm;               # Remove in-place split files
+               unlink $PACKLIST, $PACKNOTES;
+       }
+}
+
+sub fatal {
+       local($reason) = shift(@_);
+       &cleanup;
+       die "$reason\n";
+}
+
+sub set_sig {
+       local($handler) = @_;
+       $SIG{'HUP'} = $handler;
+       $SIG{'INT'} = $handler;
+       $SIG{'QUIT'} = $handler;
+       $SIG{'TERM'} = $handler;
+}
+
+sub aborted {
+       &set_sig('IGNORE');
+       $opt_v = 1;             # Force verbose message in distrm
+       &cleanup;
+       print "Aborted.\n";
+       exit 1;
+}
+
+sub usage {
+       print STDERR <<EOM;
+Usage: makedist [-dhqvV] [-c dir] [-s size] [-f manifest]
+  -c : copy files in dir, do not build any shell archive.
+  -d : debug mode.
+  -f : use this file as manifest.
+  -h : print this help message and exits.
+  -q : quick mode: use checked-out files.
+  -s : set maximum pack size.
+  -v : verbose mode.
+  -V : print version number and exits.
+EOM
+       exit 1;
+}
+
+sub readpackage {
+       if (! -f '.package') {
+               if (
+                       -f '../.package' ||
+                       -f '../../.package' ||
+                       -f '../../../.package' ||
+                       -f '../../../../.package'
+               ) {
+                       die "Run in top level directory only.\n";
+               } else {
+                       die "No .package file!  Run packinit.\n";
+               }
+       }
+       open(PACKAGE,'.package');
+       while (<PACKAGE>) {
+               next if /^:/;
+               next if /^#/;
+               if (($var,$val) = /^\s*(\w+)=(.*)/) {
+                       $val = "\"$val\"" unless $val =~ /^['"]/;
+                       eval "\$$var = $val;";
+               }
+       }
+       close PACKAGE;
+}
+
+sub manifake {
+    # make MANIFEST and MANIFEST.new say the same thing
+    if (! -f $NEWMANI) {
+        if (-f $MANI) {
+            open(IN,$MANI) || die "Can't open $MANI";
+            open(OUT,">$NEWMANI") || die "Can't create $NEWMANI";
+            while (<IN>) {
+                if (/---/) {
+                                       # Everything until now was a header...
+                                       close OUT;
+                                       open(OUT,">$NEWMANI") ||
+                                               die "Can't recreate $NEWMANI";
+                                       next;
+                               }
+                s/^\s*(\S+\s+)[0-9]*\s*(.*)/$1$2/;
+                               print OUT;
+                               print OUT "\n" unless /\n$/;    # If no 
description
+            }
+            close IN;
+                       close OUT;
+        }
+        else {
+die "You need to make a $NEWMANI file, with names and descriptions.\n";
+        }
+    }
+}
+
+package copyright;
+
+# Read in copyright file
+sub init {
+       local($file) = @_;              # Copyright file
+       undef @copyright;
+       open(COPYRIGHT, $file) || die "Can't open $file: $!\n";
+       chop(@copyright = <COPYRIGHT>);
+       close COPYRIGHT;
+}
+
+# Reset the automaton for a new file.
+sub reset {
+       $copyright_seen = @copyright ? 0 : 1;
+       $marker_seen = 0;
+}
+
+# Filter file, line by line, and expand the copyright string. The @COPYRIGHT@
+# symbol may be preceded by some random comment. A leader can be defined and
+# will be pre-pended to all the input lines.
+sub filter {
+       local($line, $leader) = @_;             # Leader is optional
+       return $leader . $line if $copyright_seen || $marker_seen;
+       $marker_seen = 1 if $line =~ /\$Log[:\$]/;
+       $copyright_seen = 1 if $line =~ /\@COPYRIGHT\@/;
+       return $leader . $line unless $copyright_seen;
+       local($comment, $trailer) = $line =~ /^(.*)\@COPYRIGHT\@\s*(.*)/;
+       $comment = $leader . $comment;
+       $comment . join("\n$comment", @copyright) . "\n";
+}
+
+# Filter output of $cmd redirected into $file by expanding copyright, if any.
+sub expand {
+       local($cmd, $file) = @_;
+       if (@copyright) {
+               open(CMD,"$cmd|") || die "Can't start '$cmd': $!\n";
+               open(OUT, ">$file") || die "Can't create $file: $!\n";
+               &reset;
+               local($_);
+               while (<CMD>) {
+                       print OUT &filter($_);
+               }
+               close OUT;
+               close CMD;
+       } else {
+               system "$cmd > $file";
+               die "Command '$cmd' failed!" if $?;
+       }
+}
+
+package main;
+
+# Make directories for files
+# E.g, for /usr/lib/perl/foo, it will check for all the
+# directories /usr, /usr/lib, /usr/lib/perl and make
+# them if they do not exist.
+sub makedir {
+    local($_) = shift;
+    local($dir) = $_;
+    if (!-d && $_ ne '') {
+        # Make dirname first
+        do makedir($_) if s|(.*)/.*|\1|;
+               mkdir($dir, 0700) if ! -d $dir;
+    }
+}
+
+# Perform ~name expansion ala ksh...
+# (banish csh from your vocabulary ;-)
+sub tilda_expand {
+       local($path) = @_;
+       return $path unless $path =~ /^~/;
+       $path =~ s:^~([^/]+):(getpwnam($1))[$[+7]:e;                    # ~name
+       $path =~ s:^~:$ENV{'HOME'} || (getpwuid($<))[$[+7]:e;   # ~
+       $path;
+}
+
+# Set up profile components into %Profile, add any profile-supplied options
+# into @ARGV and return the command invocation name.
+sub profile {
+       local($profile) = &tilda_expand($ENV{'DIST'} || '~/.dist_profile');
+       local($me) = $0;                # Command name
+       $me =~ s|.*/(.*)|$1|;   # Keep only base name
+       return $me unless -s $profile;
+       local(*PROFILE);                # Local file descriptor
+       local($options) = '';   # Options we get back from profile
+       unless (open(PROFILE, $profile)) {
+               warn "$me: cannot open $profile: $!\n";
+               return;
+       }
+       local($_);
+       local($component);
+       while (<PROFILE>) {
+               next if /^\s*#/;        # Skip comments
+               next unless /^$me/o;
+               if (s/^$me://o) {       # progname: options
+                       chop;
+                       $options .= $_; # Merge options if more than one line
+               }
+               elsif (s/^$me-([^:]+)://o) {    # progname-component: value
+                       $component = $1;
+                       chop;
+                       s/^\s+//;               # Trim leading and trailing 
spaces
+                       s/\s+$//;
+                       $Profile{$component} = $_;
+               }
+       }
+       close PROFILE;
+       return unless $options;
+       require 'shellwords.pl';
+       local(@opts);
+       eval '@opts = &shellwords($options)';   # Protect against mismatched 
quotes
+       unshift(@ARGV, @opts);
+       return $me;                             # Return our invocation name
+}
+
diff --git a/bin/manicheck b/bin/manicheck
new file mode 100755
index 0000000..3e82030
--- /dev/null
+++ b/bin/manicheck
@@ -0,0 +1,59 @@
+#!/bin/sh
+# $Id: manicheck.SH 1 2006-08-24 12:32:52Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+#  
+#  You may redistribute only under the terms of the Artistic Licence,
+#  as specified in the README file that comes with the distribution.
+#  You may reuse parts of this distribution only within the terms of
+#  that same Artistic Licence; a copy of which may be found at the root
+#  of the source tree for dist 4.0.
+#
+# Original Author: Harlan Stenn <har...@mumps.pfcs.com>
+#
+# $Log: manicheck.SH,v $
+# Revision 3.0.1.1  1993/08/19  06:41:51  ram
+# patch1: leading config.sh searching was not aborting properly
+#
+# Revision 3.0  1993/08/18  12:04:02  ram
+# Baseline for dist 3.0 netwide release.
+#
+
+find . ! -type d -print | sed -e '
+s|^./||
+/RCS\//d
+/UU\//d
+/core$/d
+/\.bak$/d
+/\.orig$/d
+' | sort > check.present
+
+manifest=''
+if test -r MANIFEST.new; then
+       manifest='MANIFEST.new'
+else
+       if test -r MANIFEST; then
+               manifest='MANIFEST'
+       else
+               echo "No MANIFEST.new or MANIFEST file--don't know what to look 
for."
+       fi
+fi
+
+awk '{print $1}' $manifest | sort > check.expected
+
+comm -23 check.expected check.present > check.want
+comm -13 check.expected check.present > check.extra
+
+rm -f check.expected check.present
+
+if test -s check.want; then
+       echo "Some files listed in $manifest are missing; see check.want."
+else
+       rm check.want
+fi
+
+if test -s check.extra; then
+       echo "Some files not listed in $manifest are present; see check.extra."
+else
+       rm check.extra
+fi
diff --git a/bin/manifake b/bin/manifake
new file mode 100755
index 0000000..86d9302
--- /dev/null
+++ b/bin/manifake
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+       eval "exec perl -i~ -S $0 $*"
+               if $running_under_some_shell;
+
+# $Id: manifake.SH 1 2006-08-24 12:32:52Z rmanfredi $
+#
+#  Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
**** PATCH TRUNCATED AT 2000 LINES -- 67108 NOT SHOWN ****

--
perl5 metaconfig repository

Reply via email to