add Added Files:
authordemian <demian>
Mon, 17 Feb 2003 17:16:53 +0000 (17:16 +0000)
committerdemian <demian>
Mon, 17 Feb 2003 17:16:53 +0000 (17:16 +0000)
add   demian/Eterm/Eterm demian/a2ps/a2ps demian/abiword/abiword
add   demian/amsn/amsn demian/aspell/aspell demian/aumix/aumix
add   demian/aumix/autoconf.patch demian/bc/bc
add   demian/bc/readline.patch demian/bind/bind
add   demian/enlightenment/enlightenment demian/gaim/gaim
add   demian/galeon/galeon demian/gdbm/gdbm demian/gkrellm/gkrellm
add   demian/gperf/gperf demian/gpm/gpm
add   demian/gtk-gnutella/gtk-gnutella demian/howtos/howtos
add   demian/icewm/icewm demian/id-utils/id-utils demian/inn/inn
add   demian/ion/ion demian/ion/system.mk.patch demian/java/java
add   demian/java/java-bin.patch demian/java-lib/java-lib
add   demian/lynx/lynx demian/mpg123/mpg123 demian/ncftp/ncftp
add   demian/netcat/netcat demian/netcat/netcat.c.patch
add   demian/netkit-ftp/netkit-ftp demian/netkit-ntalk/endwin.patch
add   demian/netkit-ntalk/glibc2.2.patch
add   demian/netkit-ntalk/netkit-ntalk
add   demian/netkit-routed/netkit-routed
add   demian/netkit-rsh/netkit-rsh
add   demian/netkit-telnet/netkit-telnet
add   demian/netkit-telnet/prototypes.patch
add   demian/netkit-tftp/netkit-tftp demian/nmap/inet_aton.patch
add   demian/nmap/nmap demian/pciutils/no_werror.patch
add   demian/pciutils/pciutils demian/php/php
add   demian/pine.old/pine.old demian/procmail/makefile.patch
add   demian/procmail/procmail demian/proftpd/proftpd
add   demian/pspell/pspell demian/psutils/makefile.patch
add   demian/psutils/psutils demian/quota/quota
add   demian/readline/readline demian/screen/screen
add   demian/seejpeg/seejpeg demian/sendmail.old/sendmail.old
add   demian/sniffit/sniffit demian/spim/Makefile.patch
add   demian/spim/spim demian/splitvt/config.c.patch
add   demian/splitvt/splitvt demian/splitvt/title.c.patch
add   demian/stat/stat demian/svgalib/makefile.cfg.patch
add   demian/svgalib/svgalib demian/tcsh/tcsh
add   demian/tcsh/undef_tiocgltc.patch demian/time/time
add   demian/traceroute/traceroute demian/traceroute/traceroute~
add   demian/vim/vim demian/vim/vim-6.1.patch demian/xine/xine
add   demian/xmms.old/xmms.old demian/xscreensaver/glx_qd-fix.patch
add   demian/xscreensaver/xscreensaver demian/xv/00-xv.patch
add   demian/xv/xv demian/yp-tools/yp-tools
add   demian/ypbind-mt/ypbind-mt demian/ypserv/ypserv demian/zgv/zgv

84 files changed:
demian/Eterm/Eterm [new file with mode: 0755]
demian/a2ps/a2ps [new file with mode: 0755]
demian/abiword/abiword [new file with mode: 0755]
demian/amsn/amsn [new file with mode: 0755]
demian/aspell/aspell [new file with mode: 0755]
demian/aumix/aumix [new file with mode: 0755]
demian/aumix/autoconf.patch [new file with mode: 0755]
demian/bc/bc [new file with mode: 0755]
demian/bc/readline.patch [new file with mode: 0755]
demian/bind/bind [new file with mode: 0755]
demian/enlightenment/enlightenment [new file with mode: 0755]
demian/gaim/gaim [new file with mode: 0755]
demian/galeon/galeon [new file with mode: 0755]
demian/gdbm/gdbm [new file with mode: 0755]
demian/gkrellm/gkrellm [new file with mode: 0755]
demian/gperf/gperf [new file with mode: 0755]
demian/gpm/gpm [new file with mode: 0755]
demian/gtk-gnutella/gtk-gnutella [new file with mode: 0755]
demian/howtos/howtos [new file with mode: 0755]
demian/icewm/icewm [new file with mode: 0755]
demian/id-utils/id-utils [new file with mode: 0755]
demian/inn/inn [new file with mode: 0755]
demian/ion/ion [new file with mode: 0755]
demian/ion/system.mk.patch [new file with mode: 0755]
demian/java-lib/java-lib [new file with mode: 0755]
demian/java/java [new file with mode: 0755]
demian/java/java-bin.patch [new file with mode: 0755]
demian/lynx/lynx [new file with mode: 0755]
demian/mpg123/mpg123 [new file with mode: 0755]
demian/ncftp/ncftp [new file with mode: 0755]
demian/netcat/netcat [new file with mode: 0755]
demian/netcat/netcat.c.patch [new file with mode: 0755]
demian/netkit-ftp/netkit-ftp [new file with mode: 0755]
demian/netkit-ntalk/endwin.patch [new file with mode: 0755]
demian/netkit-ntalk/glibc2.2.patch [new file with mode: 0755]
demian/netkit-ntalk/netkit-ntalk [new file with mode: 0755]
demian/netkit-routed/netkit-routed [new file with mode: 0755]
demian/netkit-rsh/netkit-rsh [new file with mode: 0755]
demian/netkit-telnet/netkit-telnet [new file with mode: 0755]
demian/netkit-telnet/prototypes.patch [new file with mode: 0755]
demian/netkit-tftp/netkit-tftp [new file with mode: 0755]
demian/nmap/inet_aton.patch [new file with mode: 0755]
demian/nmap/nmap [new file with mode: 0755]
demian/pciutils/no_werror.patch [new file with mode: 0755]
demian/pciutils/pciutils [new file with mode: 0755]
demian/php/php [new file with mode: 0755]
demian/pine.old/pine.old [new file with mode: 0755]
demian/procmail/makefile.patch [new file with mode: 0755]
demian/procmail/procmail [new file with mode: 0755]
demian/proftpd/proftpd [new file with mode: 0755]
demian/pspell/pspell [new file with mode: 0755]
demian/psutils/makefile.patch [new file with mode: 0755]
demian/psutils/psutils [new file with mode: 0755]
demian/quota/quota [new file with mode: 0755]
demian/readline/readline [new file with mode: 0755]
demian/screen/screen [new file with mode: 0755]
demian/seejpeg/seejpeg [new file with mode: 0755]
demian/sendmail.old/sendmail.old [new file with mode: 0755]
demian/sniffit/sniffit [new file with mode: 0755]
demian/spim/Makefile.patch [new file with mode: 0755]
demian/spim/spim [new file with mode: 0755]
demian/splitvt/config.c.patch [new file with mode: 0755]
demian/splitvt/splitvt [new file with mode: 0755]
demian/splitvt/title.c.patch [new file with mode: 0755]
demian/stat/stat [new file with mode: 0755]
demian/svgalib/makefile.cfg.patch [new file with mode: 0755]
demian/svgalib/svgalib [new file with mode: 0755]
demian/tcsh/tcsh [new file with mode: 0755]
demian/tcsh/undef_tiocgltc.patch [new file with mode: 0755]
demian/time/time [new file with mode: 0755]
demian/traceroute/traceroute [new file with mode: 0755]
demian/traceroute/traceroute~ [new file with mode: 0755]
demian/vim/vim [new file with mode: 0755]
demian/vim/vim-6.1.patch [new file with mode: 0755]
demian/xine/xine [new file with mode: 0755]
demian/xmms.old/xmms.old [new file with mode: 0755]
demian/xscreensaver/glx_qd-fix.patch [new file with mode: 0755]
demian/xscreensaver/xscreensaver [new file with mode: 0755]
demian/xv/00-xv.patch [new file with mode: 0755]
demian/xv/xv [new file with mode: 0755]
demian/yp-tools/yp-tools [new file with mode: 0755]
demian/ypbind-mt/ypbind-mt [new file with mode: 0755]
demian/ypserv/ypserv [new file with mode: 0755]
demian/zgv/zgv [new file with mode: 0755]

diff --git a/demian/Eterm/Eterm b/demian/Eterm/Eterm
new file mode 100755 (executable)
index 0000000..c25f8b3
--- /dev/null
@@ -0,0 +1,39 @@
+# HDW Linux Eterm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A powerful and customizable X terminal with a lot
+# [I] of special features.
+# [V] 0.9.2
+# [S] 4 6
+# [D] Eterm-0.9.2.tar.gz http://www.eterm.org/download/
+# [D] Eterm-bg-0.9.2.tar.gz http://www.eterm.org/download/
+# [D] libast-0.5.tar.gz http://www.eterm.org/download/
+
+
+# This package should be built after enlightenment
+# to support the Imlib2 power, or should i build Imlib2
+# now or before this package ? tell me..
+
+
+custmain()
+{
+    echo building libast
+    tar -xvzf $hdw_home_dir/download/$dir/$package/libast-0.5.tar.gz
+    cd libast-0.5 ;
+    ./configure $confopt --prefix=/usr; make $make_conf ; 
+    make $install_conf install ; cd ..
+
+    echo building Eterm
+    tar -xvzf $hdw_home_dir/download/$dir/$package/Eterm-0.9.2.tar.gz
+    cd Eterm-0.9.2 ;
+    tar -xvzf $hdw_home_dir/download/$dir/$package/Eterm-bg-0.9.2.tar.gz
+    ./configure $confopt ; make $make_conf ;
+    make $install_conf install ; cd ..
+                       
+
+}
+
+# Notes: if we build enlightenment first, we wont have to
+# build imlib2 ;-). Still testing :(
+
+custmain=1
diff --git a/demian/a2ps/a2ps b/demian/a2ps/a2ps
new file mode 100755 (executable)
index 0000000..154f611
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux a2ps
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Any to postscript filter
+# [V] 4.13b
+# [S] 3 9
+# [D] a2ps-4.13b.tar.bz2 ftp://ftp.enst.fr/pub/unix/a2ps/
diff --git a/demian/abiword/abiword b/demian/abiword/abiword
new file mode 100755 (executable)
index 0000000..fdecd62
--- /dev/null
@@ -0,0 +1,20 @@
+# HDW Linux abiword
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A sympathic and light word processor for X based in XML.
+# [V] 3.05
+# [S] 4 5
+# [D] abiword-1.0.3.tar.gz http://telia.dl.sourceforge.net/sourceforge/abiword/
+## [D] abiword-1.0.3.tar.gz http://unc.dl.sourceforge.net/sourceforge/abiword/
+## [D] abiword-1.0.3.tar.gz http://switch.dl.sourceforge.net/sourceforge/abiword/
+## [D] abiword-1.0.3.tar.gz http://easynews.dl.sourceforge.net/sourceforge/abiword/
+
+
+build_main() 
+{
+    cd abi ;
+    ./autogen.sh
+    ./configure $confopt
+    make $make_conf
+    make $install_conf install
+}
diff --git a/demian/amsn/amsn b/demian/amsn/amsn
new file mode 100755 (executable)
index 0000000..b5ea465
--- /dev/null
@@ -0,0 +1,26 @@
+# HDW Linux amsn
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Alvaro's MSN Messenger Client
+# [V] 0.61
+# [S] 3 9
+# [D] amsn-0.71.tar.gz none
+
+srcdir=msn
+build_main()
+{
+    cd ..
+    [ -d /usr/local/msn ] && rm -Rf /usr/local/msn ;
+    mv msn /usr/local/
+    cat > /usr/local/bin/amsn << "EOF" 
+#! /bin/bash
+# AMSN Script
+
+cd /usr/local/msn
+./amsn &
+EOF
+
+chmod 755 /usr/local/bin/amsn
+ln -sf /usr/local/bin/amsn /usr/local/bin/msn
+
+}
diff --git a/demian/aspell/aspell b/demian/aspell/aspell
new file mode 100755 (executable)
index 0000000..62dcf60
--- /dev/null
@@ -0,0 +1,12 @@
+# HDW Linux aspell
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] An advanced spell checker.
+# [V] 33.7.1
+# [S] 3 10
+# [D] aspell-.33.7.1.tar.gz http://download.sourceforge.net/aspell/
+
+pre_install()
+{
+    touch /etc/aspell.conf
+}
diff --git a/demian/aumix/aumix b/demian/aumix/aumix
new file mode 100755 (executable)
index 0000000..f0928fc
--- /dev/null
@@ -0,0 +1,15 @@
+# HDW Linux aumix
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] An audio mixer for console
+# [V] 2.7
+# [S] 3 10
+# [D] aumix-2.7.tar.gz http://jpj.net/~trevor/aumix/
+# [P] autoconf.patch http://hackdaworld.dyndns.org/~demian/c00l/hdw/patches/aumix/
+
+
+# Note: This package cause a strange debug when executed.
+# I think this could be caused by gpm. @_@ !!
+# And.. straneglt.. this package fails always for me in first
+# build, scond build and the rest works fine :s (fails during 
+# automake)
diff --git a/demian/aumix/autoconf.patch b/demian/aumix/autoconf.patch
new file mode 100755 (executable)
index 0000000..cdeb1b7
--- /dev/null
@@ -0,0 +1,712 @@
+diff -Nur aumix-2.7.orig/configure.in aumix-2.7/configure.in
+--- aumix-2.7.orig/configure.in        Thu Jul 13 13:33:30 2000
++++ aumix-2.7/configure.in     Sun Feb 17 16:40:41 2002
+@@ -36,7 +36,7 @@
+    [  --without-ncurses       compile with no ncurses or mouse support],
+   AC_MSG_RESULT([Compiling without ncurses support]),
+   dnl Checks for ncurses library.
+-  AC_CHECK_LIB(ncurses, initscr, initscr=on, initscr=off)
++  [AC_CHECK_LIB(ncurses, initscr, initscr=on, initscr=off)
+   if test $initscr = on; then
+     CURSLIB="ncurses"
+     LIBS="-l$CURSLIB $LIBS"
+@@ -93,7 +93,7 @@
+ #endif], aumix_cv_cons_mousectl=yes, aumix_cv_cons_mousectl=no)])
+     if test $aumix_cv_cons_mousectl = yes; then
+       AC_DEFINE(HAVE_SYSMOUSE)
+-    fi
++    fi]
+   )
+ )
+ AM_CONDITIONAL(CURSES, test "x$CURSLIB" != "x")
+diff -Nur aumix-2.7.orig/depcomp aumix-2.7/depcomp
+--- aumix-2.7.orig/depcomp     Thu Jan  1 01:00:00 1970
++++ aumix-2.7/depcomp  Sun Feb 17 16:41:03 2002
+@@ -0,0 +1,411 @@
++#! /bin/sh
++
++# depcomp - compile a program generating dependencies as side-effects
++# Copyright 1999, 2000 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++# 02111-1307, USA.
++
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that program.
++
++# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
++
++if test -z "$depmode" || test -z "$source" || test -z "$object"; then
++  echo "depcomp: Variables source, object and depmode must be set" 1>&2
++  exit 1
++fi
++# `libtool' can also be set to `yes' or `no'.
++
++depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
++tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
++
++rm -f "$tmpdepfile"
++
++# Some modes work just like other modes, but use different flags.  We
++# parameterize here, but still list the modes in the big case below,
++# to make depend.m4 easier to write.  Note that we *cannot* use a case
++# here, because this file can only contain one case statement.
++if test "$depmode" = hp; then
++  # HP compiler uses -M and no extra arg.
++  gccflag=-M
++  depmode=gcc
++fi
++
++if test "$depmode" = dashXmstdout; then
++   # This is just like dashmstdout with a different argument.
++   dashmflag=-xM
++   depmode=dashmstdout
++fi
++
++case "$depmode" in
++gcc3)
++## gcc 3 implements dependency tracking that does exactly what
++## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
++## it if -MD -MP comes after the -MF stuff.  Hmm.
++  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
++  stat=$?
++  if test $stat -eq 0; then :
++  else
++    rm -f "$tmpdepfile"
++    exit $stat
++  fi
++  mv "$tmpdepfile" "$depfile"
++  ;;
++
++gcc)
++## There are various ways to get dependency output from gcc.  Here's
++## why we pick this rather obscure method:
++## - Don't want to use -MD because we'd like the dependencies to end
++##   up in a subdir.  Having to rename by hand is ugly.
++##   (We might end up doing this anyway to support other compilers.)
++## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
++##   -MM, not -M (despite what the docs say).
++## - Using -M directly means running the compiler twice (even worse
++##   than renaming).
++  if test -z "$gccflag"; then
++    gccflag=-MD,
++  fi
++  "$@" -Wp,"$gccflag$tmpdepfile"
++  stat=$?
++  if test $stat -eq 0; then :
++  else
++    rm -f "$tmpdepfile"
++    exit $stat
++  fi
++  rm -f "$depfile"
++  echo "$object : \\" > "$depfile"
++  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
++## The second -e expression handles DOS-style file names with drive letters.
++  sed -e 's/^[^:]*: / /' \
++      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
++## This next piece of magic avoids the `deleted header file' problem.
++## The problem is that when a header file which appears in a .P file
++## is deleted, the dependency causes make to die (because there is
++## typically no way to rebuild the header).  We avoid this by adding
++## dummy dependencies for each header file.  Too bad gcc doesn't do
++## this for us directly.
++  tr ' ' '
++' < "$tmpdepfile" |
++## Some versions of gcc put a space before the `:'.  On the theory
++## that the space means something, we add a space to the output as
++## well.
++## Some versions of the HPUX 10.20 sed can't process this invocation
++## correctly.  Breaking it into two sed invocations is a workaround.
++    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
++  rm -f "$tmpdepfile"
++  ;;
++
++hp)
++  # This case exists only to let depend.m4 do its work.  It works by
++  # looking at the text of this script.  This case will never be run,
++  # since it is checked for above.
++  exit 1
++  ;;
++
++sgi)
++  if test "$libtool" = yes; then
++    "$@" "-Wp,-MDupdate,$tmpdepfile"
++  else
++    "$@" -MDupdate "$tmpdepfile"
++  fi
++  stat=$?
++  if test $stat -eq 0; then :
++  else
++    rm -f "$tmpdepfile"
++    exit $stat
++  fi
++  rm -f "$depfile"
++
++  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
++    echo "$object : \\" > "$depfile"
++
++    # Clip off the initial element (the dependent).  Don't try to be
++    # clever and replace this with sed code, as IRIX sed won't handle
++    # lines with more than a fixed number of characters (4096 in
++    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
++    # the IRIX cc adds comments like `#:fec' to the end of the
++    # dependency line.
++    tr ' ' '
++' < "$tmpdepfile" \
++    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
++    tr '
++' ' ' >> $depfile
++    echo >> $depfile
++
++    # The second pass generates a dummy entry for each header file.
++    tr ' ' '
++' < "$tmpdepfile" \
++   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
++   >> $depfile
++  else
++    # The sourcefile does not contain any dependencies, so just
++    # store a dummy comment line, to avoid errors with the Makefile
++    # "include basename.Plo" scheme.
++    echo "#dummy" > "$depfile"
++  fi
++  rm -f "$tmpdepfile"
++  ;;
++
++aix)
++  # The C for AIX Compiler uses -M and outputs the dependencies
++  # in a .u file.  This file always lives in the current directory.
++  # Also, the AIX compiler puts `$object:' at the start of each line;
++  # $object doesn't have directory information.
++  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
++  tmpdepfile="$stripped.u"
++  outname="$stripped.o"
++  if test "$libtool" = yes; then
++    "$@" -Wc,-M
++  else
++    "$@" -M
++  fi
++
++  stat=$?
++  if test $stat -eq 0; then :
++  else
++    rm -f "$tmpdepfile"
++    exit $stat
++  fi
++
++  if test -f "$tmpdepfile"; then
++    # Each line is of the form `foo.o: dependent.h'.
++    # Do two passes, one to just change these to
++    # `$object: dependent.h' and one to simply `dependent.h:'.
++    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
++    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
++  else
++    # The sourcefile does not contain any dependencies, so just
++    # store a dummy comment line, to avoid errors with the Makefile
++    # "include basename.Plo" scheme.
++    echo "#dummy" > "$depfile"
++  fi
++  rm -f "$tmpdepfile"
++  ;;
++
++tru64)
++   # The Tru64 AIX compiler uses -MD to generate dependencies as a side
++   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
++   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 
++   # dependencies in `foo.d' instead, so we check for that too.
++   # Subdirectories are respected.
++
++   tmpdepfile1="$object.d"
++   tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` 
++   if test "$libtool" = yes; then
++      "$@" -Wc,-MD
++   else
++      "$@" -MD
++   fi
++
++   stat=$?
++   if test $stat -eq 0; then :
++   else
++      rm -f "$tmpdepfile1" "$tmpdepfile2"
++      exit $stat
++   fi
++
++   if test -f "$tmpdepfile1"; then
++      tmpdepfile="$tmpdepfile1"
++   else
++      tmpdepfile="$tmpdepfile2"
++   fi
++   if test -f "$tmpdepfile"; then
++      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
++      # That's a space and a tab in the [].
++      sed -e 's,^.*\.[a-z]*:[         ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
++   else
++      echo "#dummy" > "$depfile"
++   fi
++   rm -f "$tmpdepfile"
++   ;;
++
++#nosideeffect)
++  # This comment above is used by automake to tell side-effect
++  # dependency tracking mechanisms from slower ones.
++
++dashmstdout)
++  # Important note: in order to support this mode, a compiler *must*
++  # always write the proprocessed file to stdout, regardless of -o,
++  # because we must use -o when running libtool.
++  test -z "$dashmflag" && dashmflag=-M
++  ( IFS=" "
++    case " $* " in
++    *" --mode=compile "*) # this is libtool, let us make it quiet
++      for arg
++      do # cycle over the arguments
++        case "$arg" in
++      "--mode=compile")
++        # insert --quiet before "--mode=compile"
++        set fnord "$@" --quiet
++        shift # fnord
++        ;;
++      esac
++      set fnord "$@" "$arg"
++      shift # fnord
++      shift # "$arg"
++      done
++      ;;
++    esac
++    "$@" $dashmflag | sed 's:^[^:]*\:[        ]*:'"$object"'\: :' > "$tmpdepfile"
++  ) &
++  proc=$!
++  "$@"
++  stat=$?
++  wait "$proc"
++  if test "$stat" != 0; then exit $stat; fi
++  rm -f "$depfile"
++  cat < "$tmpdepfile" > "$depfile"
++  tr ' ' '
++' < "$tmpdepfile" | \
++## Some versions of the HPUX 10.20 sed can't process this invocation
++## correctly.  Breaking it into two sed invocations is a workaround.
++    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
++  rm -f "$tmpdepfile"
++  ;;
++
++dashXmstdout)
++  # This case only exists to satisfy depend.m4.  It is never actually
++  # run, as this mode is specially recognized in the preamble.
++  exit 1
++  ;;
++
++makedepend)
++  # X makedepend
++  (
++    shift
++    cleared=no
++    for arg in "$@"; do
++      case $cleared in no)
++        set ""; shift
++      cleared=yes
++      esac
++      case "$arg" in
++        -D*|-I*)
++        set fnord "$@" "$arg"; shift;;
++      -*)
++        ;;
++      *)
++        set fnord "$@" "$arg"; shift;;
++      esac
++    done
++    obj_suffix="`echo $object | sed 's/^.*\././'`"
++    touch "$tmpdepfile"
++    ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
++  ) &
++  proc=$!
++  "$@"
++  stat=$?
++  wait "$proc"
++  if test "$stat" != 0; then exit $stat; fi
++  rm -f "$depfile"
++  cat < "$tmpdepfile" > "$depfile"
++  tail +3 "$tmpdepfile" | tr ' ' '
++' | \
++## Some versions of the HPUX 10.20 sed can't process this invocation
++## correctly.  Breaking it into two sed invocations is a workaround.
++    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
++  rm -f "$tmpdepfile" "$tmpdepfile".bak
++  ;;
++
++cpp)
++  # Important note: in order to support this mode, a compiler *must*
++  # always write the proprocessed file to stdout, regardless of -o,
++  # because we must use -o when running libtool.
++  ( IFS=" "
++    case " $* " in
++    *" --mode=compile "*)
++      for arg
++      do # cycle over the arguments
++        case $arg in
++      "--mode=compile")
++        # insert --quiet before "--mode=compile"
++        set fnord "$@" --quiet
++        shift # fnord
++        ;;
++      esac
++      set fnord "$@" "$arg"
++      shift # fnord
++      shift # "$arg"
++      done
++      ;;
++    esac
++    "$@" -E |
++    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
++    sed '$ s: \\$::' > "$tmpdepfile"
++  ) &
++  proc=$!
++  "$@"
++  stat=$?
++  wait "$proc"
++  if test "$stat" != 0; then exit $stat; fi
++  rm -f "$depfile"
++  echo "$object : \\" > "$depfile"
++  cat < "$tmpdepfile" >> "$depfile"
++  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
++  rm -f "$tmpdepfile"
++  ;;
++
++msvisualcpp)
++  # Important note: in order to support this mode, a compiler *must*
++  # always write the proprocessed file to stdout, regardless of -o,
++  # because we must use -o when running libtool.
++  ( IFS=" "
++    case " $* " in
++    *" --mode=compile "*)
++      for arg
++      do # cycle over the arguments
++        case $arg in
++      "--mode=compile")
++        # insert --quiet before "--mode=compile"
++        set fnord "$@" --quiet
++        shift # fnord
++        ;;
++      esac
++      set fnord "$@" "$arg"
++      shift # fnord
++      shift # "$arg"
++      done
++      ;;
++    esac
++    "$@" -E |
++    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
++  ) &
++  proc=$!
++  "$@"
++  stat=$?
++  wait "$proc"
++  if test "$stat" != 0; then exit $stat; fi
++  rm -f "$depfile"
++  echo "$object : \\" > "$depfile"
++  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::  \1 \\:p' >> "$depfile"
++  echo "      " >> "$depfile"
++  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
++  rm -f "$tmpdepfile"
++  ;;
++
++none)
++  exec "$@"
++  ;;
++
++*)
++  echo "Unknown depmode $depmode" 1>&2
++  exit 1
++  ;;
++esac
++
++exit 0
+diff -Nur aumix-2.7.orig/missing aumix-2.7/missing
+--- aumix-2.7.orig/missing     Sun May 25 18:17:15 1997
++++ aumix-2.7/missing  Sun Feb 17 16:40:59 2002
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+ # Common stub for a few missing GNU programs while installing.
+-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
++# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
++# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -18,11 +18,37 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ # 02111-1307, USA.
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that program.
++
+ if test $# -eq 0; then
+   echo 1>&2 "Try \`$0 --help' for more information"
+   exit 1
+ fi
++run=:
++
++# In the cases where this matters, `missing' is being run in the
++# srcdir already.
++if test -f configure.ac; then
++  configure_ac=configure.ac
++else
++  configure_ac=configure.in
++fi
++
++case "$1" in
++--run)
++  # Try to run requested program, and just exit if it succeeds.
++  run=
++  shift
++  "$@" && exit 0
++  ;;
++esac
++
++# If it does not exist, or fails to run (possibly an outdated version),
++# try to emulate it.
+ case "$1" in
+   -h|--h|--he|--hel|--help)
+@@ -35,19 +61,24 @@
+ Options:
+   -h, --help      display this help and exit
+   -v, --version   output version information and exit
++  --run           try to run the given command, and emulate it if it fails
+ Supported PROGRAM values:
+   aclocal      touch file \`aclocal.m4'
+   autoconf     touch file \`configure'
+   autoheader   touch file \`config.h.in'
+   automake     touch all \`Makefile.in' files
+-  bison        touch file \`y.tab.c'
++  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
++  flex         create \`lex.yy.c', if possible, from existing .c
++  help2man     touch the output file
++  lex          create \`lex.yy.c', if possible, from existing .c
+   makeinfo     touch the output file
+-  yacc         touch file \`y.tab.c'"
++  tar          try tar, gnutar, gtar, then tar without non-portable flags
++  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+     ;;
+   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+-    echo "missing - GNU libit 0.0"
++    echo "missing 0.3 - GNU automake"
+     ;;
+   -*)
+@@ -58,8 +89,8 @@
+   aclocal)
+     echo 1>&2 "\
+-WARNING: \`$1' is missing on your system.  It should be needed only if
+-         you modified \`acinclude.m4' or \`configure.in'.  You might want
++WARNING: \`$1' is missing on your system.  You should only need it if
++         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+          to install the \`Automake' and \`Perl' packages.  Grab them from
+          any GNU archive site."
+     touch aclocal.m4
+@@ -67,8 +98,8 @@
+   autoconf)
+     echo 1>&2 "\
+-WARNING: \`$1' is missing on your system.  It should be needed only if
+-         you modified \`configure.in'.  You might want to install the
++WARNING: \`$1' is missing on your system.  You should only need it if
++         you modified \`${configure_ac}'.  You might want to install the
+          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+          archive site."
+     touch configure
+@@ -76,36 +107,115 @@
+   autoheader)
+     echo 1>&2 "\
+-WARNING: \`$1' is missing on your system.  It should be needed only if
+-         you modified \`acconfig.h' or \`configure.in'.  You might want
++WARNING: \`$1' is missing on your system.  You should only need it if
++         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+          from any GNU archive site."
+-    touch config.h.in
++    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
++    test -z "$files" && files="config.h"
++    touch_files=
++    for f in $files; do
++      case "$f" in
++      *:*) touch_files="$touch_files "`echo "$f" |
++                                     sed -e 's/^[^:]*://' -e 's/:.*//'`;;
++      *) touch_files="$touch_files $f.in";;
++      esac
++    done
++    touch $touch_files
+     ;;
+   automake)
+     echo 1>&2 "\
+-WARNING: \`$1' is missing on your system.  It should be needed only if
+-         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
++WARNING: \`$1' is missing on your system.  You should only need it if
++         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+          You might want to install the \`Automake' and \`Perl' packages.
+          Grab them from any GNU archive site."
+-    find . -type f -name Makefile.am -print \
+-      | sed 's/^\(.*\).am$/touch \1.in/' \
+-      | sh
++    find . -type f -name Makefile.am -print |
++         sed 's/\.am$/.in/' |
++         while read f; do touch "$f"; done
+     ;;
+   bison|yacc)
+     echo 1>&2 "\
+ WARNING: \`$1' is missing on your system.  You should only need it if
+-      you modified a \`.y' file.  You may need the \`Bison' package
+-      in order for those modifications to take effect.  You can get
+-      \`Bison' from any GNU archive site."
+-    touch y.tab.c
++         you modified a \`.y' file.  You may need the \`Bison' package
++         in order for those modifications to take effect.  You can get
++         \`Bison' from any GNU archive site."
++    rm -f y.tab.c y.tab.h
++    if [ $# -ne 1 ]; then
++        eval LASTARG="\${$#}"
++      case "$LASTARG" in
++      *.y)
++          SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
++          if [ -f "$SRCFILE" ]; then
++               cp "$SRCFILE" y.tab.c
++          fi
++          SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
++          if [ -f "$SRCFILE" ]; then
++               cp "$SRCFILE" y.tab.h
++          fi
++        ;;
++      esac
++    fi
++    if [ ! -f y.tab.h ]; then
++      echo >y.tab.h
++    fi
++    if [ ! -f y.tab.c ]; then
++      echo 'main() { return 0; }' >y.tab.c
++    fi
++    ;;
++
++  lex|flex)
++    echo 1>&2 "\
++WARNING: \`$1' is missing on your system.  You should only need it if
++         you modified a \`.l' file.  You may need the \`Flex' package
++         in order for those modifications to take effect.  You can get
++         \`Flex' from any GNU archive site."
++    rm -f lex.yy.c
++    if [ $# -ne 1 ]; then
++        eval LASTARG="\${$#}"
++      case "$LASTARG" in
++      *.l)
++          SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
++          if [ -f "$SRCFILE" ]; then
++               cp "$SRCFILE" lex.yy.c
++          fi
++        ;;
++      esac
++    fi
++    if [ ! -f lex.yy.c ]; then
++      echo 'main() { return 0; }' >lex.yy.c
++    fi
++    ;;
++
++  help2man)
++    echo 1>&2 "\
++WARNING: \`$1' is missing on your system.  You should only need it if
++       you modified a dependency of a manual page.  You may need the
++       \`Help2man' package in order for those modifications to take
++       effect.  You can get \`Help2man' from any GNU archive site."
++
++    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
++    if test -z "$file"; then
++      file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
++    fi
++    if [ -f "$file" ]; then
++      touch $file
++    else
++      test -z "$file" || exec >$file
++      echo ".ab help2man is required to generate this page"
++      exit 1
++    fi
+     ;;
+   makeinfo)
++    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
++       # We have makeinfo, but it failed.
++       exit 1
++    fi
++
+     echo 1>&2 "\
+-WARNING: \`$1' is missing on your system.  It should be needed only if
++WARNING: \`$1' is missing on your system.  You should only need it if
+          you modified a \`.texi' or \`.texinfo' file, or any other file
+          indirectly affecting the aspect of the manual.  The spurious
+          call might also be the consequence of using a buggy \`make' (AIX,
+@@ -117,6 +227,45 @@
+       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+     fi
+     touch $file
++    ;;
++
++  tar)
++    shift
++    if test -n "$run"; then
++      echo 1>&2 "ERROR: \`tar' requires --run"
++      exit 1
++    fi
++
++    # We have already tried tar in the generic part.
++    # Look for gnutar/gtar before invocation to avoid ugly error
++    # messages.
++    if (gnutar --version > /dev/null 2>&1); then
++       gnutar ${1+"$@"} && exit 0
++    fi
++    if (gtar --version > /dev/null 2>&1); then
++       gtar ${1+"$@"} && exit 0
++    fi
++    firstarg="$1"
++    if shift; then
++      case "$firstarg" in
++      *o*)
++          firstarg=`echo "$firstarg" | sed s/o//`
++          tar "$firstarg" ${1+"$@"} && exit 0
++          ;;
++      esac
++      case "$firstarg" in
++      *h*)
++          firstarg=`echo "$firstarg" | sed s/h//`
++          tar "$firstarg" ${1+"$@"} && exit 0
++          ;;
++      esac
++    fi
++
++    echo 1>&2 "\
++WARNING: I can't seem to be able to run \`tar' with the given arguments.
++         You may want to install GNU tar or Free paxutils, or check the
++         command line arguments."
++    exit 1
+     ;;
+   *)
diff --git a/demian/bc/bc b/demian/bc/bc
new file mode 100755 (executable)
index 0000000..6290374
--- /dev/null
@@ -0,0 +1,11 @@
+# HDW Linux bc
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A console calculator with potential features. This also allows
+# [I] arguments from command line.
+# [V] 1.06
+# [S] 3 10
+# [D] bc-1.06.tar.gz ftp://ftp.gnu.org/pub/gnu/bc/
+# [P] readline.patch http://hackdaworld.dyndns.org/~demian/c00l/hdw/patches/bc/
+
+confopt="$confopt --with-readline"
diff --git a/demian/bc/readline.patch b/demian/bc/readline.patch
new file mode 100755 (executable)
index 0000000..cd42c89
--- /dev/null
@@ -0,0 +1,11 @@
+--- demian/bc/scan.l.orig      Wed Sep 13 14:25:47 2000
++++ demion/bc/scan.l   Sun Jun 10 18:18:42 2001
+@@ -143,7 +143,7 @@
+ /* Definitions for readline access. */
+ extern FILE *rl_instream;
+-_PROTOTYPE(char *readline, (char *));
++_PROTOTYPE(char *readline, (const char *));
+ /* rl_input puts upto MAX characters into BUF with the number put in
+    BUF placed in *RESULT.  If the yy input file is the same as
diff --git a/demian/bind/bind b/demian/bind/bind
new file mode 100755 (executable)
index 0000000..e4101eb
--- /dev/null
@@ -0,0 +1,8 @@
+# HDW Linux bind
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Domain name server daemon
+# [V] 9.2.1
+# [S] 3 5
+# [D] bind-9.2.1.tar.gz ftp://ftp.isc.org/isc/bind9/9.2.1/
+
diff --git a/demian/enlightenment/enlightenment b/demian/enlightenment/enlightenment
new file mode 100755 (executable)
index 0000000..3232f4a
--- /dev/null
@@ -0,0 +1,47 @@
+# HDW Linux enlightenment
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] 
+# [V] 0.16.5
+# [S] 4 5
+# [D] enlightenment-0.16.5.tar.gz http://easynews.dl.sourceforge.net/sourceforge/enlightenment/
+# [D] fnlib-0.5.tar.gz http://easynews.dl.sourceforge.net/sourceforge/enlightenment/
+# [D] imlib2-1.0.6.tar.gz http://telia.dl.sourceforge.net/sourceforge/enlightenment/
+# [D] freetype-1.3.1.tar.gz http://unc.dl.sourceforge.net/sourceforge/freetype/
+
+# Notes: still testing
+
+custmain()
+{
+
+    echo building freetype (older version - for compatibility)
+    tar -xvzf $hdw_home_dir/download/$dir/$package/freetype-1.3.1.tar.gz
+    cd freetype-1.3.1 ;
+    ./configure $confopt --prefix=/usr; make $make_conf ;
+    make $install_conf install ; cd ..
+
+    echo building fnlib
+    tar -xvzf $hdw_home_dir/download/$dir/$package/fnlib-0.5.tar.gz
+    cd fnlib-0.5 ; 
+    ./configure $confopt --prefix=/usr; make $make_conf ; 
+    make $install_conf install ; cd ..
+
+    echo "building imlib2 (new enlightenm. sources already bring it)"
+    tar -xvzf $hdw_home_dir/download/$dir/$package/imlib2-1.0.6.tar.gz
+    cd imlib2-1.0.6 ; 
+    ./configure $confopt --prefix=/usr; make $make_conf ;
+    make $install_conf install ; cd ..
+
+    echo "building enlightenment =)"
+    tar -xvzf $hdw_home_dir/download/$dir/$package/enlightenment-0.16.5.tar.gz
+    cd enlightenment-0.16.5 ;
+    ./configure $confopt ; make $make_conf ;
+    make $install_conf install ;
+
+    echo making some final changes
+    ln -sf $prefix/enlightenment/bin $prefix/enlightenment
+    ln -sf $prefix/enlightenment/enlightenment /usr/
+               
+
+    echo -e "\ndone :)"
+}
diff --git a/demian/gaim/gaim b/demian/gaim/gaim
new file mode 100755 (executable)
index 0000000..21f3ab2
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux gaim
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A AIM, ICQ, MSN Messenger and Jabber Client
+# [V] 0.59.6
+# [S] 3 10
+# [D] gaim-0.59.6.tar.bz2 http://freshmeat.net/redir/gaim/3020/url_bz2/
diff --git a/demian/galeon/galeon b/demian/galeon/galeon
new file mode 100755 (executable)
index 0000000..26abc94
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux galeon
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A light web browser which depends of mozilla libs.
+# [V] 1.2.6
+# [S] 4 5
+# [D] galeon-1.2.6.tar.gz http://telia.dl.sourceforge.net/sourceforge/galeon/
diff --git a/demian/gdbm/gdbm b/demian/gdbm/gdbm
new file mode 100755 (executable)
index 0000000..0e205e9
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux gdbm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] GNU dbm
+# [V] 1.8.0
+# [S] 3 6
+# [D] gdbm-1.8.0.tar.gz ftp://ftp.gnu.org/pub/gnu/gdbm/
diff --git a/demian/gkrellm/gkrellm b/demian/gkrellm/gkrellm
new file mode 100755 (executable)
index 0000000..72b9441
--- /dev/null
@@ -0,0 +1,16 @@
+# HDW Linux gkrellm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] X11 application which let u manage some basic activities 
+# [I] and control the system status
+# [V] 2.1.0
+# [S] 3 10
+# [D] gkrellm-2.1.0.tar.bz2 http://web.wt.net/~billw/gkrellm/
+    
+build_main()
+{
+    ./configure $confopt 
+    make $make_conf
+    make $install_conf INSTALLDIR=$prefix/bin MANDIR=$prefix/share/man/man1 \
+    INCLUDEDIR=$prefix/include install
+}
diff --git a/demian/gperf/gperf b/demian/gperf/gperf
new file mode 100755 (executable)
index 0000000..1295593
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux gperf
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Nedeed by some programs, like a2ps
+# [V] 2.7.2
+# [S] 3 8
+# [D] gperf-2.7.2.tar.bz2 ftp://ftp.gnu.org/pub/gnu/gperf/
diff --git a/demian/gpm/gpm b/demian/gpm/gpm
new file mode 100755 (executable)
index 0000000..b67fd21
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux gpm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A powerful console application to copy and paste from 
+# [I] the mouse device
+# [V] 1.20.0
+# [S] 3 10
+# [D] gpm-1.20.0.tar.bz2 ftp://arcana.linux.it/pub/gpm/
+
diff --git a/demian/gtk-gnutella/gtk-gnutella b/demian/gtk-gnutella/gtk-gnutella
new file mode 100755 (executable)
index 0000000..27f510c
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux gtk-gnutella
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A gnutella client for X. Based in GTK.
+## [V] 0.91
+# [V] 0.90
+# [S] 3 9
+## [D] gtk-gnutella-0.91.tar.gz http://unc.dl.sourceforge.net/sourceforge/gtk-gnutella/
+# [D] gtk-gnutella-0.90.tar.bz2 http://unc.dl.sourceforge.net/sourceforge/gtk-gnutella/
diff --git a/demian/howtos/howtos b/demian/howtos/howtos
new file mode 100755 (executable)
index 0000000..d834e32
--- /dev/null
@@ -0,0 +1,21 @@
+# HDW Linux quota
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Linux Howtos provides a powerful documentation
+# [V] 
+# [S] 4 9
+# [D] Linux-HOWTOs.tar.gz ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/
+# [D] Linux-mini-HOWTOs.tar.gz ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/
+
+custmain=1
+
+custmain()
+{
+    echo -e "Installing Linux HOWTOs..."
+    mkdir -p $root/usr/share/doc/HOWTOS 2> /dev/null
+    tar -m --use-compress-program=gzip -xf $archdir/Linux-HOWTOs.tar.gz -C $root/usr/share/doc/HOWTOS 2> /dev/null
+    
+    echo -e "Installing Linux mini-HOWTOS..."
+    mkdir $root/usr/share/doc/mini-HOWTOS 2> /dev/null
+    tar -m --use-compress-program=gzip -xf $archdir/Linux-mini-HOWTOs.tar.gz -C $root/usr/share/doc/mini-HOWTOS &> /dev/null
+}
diff --git a/demian/icewm/icewm b/demian/icewm/icewm
new file mode 100755 (executable)
index 0000000..a37e591
--- /dev/null
@@ -0,0 +1,12 @@
+# HDW Linux icewm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Window manager which provides multiple desktops, menus and 
+# [I] some other features.
+## [V] 1.2.3
+# [V] 1.2.2
+# [S] 3 9
+## [D] icewm-1.2.3pre1.tar.gz http://unc.dl.sourceforge.net/sourceforge/icewm/
+# [D] icewm-1.2.2.tar.bz2 http://unc.dl.sourceforge.net/sourceforge/icewm/
+
+confopt="$confopt --with-imlib --with-kdedatadir=/opt/kde3/share"
diff --git a/demian/id-utils/id-utils b/demian/id-utils/id-utils
new file mode 100755 (executable)
index 0000000..4007fe1
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux id-utils
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Some utilities for uid and gid.
+# [V] 3.2
+# [S] 2 100
+# [D] id-utils-3.2.tar.gz ftp://ftp.gnu.org/pub/gnu/id-utils/
+
+
diff --git a/demian/inn/inn b/demian/inn/inn
new file mode 100755 (executable)
index 0000000..e0d53b6
--- /dev/null
@@ -0,0 +1,13 @@
+# HDW Linux inn
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Internet News Server
+# [V] 2.3.3
+# [S] 4 5
+# [D] inn-2.3.3.tar.bz2 http://freshmeat.net/redir/inn/4428/url_tgz/
+
+confopt="$confopt --prefix=/opt/inn --with-news-user=news --with-news-group=news 
+--with-news-master=usenet --with-syslog-facility=LOG_NEWS --with-perl --with-python 
+--with-log-compress=bzip2 --enable-shared --with-openssl
+
+
diff --git a/demian/ion/ion b/demian/ion/ion
new file mode 100755 (executable)
index 0000000..b846303
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux ion
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A little window manager based in frames.
+# [V] 20020207
+# [S] 3 7
+# [D] ion-20020207.tar.bz2 none
+
+PREFIX=$prefix
diff --git a/demian/ion/system.mk.patch b/demian/ion/system.mk.patch
new file mode 100755 (executable)
index 0000000..69e6798
--- /dev/null
@@ -0,0 +1,5 @@
+--- blablabla/system.mk.old    2002-11-15 11:50:58.000000000 -0600
++++ moreblabla/system.mk       2002-11-15 11:51:12.000000000 -0600
+@@ -10 +10 @@
+-PREFIX=/usr/local
++PREFIX=/usr
diff --git a/demian/java-lib/java-lib b/demian/java-lib/java-lib
new file mode 100755 (executable)
index 0000000..3ad7443
--- /dev/null
@@ -0,0 +1,19 @@
+# HDW Linux java-lib
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Java Libraries, needed to develope and execute java apps.
+# [V] 
+# [S] 4 9
+# [D] gnu.regexp-1.1.4.tar.bz2
+# [D] jdbc7.0-1.2.jar
+# [D] junit3.6.zip
+prefix="$root/opt/java-lib"
+build_main()
+{
+    mkdir -p $prefix/lib $prefix/doc
+    mv jdbc7.0-1.2.jar $prefix/lib
+    mv gnu.regexp-1.1.4/lib/gnu-regexp-1.1.4.jar $prefix/lib
+    unzip $archdir/junit3.6.zip
+    cp junit*/*.jar $prefix/lib
+    mv gnu.regexp* junit* $prefix/
+}
diff --git a/demian/java/java b/demian/java/java
new file mode 100755 (executable)
index 0000000..b01d969
--- /dev/null
@@ -0,0 +1,25 @@
+# HDW Linux java
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Java Runtime and Development Environment
+# [V] 1.3.1
+# [S] 3 9
+# [D] j2sdk-1.3.1.bin descargar-desde-un-mirror
+
+srcdir="."
+build_main()
+{
+    cp -v $archdir/j2sdk-1.3.1.bin .
+    pwd
+    patch -Nfp0 < $confdir/java-bin.patch
+    bash j2sdk-1.3.1.bin
+    mv jsdk* /opt/java
+    echo "PATH=$PATH:/opt/java/bin" >> /etc/profile.d/java
+    echo "/opt/java/lib" >> /etc/ld.so.conf
+}
+    
+
+# Notes: to download this package u need to accept Sun's license.
+# This is a shell script with sources in the same file.
+# Find a way to make this easier. (No interactive install)
+
diff --git a/demian/java/java-bin.patch b/demian/java/java-bin.patch
new file mode 100755 (executable)
index 0000000..27a2436
Binary files /dev/null and b/demian/java/java-bin.patch differ
diff --git a/demian/lynx/lynx b/demian/lynx/lynx
new file mode 100755 (executable)
index 0000000..6ab8d4e
--- /dev/null
@@ -0,0 +1,21 @@
+# HDW Linux lynx
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Powerful console web browser.
+# [V] 2.8.4
+# [S] 3 10
+# [D] lynx2.8.4.tar.bz2 http://lynx.isc.org/release/
+
+confopt="$confopt --with-ssl"
+post_install()
+{
+    make install-doc
+    make install-help
+    [ -f /etc/lynx.cfg ] || cp -v lynx.cfg /etc/ ;
+
+    lynxcfg="[ -f /etc/lynx.cfg ] && export LYNX_CFG=/etc/lynx.cfg";
+    
+    if ! grep "^$lynxcfg" /etc/conf/profile ; then
+       echo -e "\n$lynxcfg" >> /etc/conf/profile
+    fi
+}
diff --git a/demian/mpg123/mpg123 b/demian/mpg123/mpg123
new file mode 100755 (executable)
index 0000000..ff87937
--- /dev/null
@@ -0,0 +1,17 @@
+# HDW Linux mpg123
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A console mpeg audio formats player.
+# [V] 0.59r
+# [S] 3 10
+# [D] mpg123-0.59r.tar.gz http://www.mpg123.de/mpg123/
+
+build_main()
+{
+    make $make_conf linux
+    make $install_conf PREFIX=/usr install
+}
+
+
+# Notes: mpg123 is not free software. Use mpg321 instead.
+
diff --git a/demian/ncftp/ncftp b/demian/ncftp/ncftp
new file mode 100755 (executable)
index 0000000..5c19ff0
--- /dev/null
@@ -0,0 +1,19 @@
+# HDW Linux ncftp
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Sympathic ftp client with command line auto completion 
+# [I] and some other cool features.
+# [V] 3.1.5
+# [S] 3 10
+# [D] ncftp-3.1.5-src.tar.bz2 ftp://ftp.ncftp.com/ncftp/
+
+pre_install()
+{
+    ln -sf /usr/bin/ls /bin/
+}
+
+post_install()
+{
+    rm /bin/ls
+}
+
diff --git a/demian/netcat/netcat b/demian/netcat/netcat
new file mode 100755 (executable)
index 0000000..a57c149
--- /dev/null
@@ -0,0 +1,16 @@
+# HDW Linux netcat
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Writes and read data across network connections.
+# [V] 1.1.0
+# [S] 3 9
+# [D] nc110.tgz none
+
+srcdir=.
+build_main()
+{
+    make linux
+    cp nc $prefix/bin
+    mkdir $prefix/share/doc/netcat
+    cp -v README $prefix/share/doc/netcat/Readme
+}
diff --git a/demian/netcat/netcat.c.patch b/demian/netcat/netcat.c.patch
new file mode 100755 (executable)
index 0000000..944cf10
--- /dev/null
@@ -0,0 +1,5 @@
+--- demiansote/netcat.c.old    2002-11-18 23:05:53.000000000 -0600
++++ demiansito/netcat.c        2002-11-18 23:04:38.000000000 -0600
+@@ -1319 +1319 @@
+-  res_init();
++//  res_init();
diff --git a/demian/netkit-ftp/netkit-ftp b/demian/netkit-ftp/netkit-ftp
new file mode 100755 (executable)
index 0000000..e5f9c4f
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux netkit-ftp
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Contains ftp tools
+# [V] 0.17
+# [S] 3 6
+# [D] netkit-ftp-0.17.tar.gz ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/
+
+confopt="--prefix=$prefix"
diff --git a/demian/netkit-ntalk/endwin.patch b/demian/netkit-ntalk/endwin.patch
new file mode 100755 (executable)
index 0000000..c39a24d
--- /dev/null
@@ -0,0 +1,10 @@
+--- configure~ Wed Dec  9 17:50:24 1998
++++ configure  Sun Apr 18 12:31:41 1999
+@@ -423,7 +423,6 @@
+ syntax error. /* not ncurses */
+ #endif
+ int main() {
+-    endwin();
+     return 0;
+ }
+ EOF
diff --git a/demian/netkit-ntalk/glibc2.2.patch b/demian/netkit-ntalk/glibc2.2.patch
new file mode 100755 (executable)
index 0000000..786d9ad
--- /dev/null
@@ -0,0 +1,10 @@
+--- ./talkd/announce.c.orig    Tue Oct 16 18:38:22 2001
++++ ./talkd/announce.c Tue Oct 16 18:38:54 2001
+@@ -44,6 +44,7 @@
+ #include <sys/socket.h>
+ #include <errno.h>
+ #include <syslog.h>
++#include <time.h>
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <fcntl.h>
diff --git a/demian/netkit-ntalk/netkit-ntalk b/demian/netkit-ntalk/netkit-ntalk
new file mode 100755 (executable)
index 0000000..07f2e05
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux netkit-ntalk
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Contains talk and ntalk application
+# [V] 0.17
+# [S] 3 6
+# [D] netkit-ntalk-0.17.tar.gz ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/
+
+confopt="--prefix=$prefix"
diff --git a/demian/netkit-routed/netkit-routed b/demian/netkit-routed/netkit-routed
new file mode 100755 (executable)
index 0000000..72fe1ce
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux netkit-routed
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Contains routed daemon
+# [V] 0.17
+# [S] 3 6
+# [D] netkit-routed-0.17.tar.gz ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/
+
+confopt="--prefix=$prefix"
diff --git a/demian/netkit-rsh/netkit-rsh b/demian/netkit-rsh/netkit-rsh
new file mode 100755 (executable)
index 0000000..3e58ba2
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux netkit-rsh
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Contains R tools (rsh[d],rexec[d],rlogin[d],rcp)
+# [V] 0.17
+# [S] 3 6
+# [D] netkit-rsh-0.17.tar.gz ftp)://ftp.uk.linux.org/pub/linux/Networking/netkit/
+
+confopt="--prefix=$prefix"
diff --git a/demian/netkit-telnet/netkit-telnet b/demian/netkit-telnet/netkit-telnet
new file mode 100755 (executable)
index 0000000..e1353f2
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux netkit-telnet
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Contains telnet application and server
+# [V] 0.17
+# [S] 3 6
+# [D] netkit-telnet-0.17.tar.gz ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/
+
+confopt="--prefix=$prefix"
diff --git a/demian/netkit-telnet/prototypes.patch b/demian/netkit-telnet/prototypes.patch
new file mode 100755 (executable)
index 0000000..c1120b0
--- /dev/null
@@ -0,0 +1,88 @@
+# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
+# 
+# ROCK Linux: rock-src/package/base/netkit-telnet/prototypes.patch
+# ROCK Linux is Copyright (C) 1998 - 2002 Clifford Wolf
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version. A copy of the GNU General Public
+# License can be found at Documentation/COPYING.
+# 
+# Many people helped and are helping developing ROCK Linux. Please
+# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
+# file for details.
+# 
+# --- ROCK-COPYRIGHT-NOTE-END ---
+
+--- ./telnet/telnet.cc.orig    Fri Sep 24 08:29:33 1999
++++ ./telnet/telnet.cc Fri Sep 24 08:38:06 1999
+@@ -61,6 +61,9 @@
+  * Due to lossage in some linux distributions/kernel releases/libc versions
+  * this must come *after* termios.h (which is included in externs.h)
+  */
++
++extern "C" { extern int tgetent(char *, const char *); }
++
+ #include <termcap.h>
+ #ifdef USE_NCURSES
+--- ./telnet/main.cc.orig      Thu May  2 11:37:25 2002
++++ ./telnet/main.cc   Thu May  2 11:39:09 2002
+@@ -52,6 +52,8 @@
+ #include "defines.h"
+ #include "proto.h"
++extern "C" { extern void exit(int); }
++
+ /*
+  * Initialize variables.
+  */
+--- ./telnet/network.cc.orig   Thu May  2 11:39:50 2002
++++ ./telnet/network.cc        Thu May  2 11:40:00 2002
+@@ -49,6 +49,8 @@
+ #include "proto.h"
+ #include "netlink.h"
++extern "C" { extern void exit(int); }
++
+ ringbuf netoring;
+ ringbuf netiring;
+--- ./telnet/terminal.cc.orig  Thu May  2 11:40:16 2002
++++ ./telnet/terminal.cc       Thu May  2 11:40:58 2002
+@@ -53,6 +53,9 @@
+ #include "proto.h"
+ #include "terminal.h"
++extern "C" { extern void exit(int); }
++extern "C" { extern void *memcpy(void *, const void *, size_t); }
++
+ static int TerminalWrite(const char *buf, int n);
+ static int TerminalRead(char *buf, int n);
+--- ./telnet/utilities.cc.orig Thu May  2 11:41:28 2002
++++ ./telnet/utilities.cc      Thu May  2 11:43:26 2002
+@@ -54,6 +54,11 @@
+ #include "proto.h"
+ #include "terminal.h"
++extern "C" { extern void exit(int); }
++extern "C" { extern size_t strlen(const char *); }
++extern "C" { extern char *strcmp(const char *, const char *); }
++extern "C" { extern char *strcpy(char *, const char *); }
++
+ FILE *NetTrace = 0;           /* Not in bss, since needs to stay */ /* ? */
+ char NetTraceFile[256] = "(standard output)";
+--- ./telnet/netlink.cc.orig   Thu May  2 11:43:59 2002
++++ ./telnet/netlink.cc        Thu May  2 11:44:04 2002
+@@ -12,6 +12,8 @@
+ #include "proto.h"
+ #include "ring.h"
++extern "C" { extern void *memcpy(void *, const void *, size_t); }
++
+ /* In Linux, this is an enum */
+ #if defined(__linux__) || defined(IPPROTO_IP)
+ #define HAS_IPPROTO_IP
diff --git a/demian/netkit-tftp/netkit-tftp b/demian/netkit-tftp/netkit-tftp
new file mode 100755 (executable)
index 0000000..8a7de88
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux netkit-tftp
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Contains tftp tools
+# [V] 0.17
+# [S] 3 6
+# [D] netkit-tftp-0.17.tar.gz ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/
+
+confopt="--prefix=$prefix"
diff --git a/demian/nmap/inet_aton.patch b/demian/nmap/inet_aton.patch
new file mode 100755 (executable)
index 0000000..42fc309
--- /dev/null
@@ -0,0 +1,30 @@
+diff -u old/nmap.h new/nmap.h
+--- old/nmap.h 2002-10-27 18:58:44.000000000 -0600
++++ new/nmap.h 2002-10-27 18:24:04.000000000 -0600
+@@ -362,9 +362,9 @@
+ void skid_output(unsigned char *s);
+ /* From glibc 2.0.6 because Solaris doesn't seem to have this function */
+-#ifndef HAVE_INET_ATON
++/*#ifndef HAVE_INET_ATON
+ int inet_aton(register const char *, struct in_addr *);
+-#endif
++#endif*/
+ #ifndef HAVE_SNPRINTF
+ int snprintf ( char *str, size_t n, const char *format, ... );
+ #endif
+diff -u old/tcpip.h new/tcpip.h
+--- old/tcpip.h        2002-10-27 18:58:59.000000000 -0600
++++ new/tcpip.h        2002-10-27 18:24:04.000000000 -0600
+@@ -354,9 +354,9 @@
+ /* Hex dump */
+ int get_link_offset(char *device);
+ char *readip_pcap(pcap_t *pd, unsigned int *len, long to_usec);
+-#ifndef HAVE_INET_ATON
++/*#ifndef HAVE_INET_ATON
+ int inet_aton(register const char *, struct in_addr *);
+-#endif
++#endif*/
+ #endif /*TCPIP_H*/
diff --git a/demian/nmap/nmap b/demian/nmap/nmap
new file mode 100755 (executable)
index 0000000..9dcd540
--- /dev/null
@@ -0,0 +1,11 @@
+# HDW Linux quota
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Port scanner.
+# [V] 3.00
+# [S] 3 10
+# [D] nmap-3.00.tgz http://www.insecure.org/nmap/dist/
+
+# Notes: there is patch attached fixing inet_aton previous 
+# declarations, u might not apply this patch if u are still
+# using old libraries without this function.
diff --git a/demian/pciutils/no_werror.patch b/demian/pciutils/no_werror.patch
new file mode 100755 (executable)
index 0000000..faf896a
--- /dev/null
@@ -0,0 +1,11 @@
+--- old/Makefile       Sat Dec  4 13:55:13 1999
++++ new/Makefile       Sun Dec  5 11:24:21 1999
+@@ -4,7 +4,7 @@
+ OPT=-O2 -fomit-frame-pointer
+ #OPT=-O2 -g
+-CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Werror
++CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes
+ VERSION=2.1.1
+ SUFFIX=
diff --git a/demian/pciutils/pciutils b/demian/pciutils/pciutils
new file mode 100755 (executable)
index 0000000..3442e9f
--- /dev/null
@@ -0,0 +1,13 @@
+# HDW Linux pciutils
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Powerful utils for pci devices scanning and information
+# [V] 2.1.9
+# [S] 2 10
+# [D] pciutils-2.1.9.tar.gz ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/
+
+post_install()
+{
+    # pci.ids is update more often than the pcutils one
+    cp -v $root/usr/src/linux/drivers/pci/pci.ids $root/usr/share/pci.ids
+}
diff --git a/demian/php/php b/demian/php/php
new file mode 100755 (executable)
index 0000000..9dad31a
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux php
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] PHP Source and Modules
+# [V] 4.2.3
+# [S] 3 9
+# [D] php-4.2.3.tar.bz2 none
+
+# need improve
diff --git a/demian/pine.old/pine.old b/demian/pine.old/pine.old
new file mode 100755 (executable)
index 0000000..9b68e2a
--- /dev/null
@@ -0,0 +1,17 @@
+# HDW Linux pine
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Console mail client, editor and file browser. A powerful suite.
+# [V] 4.44
+# [S] 3 10
+# [D] pine4.44.tar.gz ftp://ftp.cac.washington.edu/pine/
+
+
+build_main() {
+       ./build slx ; cp -v bin/* $root/usr/bin/
+       cp -a doc/ $root/usr/share/doc/packages/$pkg/
+       cp -a imap/docs/ $root/usr/share/doc/packages/$pkg/imap/
+       cp imap/src/imapd/imapd.8c $root/usr/share/man/man8/imapd.8
+       cd doc/
+       mv pico.1 pilot.1 pine.1 $root/usr/share/man/man1/
+}
diff --git a/demian/procmail/makefile.patch b/demian/procmail/makefile.patch
new file mode 100755 (executable)
index 0000000..f91a179
--- /dev/null
@@ -0,0 +1,5 @@
+--- ./Makefile.old     2003-02-04 09:20:38.000000000 -0600
++++ ./Makefile 2003-02-04 09:21:28.000000000 -0600
+@@ -100 +100 @@
+-RM    = /bin/rm -f
++RM    = /usr/bin/rm -f
diff --git a/demian/procmail/procmail b/demian/procmail/procmail
new file mode 100755 (executable)
index 0000000..6b6ed3d
--- /dev/null
@@ -0,0 +1,14 @@
+# HDW Linux procmail
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Mail processing program
+# [V] 3.22
+# [S] 3 7
+# [D] procmail-3.22.tar.gz ftp://ftp.procmail.org/pub/procmail/
+export RM="/usr/bin/rm -f"
+build_main()
+{
+    echo | make $make_conf
+    make $install_conf install
+    make $install_conf install-suid
+}
diff --git a/demian/proftpd/proftpd b/demian/proftpd/proftpd
new file mode 100755 (executable)
index 0000000..036aecd
--- /dev/null
@@ -0,0 +1,13 @@
+# HDW Linux proftpd
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A good FTP server.
+# [V] 1.2.6
+# [S] 4 5
+# [D] proftpd-1.2.6.tar.bz2 ftp://ftp.proftpd.org/distrib/source/
+
+confopt="--prefix=$prefix"
+post_install()
+{
+    cp sample-configurations/anonymous.conf /etc/opt/proftpd.conf # ?
+}
diff --git a/demian/pspell/pspell b/demian/pspell/pspell
new file mode 100755 (executable)
index 0000000..73cf07d
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux pspell
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Libraries for spell checkers.
+# [V] 12.2
+# [S] 3 5
+# [D] pspell-.12.2.tar.gz http://download.sourceforge.net/pspell/
diff --git a/demian/psutils/makefile.patch b/demian/psutils/makefile.patch
new file mode 100755 (executable)
index 0000000..aaa484d
--- /dev/null
@@ -0,0 +1,10 @@
+--- ./Makefile.unix.old        2003-02-03 23:05:04.000000000 -0600
++++ ./Makefile.unix    2003-02-03 23:05:34.000000000 -0600
+@@ -28 +28 @@
+-BINDIR = /usr/local/bin
++BINDIR = /usr/bin
+@@ -30,2 +30,2 @@
+-INCLUDEDIR = /usr/local/share/psutils
+-PERL = /usr/local/bin/perl
++INCLUDEDIR = /usr/share/psutils
++PERL = /usr/bin/perl
diff --git a/demian/psutils/psutils b/demian/psutils/psutils
new file mode 100755 (executable)
index 0000000..0d53eab
--- /dev/null
@@ -0,0 +1,18 @@
+# HDW Linux psutils
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Postcript tools
+# [V] p17
+# [S] 3 5
+# [D] psutils-p17.tar.bz2 ftp://ftp.dcs.ed.ac.uk/pub/ajcd/
+
+srcdir=psutils
+export PREFIX="$prefix"
+export BINDIR="$prefix/bin"
+export INCLUDEDIR="$prefix/share/psutils"
+export PERL="$prefix/bin/perl"
+export MANDIR="$prefix/share/man/man${MANEXT}"
+pre_install()
+{
+    cp -v Makefile.unix Makefile
+}
diff --git a/demian/quota/quota b/demian/quota/quota
new file mode 100755 (executable)
index 0000000..562bcb3
--- /dev/null
@@ -0,0 +1,8 @@
+# HDW Linux quota
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Quota utilities for managing kernel quotas
+# [V] 3.08
+# [S] 3 10
+# [D] quota-3.08.tar.gz http://telia.dl.sourceforge.net/sourceforge/linuxquota/
+
diff --git a/demian/readline/readline b/demian/readline/readline
new file mode 100755 (executable)
index 0000000..03e2ba8
--- /dev/null
@@ -0,0 +1,8 @@
+#! /bin/bash
+# HDW Linux readline
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] GNU readline library (required by netkit-*)
+# [V] 4.3
+# [S] 3 4
+# [D] readline-4.3.tar.gz ftp://ftp.gnu.org/pub/gnu/readline/
diff --git a/demian/screen/screen b/demian/screen/screen
new file mode 100755 (executable)
index 0000000..6d26093
--- /dev/null
@@ -0,0 +1,16 @@
+# HDW Linux screen
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A interesting application which let u open a new virtual 
+# [I] terminal, detach it to background and retach it later from 
+# [I] any terminal.
+# [V] 3.9.13
+# [S] 3 9
+# [D] screen-3.9.13.tar.bz2 ftp://ftp.uni-erlangen.de/pub/utilities/screen/
+
+confopt="$confopt --disable-socket-dir --with-sys-screenrc=$root/etc/screenrc"
+post_install()
+{
+    cp -v etc/screenrc $root/etc
+    cp -v terminfo/screencap $prefix/share/terminfo/s/
+}
diff --git a/demian/seejpeg/seejpeg b/demian/seejpeg/seejpeg
new file mode 100755 (executable)
index 0000000..7ebd99b
--- /dev/null
@@ -0,0 +1,13 @@
+# HDW Linux seejpeg
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Console application which use svgalib to display jpeg images on 
+# [I] console
+# [V] 1.10
+# [S] 3 9
+# [D] seejpeg-1.10.tgz ftp://ftp.ibiblio.org/pub/Linux/apps/graphics/viewers/svga/
+
+build_main() {
+    make $make_conf seejpeg
+    make $install_conf BIN=/usr/bin/ MAN=/usr/man/man1/ install
+}
diff --git a/demian/sendmail.old/sendmail.old b/demian/sendmail.old/sendmail.old
new file mode 100755 (executable)
index 0000000..c729a31
--- /dev/null
@@ -0,0 +1,63 @@
+# HDW Linux sendmail
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Most used mail server.
+# [V] 8.12.7
+# [R] bdb
+# [S] 3 5
+# [D] sendmail.8.12.7.tar.bz2 ftp://ftp.sendmail.org/pub/sendmail/
+
+# sendmail will be installed with prefix=/usr cause
+# generic settings for most systems.
+
+
+srcdir=sendmail-8.12.5
+
+build_main()
+{
+    echo "HDW: building main sendmail distribution"
+    cd sendmail ; sh Build ; cd ..
+
+    echo "HDW: building sendmail configuration files"
+    cd cf/cf ; cp generic-linux.mc sendmail.mc 
+    sh Build sendmail.cf ;
+    [ -f /etc/mail/sendmail.cf ] && \
+    mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf.old
+    sh Build install-cf
+    
+    rm -Rf `which sendmail` ;
+    
+    echo "creating sendmail group and user"
+    groupadd smmsp && \
+    useradd smmsp -s /bin/false -g smmsp -G smmsp -d none
+
+    echo "installing sendmail distribution"
+    cd ../.. ;
+    cd sendmail ; sh Build install ; cd .. ;
+
+    # disable utilities to be installed here:
+
+    utils="editmap lib* mail.local mailstats \
+           makemap praliases rmail smrsh vacation"
+    
+    echo "installing sendmail utilities"
+    for util in $utils ; 
+    do
+       echo "+building $util" ; cd $util && \
+       sh Build install ; cd ..
+    done
+       
+#    echo "+editmap" ; cd editmap &&   sh Build install ; cd ..
+#    echo "+libsmdb" ; cd libsmdb &&   sh Build install ; cd ..
+#    echo "+mailstats";cd mailstats && sh Build install ; cd ..
+#    echo "+makemap" ; cd makemap &&   sh Build install ; cd ..
+#    echo "+rmail"   ; cd rmail &&     sh Build install ; cd .. 
+#    echo "+smrsh"   ; cd smrsh &&     sh Build install ; cd ..
+#    echo "+praliases";cd praliases && sh Build install ; cd ..
+    
+    echo -e "\ndone."
+    
+    #exit=0 ;          # will be used in the new abort system.
+                       # useless using trap :)
+}
+
diff --git a/demian/sniffit/sniffit b/demian/sniffit/sniffit
new file mode 100755 (executable)
index 0000000..52e5581
--- /dev/null
@@ -0,0 +1,19 @@
+# HDW Linux sniffit
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A Sniffer
+# [V] 0.3.7
+# [S] 3 10
+## [D] sniffit.0.3.7.beta.tar.gz http://reptile.rug.ac.be/~coder/sniffit/files/
+# [D] sniffit.tar.gz http://reptile.rug.ac.be/~coder/sniffit/files/
+
+srcdir=sniffit.0.3.7.beta
+
+build_main()
+{
+    ./configure $confopt 
+    make $make
+    cp sniffit /usr/bin
+    gzip sniffit.5 && cp sniffit.5 /usr/share/man/man5
+    gzip sniffit.8 && cp sniffit.8 /usr/share/man/man8
+}
diff --git a/demian/spim/Makefile.patch b/demian/spim/Makefile.patch
new file mode 100755 (executable)
index 0000000..ddffc12
--- /dev/null
@@ -0,0 +1,8 @@
+--- capone/Makefile.old        2002-01-12 18:18:30.000000000 -0600
++++ gilligan/Makefile  2002-11-21 00:40:06.000000000 -0600
+@@ -660 +660 @@
+-TRAP_DIR = .
++TRAP_DIR = /usr/etc
+@@ -697 +697 @@
+-TRAP_PATH = \"$(TRAP_DIR)/trap.handler\"
++TRAP_PATH = \"/usr/etc/spim-trap.handler\"
diff --git a/demian/spim/spim b/demian/spim/spim
new file mode 100755 (executable)
index 0000000..0fb7032
--- /dev/null
@@ -0,0 +1,24 @@
+# HDW Linux spim
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A MIPS R2000/R3000 assembler simulator very powerful to learn MIPS code.
+# [V] 6.4
+# [S] 3 4
+# [D] spim.tar.gz http://www.cs.wisc.edu/~larus/SPIM/
+
+
+build_main() {
+    make spim
+    make xspim
+    make install BIN_DIR=/usr/bin spim
+}
+
+post_install(){
+    [ ! -d /usr/share/doc/spim ] && mkdir -v /usr/share/doc/spim
+    cp -v spim.html /usr/share/doc/spim
+    cp -v trap.handler /usr/etc/spim-trap.handler
+    echo installing man pages
+    cp -v *.man /usr/share/man/man1/
+    
+    echo done
+}
diff --git a/demian/splitvt/config.c.patch b/demian/splitvt/config.c.patch
new file mode 100755 (executable)
index 0000000..8039472
--- /dev/null
@@ -0,0 +1,31 @@
+--- dem-old/config.c.old       2002-11-18 23:40:03.000000000 -0600
++++ dem-new/config.c   2002-11-18 23:58:54.000000000 -0600
+@@ -240,2 +240,25 @@
+-      fprintf(makefile, "\ninstall: \n\tmv splitvt /usr/local/bin/splitvt\n");
+-      fprintf(makefile, "\tmv examples/xsplitvt /usr/local/bin/xsplitvt\n");
++      fprintf(makefile, "\ninstall: \n");
++      fprintf(makefile, "\n\techo -e \"\\n\"");
++      
++      fprintf(makefile, "\n\techo HDW: Installing splitvt\n");
++      fprintf(makefile, "\n\techo HDW: \"+ splitvt\"\n");
++      fprintf(makefile, "\tcp splitvt /usr/bin/\n");
++      
++      fprintf(makefile, "\n\techo HDW: \"+ xsplitvt\"\n");
++      fprintf(makefile, "\tcp examples/xsplitvt /usr/bin/\n");
++      
++      fprintf(makefile, "\n\techo HDW: Installing utils\n");
++      
++      fprintf(makefile, "\n\techo HDW: \"+ getxtitle\"\n");   
++      fprintf(makefile, "\tcp utils/getxtitle /usr/bin/\n");
++
++      fprintf(makefile, "\n\techo HDW: \"+ title\"\n");       
++      fprintf(makefile, "\tcp utils/title /usr/bin/\n");
++
++      fprintf(makefile, "\n\techo HDW: \"+ treset\"\n");
++      fprintf(makefile, "\tcp utils/treset /usr/bin/\n");
++
++      fprintf(makefile, "\n\techo HDW: \"+ unman\"\n");
++      fprintf(makefile, "\tcp utils/unman /usr/bin/\n");
++
++      fprintf(makefile, "\n\techo HDW: \"+ which\"\n");
++      fprintf(makefile, "\tcp utils/which /usr/bin/\n");
diff --git a/demian/splitvt/splitvt b/demian/splitvt/splitvt
new file mode 100755 (executable)
index 0000000..d8c4c03
--- /dev/null
@@ -0,0 +1,18 @@
+# HDW Linux splitvt
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Cool aplication which divides ur screen in two parts, and added some extra utils.
+# [V] 1.6.5
+# [S] 3 7
+# [D] splitvt-1.6.5.tar.gz http://www.devolution.com/~slouken/projects/splitvt/
+
+build_main()
+{
+    ./configure -d ;
+    make
+    ( cd utils ; make getxtitle title treset unman which ) ;
+    make -s install ;
+    grep -v "alias which=\"type -p\"" /etc/profile > profile && \
+    mv -v profile /etc/profile ;
+    echo done
+}
diff --git a/demian/splitvt/title.c.patch b/demian/splitvt/title.c.patch
new file mode 100755 (executable)
index 0000000..6337afa
--- /dev/null
@@ -0,0 +1,10 @@
+--- dem-old/utils/title.c.old  2002-11-18 23:26:41.000000000 -0600
++++ dem-new/utils/title.c      2002-11-18 23:29:25.000000000 -0600
+@@ -1 +1 @@
+-/* Set the titlebar on an xterm */
++/* Set the titlebar + "HDW Linux" on an xterm */
+@@ -11 +11,3 @@
+-      printf("\033]0;%s\07", argv[1]); fflush(stdout);
++      char * title = argv[1] ;
++      strcat(title, " HDW Linux :)") ;
++      printf("\033]0;%s\07", title); fflush(stdout);
diff --git a/demian/stat/stat b/demian/stat/stat
new file mode 100755 (executable)
index 0000000..5b95653
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux stat
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A stat wrapper
+# [V] 2.5
+# [S] 3 7
+# [D] stat-2.5.tar.gz none
diff --git a/demian/svgalib/makefile.cfg.patch b/demian/svgalib/makefile.cfg.patch
new file mode 100755 (executable)
index 0000000..4d7c214
--- /dev/null
@@ -0,0 +1,5 @@
+--- ./Makefile.cfg.old 2002-11-05 20:35:44.000000000 -0600
++++ ./Makefile.cfg     2002-11-05 20:35:15.000000000 -0600
+@@ -28 +28 @@
+-prefix = $(TOPDIR)/usr/local
++prefix = $(TOPDIR)/usr/
diff --git a/demian/svgalib/svgalib b/demian/svgalib/svgalib
new file mode 100755 (executable)
index 0000000..8d52ec6
--- /dev/null
@@ -0,0 +1,13 @@
+# HDW Linux svgalib
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] SVGA libraries for advanced console graphics.
+# [V] 1.4.3
+# [S] 3 8
+# [D] svgalib-1.4.3.tar.gz http://www.svgalib.org/
+
+build_main() {
+    make $install_conf install
+}
+
+# Notes: Make sure patch is working fine now :p
diff --git a/demian/tcsh/tcsh b/demian/tcsh/tcsh
new file mode 100755 (executable)
index 0000000..64c0d9a
--- /dev/null
@@ -0,0 +1,21 @@
+# HDW Linux tcsh
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A improved and more featured C Shell.
+# [V] 6.12.00
+# [S] 3 5
+# [D] tcsh-6.12.00.tar.gz ftp://ftp.funet.fi/pub/unix/shells/tcsh/
+
+
+
+post_install()
+{
+    # tcsh could replace csh ;-)
+    
+    if [ -f "$root/bin/tcsh" ]; then
+       ln -sf $root/bin/tcsh $root/bin/csh
+    else 
+       [ -f "$root/usr/bin/tcsh" ] && \
+           ln -sf $root/usr/bin/tcsh $root/bin/csh
+    fi
+}
diff --git a/demian/tcsh/undef_tiocgltc.patch b/demian/tcsh/undef_tiocgltc.patch
new file mode 100755 (executable)
index 0000000..058b441
--- /dev/null
@@ -0,0 +1,16 @@
+
+This patch is needed on Alpha AXP ...
+
+--- ./ed.h.orig        Sat Nov 25 09:42:59 2000
++++ ./ed.h     Sat Nov 25 09:43:03 2000
+@@ -37,6 +37,10 @@
+ #ifndef _h_ed
+ #define _h_ed
++#ifdef TIOCGLTC
++# undef TIOCGLTC
++#endif
++
+ #ifndef EXTERN
+ # define EXTERN extern
+ #endif
diff --git a/demian/time/time b/demian/time/time
new file mode 100755 (executable)
index 0000000..cf871d0
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux time
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Some application to manage time measurements.
+# [V] 1.7
+# [S] 3 9
+# [D] time-1.7.tar.gz ftp://ftp.gnu.org/pub/gnu/time/
+
+# Notes: forget about this package :p
diff --git a/demian/traceroute/traceroute b/demian/traceroute/traceroute
new file mode 100755 (executable)
index 0000000..ced9462
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux traceroute
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Routes tracer.
+# [V] 1.4a12
+# [S] 3 6
+# [D] traceroute-1.4a12.tar.gz ftp://ftp.ee.lbl.gov/
diff --git a/demian/traceroute/traceroute~ b/demian/traceroute/traceroute~
new file mode 100755 (executable)
index 0000000..0e205e9
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux gdbm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] GNU dbm
+# [V] 1.8.0
+# [S] 3 6
+# [D] gdbm-1.8.0.tar.gz ftp://ftp.gnu.org/pub/gnu/gdbm/
diff --git a/demian/vim/vim b/demian/vim/vim
new file mode 100755 (executable)
index 0000000..a3138ad
--- /dev/null
@@ -0,0 +1,27 @@
+# HDW Linux vim
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Vi Improved. Very powerful.
+# [V] 5.6
+# [S] 3 9
+# [D] vim-6.1.tar.bz2 ftp://ftp.vim.org/pub/vim/unix/
+
+srcdir=vim61
+build_main()
+{
+    ./configure $confopt    --with-modified-by="Jonathan J. Vargas (demian@hackdaworld.dyndns.org)" \
+                           --with-compiledby="Jonathan J. Vargas (demian@hackdaworld.dyndns.org)"  \
+                           --enable-gui=gtk --with-gnome --enable-perlinterp --enable-pythoninterp \
+                           --enable-nls --enable-cscope
+                           
+    make make_conf=CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\"
+    make $install_conf install
+}
+
+post_install()
+{
+    mv -v $prefix/share/vim/vim61/* $prefix/share/vim && \
+    rmdir -v $prefix/share/vim/vim61 && \
+    ln -svf $prefix/share/vim/ $prefix/share/vim/vim61 && \
+    ln -svf $prefix/share/vim/vimrc_sample.vim $prefix/share/vimrc
+}
diff --git a/demian/vim/vim-6.1.patch b/demian/vim/vim-6.1.patch
new file mode 100755 (executable)
index 0000000..b7abf90
--- /dev/null
@@ -0,0 +1,16 @@
+diff -Naur vim61.orig/src/auto/configure vim61/src/auto/configure
+--- vim61.orig/src/auto/configure      2002-03-09 13:14:07.000000000 -0500
++++ vim61/src/auto/configure   2002-05-26 20:36:16.000000000 -0400
+@@ -1161,12 +1161,6 @@
+     LDFLAGS="$LDFLAGS -L/usr/local/lib"
+   fi
+ fi
+-if test -d /usr/local/include; then
+-  tt=`echo "$CPPFLAGS" | sed -e 's+-I/usr/local/include ++g' -e 's+-I/usr/local/include$++g'`
+-  if test "$tt" = "$CPPFLAGS"; then
+-    CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+-  fi
+-fi
+ echo $ac_n "checking --with-vim-name argument""... $ac_c" 1>&6
+ echo "configure:1173: checking --with-vim-name argument" >&5
diff --git a/demian/xine/xine b/demian/xine/xine
new file mode 100755 (executable)
index 0000000..fe362fa
--- /dev/null
@@ -0,0 +1,27 @@
+# HDW Linux xine
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A very used video and audio player for X
+# [V] 0.9.13
+# [S] 3 10
+# [D] xine-lib-0.9.13.tar.gz http://unc.dl.sourceforge.net/sourceforge/xine/
+# [D] xine-ui-0.9.13.tar.gz http://telia.dl.sourceforge.net/sourceforge/xine/
+
+
+custmain()
+{
+    echo "building xine libs"
+    tar -xvzf $hdw_home_dir/download/$dir/$package/xine-lib-0.9.13.tar.gz
+    cd xine-lib-0.9.13 ;
+    ./configure $confopt ; make $make_conf; 
+    make $install_conf install ; cd ..
+
+    echo "building xine ui"
+    tar -xvzf $hdw_home_dir/download/$dir/$package/xine-ui-0.9.13.tar.gz
+    cd xine-ui-0.9.13 ;
+     ./configure $confopt ; make $make_conf;
+     make $install_conf install ;
+
+}
+
+custmain=1
diff --git a/demian/xmms.old/xmms.old b/demian/xmms.old/xmms.old
new file mode 100755 (executable)
index 0000000..222219d
--- /dev/null
@@ -0,0 +1,32 @@
+# HDW Linux xmms
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] An audio player which support several mpeg layers, ogg and 
+# [I] wav files for X, based in GTK
+# [V] 1.2.7
+# [S] 3 8
+# [D] xmms-1.2.7.tar.bz2 ftp://ftp.xmms.org/xmms/1.2.x/
+# [D] libmikmod-3.1.10.tar.bz2 http://www.mikmod.org/files/libmikmod/
+
+custmain()
+{   
+    
+    echo Building mikmod...
+    cd ..
+    tar --use-compress-program=$bzip2 -xvf \
+    $hdw_home_dir/download/$dir/$package/libmikmod-3.1.10.tar.bz2
+    
+    cd libmikmod*
+    ./configure --prefix=/usr ; make ; make install 
+    
+    echo Building xmms...
+    cd ..
+    tar --use-compress-program=bzip2 -xvf \
+    $hdw_home_dir/download/$dir/$package/$pkg
+    
+    cd xmms-1.2.7
+    ./configure $confopt ; make ; make install
+    make -p /usr/share/xmms/skins
+}
+
+custmain=1
diff --git a/demian/xscreensaver/glx_qd-fix.patch b/demian/xscreensaver/glx_qd-fix.patch
new file mode 100755 (executable)
index 0000000..c018b2e
--- /dev/null
@@ -0,0 +1,174 @@
+# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
+# 
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+# Please add additional copyright information _after_ the line containing
+# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
+# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
+# 
+# ROCK Linux: rock-src/package/x11/xscreensaver/glx_qd-fix.patch
+# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version. A copy of the GNU General Public
+# License can be found at Documentation/COPYING.
+# 
+# Many people helped and are helping developing ROCK Linux. Please
+# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
+# file for details.
+# 
+# --- ROCK-COPYRIGHT-NOTE-END ---
+
+--- ./hacks/glx/cage.c.orig    Sun Jan  3 20:25:20 1999
++++ ./hacks/glx/cage.c Thu Oct 21 08:44:35 1999
+@@ -94,6 +94,8 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
+ #include <GL/glu.h>
+ #include "e_textures.h"
+--- ./hacks/glx/moebius.c.orig Sun Jan  3 20:26:57 1999
++++ ./hacks/glx/moebius.c      Thu Oct 21 08:59:42 1999
+@@ -94,6 +94,8 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
+ #include <GL/glu.h>
+ #include "e_textures.h"
+--- ./hacks/glx/pipes.c.orig   Thu Oct 21 09:00:14 1999
++++ ./hacks/glx/pipes.c        Thu Oct 21 09:00:25 1999
+@@ -69,6 +69,9 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/glu.h>
+ #include "buildlwo.h"
+--- ./hacks/glx/buildlwo.c.orig        Thu Oct 21 09:00:50 1999
++++ ./hacks/glx/buildlwo.c     Thu Oct 21 09:01:01 1999
+@@ -23,6 +23,9 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
++
+ #ifdef STANDALONE
+ #include <GL/glx.h>
+ #endif
+--- ./hacks/glx/sproingies.c.orig      Thu Oct 21 09:01:27 1999
++++ ./hacks/glx/sproingies.c   Thu Oct 21 09:01:43 1999
+@@ -33,6 +33,9 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/gl.h>
+ #include <GL/glu.h>
+ #include "buildlwo.h"
+--- ./hacks/glx/sproingiewrap.c.orig   Thu Oct 21 09:01:57 1999
++++ ./hacks/glx/sproingiewrap.c        Thu Oct 21 09:02:17 1999
+@@ -84,6 +84,9 @@
+ #define MINSIZE 32
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/glu.h>
+ #include <time.h>
+--- ./hacks/glx/stairs.c.orig  Thu Oct 21 09:02:42 1999
++++ ./hacks/glx/stairs.c       Thu Oct 21 09:02:55 1999
+@@ -76,6 +76,9 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/glu.h>
+ #include "e_textures.h"
+--- ./hacks/glx/superquadrics.c.orig   Thu Oct 21 09:03:11 1999
++++ ./hacks/glx/superquadrics.c        Thu Oct 21 09:03:26 1999
+@@ -130,6 +130,9 @@
+ #endif
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/glu.h>
+ #define MaxRes          50
+--- ./hacks/glx/atlantis.c.orig        Thu Oct 21 09:03:56 1999
++++ ./hacks/glx/atlantis.c     Thu Oct 21 09:04:11 1999
+@@ -116,6 +116,9 @@
+ #ifdef USE_GL
++#define APIENTRY
++#define CALLBACK
++
+ #include "atlantis.h"
+ #include <GL/glu.h>
+--- ./hacks/glx/bubble3d.h.orig        Thu Oct 21 09:05:49 1999
++++ ./hacks/glx/bubble3d.h     Thu Oct 21 09:06:02 1999
+@@ -12,6 +12,9 @@
+ # include "xlock.h"           /* from the xlockmore distribution */
+ #endif /* !STANDALONE */
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/gl.h>
+ #include <GL/glu.h>
+--- ./hacks/glx/glplanet.c.orig        Thu Oct 21 09:06:32 1999
++++ ./hacks/glx/glplanet.c     Thu Oct 21 09:06:48 1999
+@@ -93,6 +93,8 @@
+ # endif /* VMS */
+ #endif
++#define APIENTRY
++#define CALLBACK
+ #include <GL/glu.h>
+--- ./hacks/glx/pulsar.c.orig  Thu Oct 21 09:07:10 1999
++++ ./hacks/glx/pulsar.c       Thu Oct 21 09:07:26 1999
+@@ -87,6 +87,8 @@
+ # endif /* VMS */
+ #endif
++#define APIENTRY
++#define CALLBACK
+ #include <GL/gl.h>
+ #include <GL/glu.h>
+--- ./hacks/glx/sierpinski3d.c.orig    Sat Nov 13 22:24:17 1999
++++ ./hacks/glx/sierpinski3d.c Fri Nov 26 07:38:10 1999
+@@ -81,6 +81,9 @@
+ static gasketstruct *gasket = NULL;
++#define APIENTRY
++#define CALLBACK
++
+ #include <GL/glu.h>
+ /* static GLuint limit; */
diff --git a/demian/xscreensaver/xscreensaver b/demian/xscreensaver/xscreensaver
new file mode 100755 (executable)
index 0000000..d091b75
--- /dev/null
@@ -0,0 +1,7 @@
+# HDW Linux Eterm
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Extra xscreesavers for x11
+# [V] 4.05
+# [S] 3 5
+# [D] xscreensaver-4.05.tar.bz2 http://www.jwz.org/xscreensaver/
diff --git a/demian/xv/00-xv.patch b/demian/xv/00-xv.patch
new file mode 100755 (executable)
index 0000000..6b2876e
--- /dev/null
@@ -0,0 +1,2472 @@
+diff -uNr Makefile Makefile
+--- Makefile   Mon Jan 23 21:20:54 1995
++++ Makefile   Tue Feb 20 17:48:33 2001
+@@ -28,10 +28,10 @@
+ ### Installation locations
+-BINDIR = /usr/local/bin
+-MANDIR = /usr/local/man/man1
++BINDIR = /usr/bin
++MANDIR = /usr/man/man1
+ MANSUF = 1
+-LIBDIR = /usr/local/lib
++LIBDIR = /usr/lib
+ buildit: all
+@@ -45,26 +45,31 @@
+ ### if, for whatever reason, you're unable to get the JPEG library to compile
+ ### on your machine, *COMMENT OUT* the following lines
+ ###
+-JPEG    = -DDOJPEG
+-JPEGDIR = jpeg
+-JPEGINC = -I$(JPEGDIR)
+-JPEGLIB = $(JPEGDIR)/libjpeg.a
+-$(JPEGDIR)/jconfig.h:
+-      cd $(JPEGDIR) ; ./configure CC='$(CC)'
+-$(JPEGLIB):  $(JPEGDIR)/jconfig.h
+-      cd $(JPEGDIR) ; make
++JPEG    = -DDOJPEG
++JPEGLIB = -ljpeg
++
++
++###
++### if, for whatever reason, you're unable to get the PNG library to compile
++### on your machine, *COMMENT OUT* the following lines
++###
++PNG    = -DDOPNG
++PNGLIB = -lpng
++
++
++###
++### if, for whatever reason, you're unable to get the PNG library to compile
++### on your machine, *COMMENT OUT* the following lines
++###
++ZLIBLIB = -lz
+ ###
+ ### if, for whatever reason, you're unable to get the TIFF library to compile
+ ### on your machine, *COMMENT OUT* the following lines
+ ###
+-TIFF    = -DDOTIFF
+-TIFFDIR = tiff
+-TIFFINC = -I$(TIFFDIR)
+-TIFFLIB = $(TIFFDIR)/libtiff.a
+-$(TIFFLIB):
+-      ( cd $(TIFFDIR) ; make CC='$(CC)' )
++TIFF    = -DDOTIFF
++TIFFLIB = -ltiff
+ ###
+@@ -184,11 +189,11 @@
+-CFLAGS = $(CCOPTS) $(JPEG) $(JPEGINC) $(TIFF) $(TIFFINC) $(PDS) \
++CFLAGS = $(CCOPTS) $(JPEG) $(TIFF) $(PDS) \
+       $(NODIRENT) $(VPRINTF) $(TIMERS) $(UNIX) $(BSDTYPES) $(RAND) \
+-      $(DXWM) $(MCHN)
++      $(DXWM) $(MCHN) $(PNG)
+-LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) -lm
++LIBS = -lX11 -L/usr/X11/lib $(JPEGLIB) $(TIFFLIB) $(PNGLIB) $(ZLIBLIB) -lm
+ OBJS =        xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \
+       xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \
+@@ -196,7 +201,7 @@
+       xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \
+       xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \
+       xvbrowse.o xvtext.o xvpcx.o xviff.o xvtarga.o xvxpm.o xvcut.o \
+-      xvxwd.o xvfits.o
++      xvxwd.o xvfits.o xvpng.o
+ MISC = README INSTALL CHANGELOG IDEAS
+@@ -206,10 +211,10 @@
+-all: $(JPEGLIB) $(TIFFLIB) xv bggen vdcomp xcmap xvpictoppm
++all: xv bggen vdcomp xcmap xvpictoppm
+-xv: $(OBJS) $(JPEGLIB) $(TIFFLIB)
++xv: $(OBJS)
+       $(CC) -o xv $(CFLAGS) $(OBJS) $(LIBS)
+ bggen: bggen.c
+@@ -267,7 +272,7 @@
+ xvbrowse.o:   bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds 
+ xvbrowse.o:   bits/br_ps bits/br_iff bits/br_targa bits/br_xpm
+ xvbrowse.o:   bits/br_trash bits/fcurs bits/fccurs bits/fdcurs bits/fcursm
+-xvbrowse.o:     bits/br_xwd
++xvbrowse.o:     bits/br_xwd bits/br_png
+ xvbutt.o:     bits/cboard50 bits/rb_frame bits/rb_frame1 bits/rb_top
+ xvbutt.o:     bits/rb_bot bits/rb_dtop bits/rb_dbot bits/rb_body
+diff -uNr Makefile.std Makefile.std
+--- Makefile.std       Tue Jan 24 02:06:26 1995
++++ Makefile.std       Tue Feb 20 17:04:44 2001
+@@ -56,6 +56,25 @@
+ ###
++### if, for whatever reason, you're unable to get the PNG library to compile
++### on your machine, *COMMENT OUT* the following lines
++###
++PNG    = -DDOPNG
++PNGDIR = /usr/local/src/libpng
++PNGINC = -I$(PNGDIR)
++PNGLIB = -L$(PNGDIR) -lpng
++
++
++###
++### if, for whatever reason, you're unable to get the PNG library to compile
++### on your machine, *COMMENT OUT* the following lines
++###
++ZLIBDIR = /usr/local/src/zlib
++ZLIBINC = -I$(ZLIBDIR)
++ZLIBLIB = -L$(ZLIBDIR) -lz
++
++
++###
+ ### if, for whatever reason, you're unable to get the TIFF library to compile
+ ### on your machine, *COMMENT OUT* the following lines
+ ###
+@@ -186,9 +205,9 @@
+ CFLAGS = $(CCOPTS) $(JPEG) $(JPEGINC) $(TIFF) $(TIFFINC) $(PDS) \
+       $(NODIRENT) $(VPRINTF) $(TIMERS) $(UNIX) $(BSDTYPES) $(RAND) \
+-      $(DXWM) $(MCHN)
++      $(DXWM) $(MCHN) $(PNG) $(PNGINC) $(ZLIBINC)
+-LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) -lm
++LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) $(PNGLIB) $(ZLIBLIB) -lm
+ OBJS =        xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \
+       xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \
+@@ -196,7 +215,7 @@
+       xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \
+       xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \
+       xvbrowse.o xvtext.o xvpcx.o xviff.o xvtarga.o xvxpm.o xvcut.o \
+-      xvxwd.o xvfits.o
++      xvxwd.o xvfits.o xvpng.o
+ MISC = README INSTALL CHANGELOG IDEAS
+@@ -267,7 +286,7 @@
+ xvbrowse.o:   bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds 
+ xvbrowse.o:   bits/br_ps bits/br_iff bits/br_targa bits/br_xpm
+ xvbrowse.o:   bits/br_trash bits/fcurs bits/fccurs bits/fdcurs bits/fcursm
+-xvbrowse.o:     bits/br_xwd
++xvbrowse.o:     bits/br_xwd bits/br_png
+ xvbutt.o:     bits/cboard50 bits/rb_frame bits/rb_frame1 bits/rb_top
+ xvbutt.o:     bits/rb_bot bits/rb_dtop bits/rb_dbot bits/rb_body
+diff -uNr bits/br_png bits/br_png
+--- bits/br_png        Thu Jan  1 01:00:00 1970
++++ bits/br_png        Thu Jun 13 23:32:08 1996
+@@ -0,0 +1,28 @@
++#define br_png_width 48
++#define br_png_height 48
++static unsigned char br_png_bits[] = {
++  0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00,
++  0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00,
++  0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00,
++  0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00,
++  0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0xf8, 0x19, 0xc3, 0x07, 0x02, 0x20, 0x18, 0x3b, 0x63, 0x0c, 0x02,
++  0x20, 0x18, 0x3b, 0x33, 0x00, 0x02, 0x20, 0x18, 0x5b, 0x33, 0x00, 0x02,
++  0x20, 0xf8, 0x59, 0x33, 0x0f, 0x02, 0x20, 0x18, 0x98, 0x33, 0x0c, 0x02,
++  0x20, 0x18, 0x98, 0x33, 0x0c, 0x02, 0x20, 0x18, 0x18, 0x63, 0x0c, 0x02,
++  0x20, 0x18, 0x18, 0xc3, 0x0b, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02,
++  0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03,
++  };
+diff -uNr config.h config.h
+--- config.h   Thu Jan  5 19:49:21 1995
++++ config.h   Tue Feb 20 17:07:25 2001
+@@ -13,13 +13,13 @@
+  * definition appropriately. (use 'which gunzip' to find if you have gunzip, 
+  * and where it lives)
+  */
+-#undef USE_GUNZIP
++#define USE_GUNZIP
+ #ifdef USE_GUNZIP
+ #  ifdef VMS
+ #    define GUNZIP "UNCOMPRESS"
+ #  else
+-#    define GUNZIP "/usr/local/bin/gunzip -q"
++#    define GUNZIP "/bin/gunzip -q"
+ #  endif
+ #endif
+@@ -88,9 +88,9 @@
+  * should not need to be changed
+  */
+-/* #define GS_PATH "/usr/local/bin/gs" */
+-/* #define GS_LIB  "."                 */
+-/* #define GS_DEV  "ppmraw"            */
++#define GS_PATH "/usr/bin/gs"
++#define GS_LIB  "."
++#define GS_DEV  "ppmraw"
+ /***************************************************************************
+diff -uNr xcmap.c xcmap.c
+--- xcmap.c    Tue Jan  3 22:14:52 1995
++++ xcmap.c    Tue Feb 20 17:04:13 2001
+@@ -140,8 +140,13 @@
+     nxcells = nycells = 8;
+   else if (dispcells>4)
+     nxcells = nycells = 4;
+-  else
++  else if (dispcells>2)
+     nxcells = nycells = 2;
++  else
++  {
++    nxcells = 2;
++    nycells = 1;
++  }
+   
+   /**************** Create/Open X Resources ***************/
+   if ((mfinfo = XLoadQueryFont(theDisp,FONT))==NULL) {
+@@ -267,18 +272,25 @@
+   
+   x=y=w=h=1;
+   i=XParseGeometry(geom,&x,&y,&w,&h);
+-  if (i&WidthValue)  WIDE = (int) w;
+-  if (i&HeightValue) HIGH = (int) h;
+-  
+-  if (i&XValue || i&YValue) hints.flags = USPosition;  
+-  else hints.flags = PPosition;
+-  
+-  hints.flags |= USSize;
+-  
+-  if (i&XValue && i&XNegative) 
+-    x = XDisplayWidth(theDisp,theScreen)-WIDE-abs(x);
+-  if (i&YValue && i&YNegative) 
+-    y = XDisplayHeight(theDisp,theScreen)-HIGH-abs(y);
++  if (i&WidthValue)
++  {
++    WIDE = (int) w;
++    hints.flags |= USSize;
++  }
++  if (i&HeightValue)
++  {
++    HIGH = (int) h;
++    hints.flags |= USSize;
++  }
++  
++  if (i&XValue || i&YValue)
++  {
++    if (i&XNegative) 
++      x = XDisplayWidth(theDisp,theScreen)-WIDE-abs(x);
++    if (i&YNegative) 
++      y = XDisplayHeight(theDisp,theScreen)-HIGH-abs(y);
++    hints.flags |= USPosition;  
++  }
+   
+   hints.x=x;             hints.y=y;
+   hints.width  = WIDE;   hints.height = HIGH;
+diff -uNr xv.c xv.c
+--- xv.c       Thu Jan 19 19:08:43 1995
++++ xv.c       Tue Feb 20 17:04:44 2001
+@@ -277,6 +277,10 @@
+   tiffW = (Window) NULL;  tiffUp = 0;
+ #endif
++#ifdef HAVE_PNG
++  pngW = (Window) NULL;  pngUp = 0;
++#endif
++
+   imap = ctrlmap = gmap = browmap = cmtmap = 0;
+   ch_offx = ch_offy = p_offx = p_offy = 0;
+@@ -782,6 +786,10 @@
+   XSetTransientForHint(theDisp, tiffW, dirW);
+ #endif
+   
++#ifdef HAVE_PNG
++  CreatePNGW();
++  XSetTransientForHint(theDisp, pngW, dirW);
++#endif
+   
+   LoadFishCursors();
+   SetCursors(-1);
+@@ -2611,6 +2619,11 @@
+          (magicno[0]=='I' && magicno[1]=='I'))        rv = RFT_TIFF;
+ #endif
++#ifdef HAVE_PNG
++  else if (magicno[0]==0x89 && magicno[1]=='P' &&
++           magicno[2]=='N'  && magicno[3]=='G')                  rv = RFT_PNG;
++#endif
++
+ #ifdef HAVE_PDS
+   else if (strncmp((char *) magicno,  "NJPL1I00", (size_t) 8)==0 ||
+          strncmp((char *) magicno+2,"NJPL1I",   (size_t) 6)==0 ||
+@@ -2669,6 +2682,10 @@
+ #ifdef HAVE_TIFF
+   case RFT_TIFF:    rv = LoadTIFF  (fname, pinfo);           break;
++#endif
++
++#ifdef HAVE_PNG
++  case RFT_PNG:     rv = LoadPNG   (fname, pinfo);         break;
+ #endif
+ #ifdef HAVE_PDS
+diff -uNr xv.h xv.h
+--- ./xv.h     Mon Jan 23 21:22:23 1995
++++ ./xv.h     Tue Feb 20 17:10:11 2001
+@@ -8,8 +8,8 @@
+ #include "config.h"
+-#define REVDATE   "Version 3.10a  Rev: 12/29/94"
+-#define VERSTR    "3.10a"
++#define REVDATE   "Version 3.10a  Rev: 12/29/94 (PNG patch 1.2)"
++#define VERSTR    "3.10a(PNG)"
+ /*
+  * uncomment the following, and modify for your site, but only if you've
+@@ -116,7 +116,7 @@
+ #  include <errno.h>
+    extern int   errno;             /* SHOULD be in errno.h, but often isn't */
+ #  ifndef __NetBSD__
+-     extern char *sys_errlist[];     /* this too... */
++//     extern char *sys_errlist[];     /* this too... */
+ #  endif
+ #endif
+@@ -327,6 +327,10 @@
+ #define HAVE_TIFF
+ #endif
++#ifdef DOPNG
++#define HAVE_PNG
++#endif
++
+ #ifdef DOPDS
+ #define HAVE_PDS
+ #endif
+@@ -458,24 +462,31 @@
+ #define F_TIFINC  0
+ #endif
++#ifdef HAVE_PNG
++#define F_PNGINC  1
++#else
++#define F_PNGINC  0
++#endif
++
+ #define F_GIF         0
+ #define F_JPEG      ( 0 + F_JPGINC)
+ #define F_TIFF      ( 0 + F_JPGINC + F_TIFINC)
+-#define F_PS        ( 1 + F_JPGINC + F_TIFINC)
+-#define F_PBMRAW    ( 2 + F_JPGINC + F_TIFINC)
+-#define F_PBMASCII  ( 3 + F_JPGINC + F_TIFINC)
+-#define F_XBM       ( 4 + F_JPGINC + F_TIFINC)
+-#define F_XPM       ( 5 + F_JPGINC + F_TIFINC)
+-#define F_BMP       ( 6 + F_JPGINC + F_TIFINC)
+-#define F_SUNRAS    ( 7 + F_JPGINC + F_TIFINC)
+-#define F_IRIS      ( 8 + F_JPGINC + F_TIFINC)
+-#define F_TARGA     ( 9 + F_JPGINC + F_TIFINC)
+-#define F_FITS      (10 + F_JPGINC + F_TIFINC)
+-#define F_PM        (11 + F_JPGINC + F_TIFINC)
+-#define F_DELIM1    (12 + F_JPGINC + F_TIFINC)     /* ----- */
+-#define F_FILELIST  (13 + F_JPGINC + F_TIFINC)
+-#define F_MAXFMTS   (14 + F_JPGINC + F_TIFINC)     /* 15, normally */
++#define F_PNG       ( 0 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_PS        ( 1 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_PBMRAW    ( 2 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_PBMASCII  ( 3 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_XBM       ( 4 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_XPM       ( 5 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_BMP       ( 6 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_SUNRAS    ( 7 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_IRIS      ( 8 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_TARGA     ( 9 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_FITS      (10 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_PM        (11 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_DELIM1    (12 + F_JPGINC + F_TIFINC + F_PNGINC)   /* ----- */
++#define F_FILELIST  (13 + F_JPGINC + F_TIFINC + F_PNGINC)
++#define F_MAXFMTS   (14 + F_JPGINC + F_TIFINC + F_PNGINC)   /* 17, normally */
+@@ -505,6 +516,7 @@
+ #define RFT_XPM      17
+ #define RFT_XWD      18
+ #define RFT_FITS     19
++#define RFT_PNG      20
+ /* definitions for page up/down, arrow up/down list control */
+ #define LS_PAGEUP   0
+@@ -765,9 +777,10 @@
+ typedef struct { Window win;            /* window ID */
+                int x,y,w,h;           /* window coords in parent */
+                int active;            /* true if can do anything*/
+-               int min,max;           /* min/max values 'pos' can take */
+-               int val;               /* 'value' of dial */
+-               int page;              /* amt val change on pageup/pagedown */
++               double min,max;        /* min/max values 'pos' can take */
++               double val;            /* 'value' of dial */
++               double inc;            /* amt val change on up/down */
++               double page;           /* amt val change on pageup/pagedown */
+                char *title;           /* title for this guage */
+                char *units;           /* string appended to value */
+                u_long fg,bg,hi,lo;    /* colors */
+@@ -1154,6 +1167,13 @@
+ #endif
++#ifdef HAVE_PNG
++/* stuff used for 'png' box */
++WHERE Window        pngW;
++WHERE int           pngUp;        /* is pngW mapped, or what? */
++#endif
++
++
+ #undef WHERE
+@@ -1465,12 +1485,12 @@
+ /*************************** XVDIAL.C ***************************/
+-void DCreate               PARM((DIAL *, Window, int, int, int, int, int, 
+-                               int, int, int, u_long, u_long, u_long, 
+-                               u_long, char *, char *));
++void DCreate               PARM((DIAL *, Window, int, int, int, int, double,
++                                 double, double, double, double, u_long,
++                                 u_long, u_long, u_long, char *, char *));
+-void DSetRange             PARM((DIAL *, int, int, int, int));
+-void DSetVal               PARM((DIAL *, int));
++void DSetRange             PARM((DIAL *, double,double,double,double,double));
++void DSetVal               PARM((DIAL *, double));
+ void DSetActive            PARM((DIAL *, int));
+ void DRedraw               PARM((DIAL *));
+ int  DTrack                PARM((DIAL *, int, int));
+@@ -1612,6 +1632,13 @@
+ void  TIFFDialog           PARM((int));
+ int   TIFFCheckEvent       PARM((XEvent *));
+ void  TIFFSaveParams       PARM((char *, int));
++
++/**************************** XVPNG.C ***************************/
++int  LoadPNG               PARM((char *, PICINFO *));
++void CreatePNGW            PARM((void));
++void PNGDialog             PARM((int));
++int  PNGCheckEvent         PARM((XEvent *));
++void PNGSaveParams         PARM((char *, int));
+ /**************************** XVPDS.C ***************************/
+ int LoadPDS                PARM((char *, PICINFO *));
+diff -uNr xvbrowse.c xvbrowse.c
+--- ./xvbrowse.c       Thu Jan 19 18:49:17 1995
++++ ./xvbrowse.c       Tue Feb 20 17:04:44 2001
+@@ -55,6 +55,7 @@
+ #include "bits/br_xpm"
+ #include "bits/br_xwd"
+ #include "bits/br_fits"
++#include "bits/br_png"
+ #include "bits/br_trash"
+ #include "bits/fcurs"
+@@ -94,7 +95,8 @@
+ #define BF_XPM      25
+ #define BF_XWD      26
+ #define BF_FITS     27
+-#define BF_MAX      28    /* # of built-in icons */
++#define BF_PNG      28
++#define BF_MAX      29    /* # of built-in icons */
+ #define ISLOADABLE(ftyp) (ftyp!=BF_DIR  && ftyp!=BF_CHR && ftyp!=BF_BLK && \
+                         ftyp!=BF_SOCK && ftyp!=BF_FIFO) 
+@@ -524,6 +526,7 @@
+   bfIcons[BF_XPM] =MakePix1(br->win,br_xpm_bits, br_xpm_width, br_xpm_height);
+   bfIcons[BF_XWD] =MakePix1(br->win,br_xwd_bits, br_xwd_width, br_xwd_height);
+   bfIcons[BF_FITS]=MakePix1(br->win,br_fits_bits,br_fits_width,br_fits_height);
++  bfIcons[BF_PNG]=MakePix1(br->win,br_png_bits,br_png_width,br_png_height);
+   /* check that they all got built */
+@@ -3020,6 +3023,7 @@
+     case RFT_XPM:      bf->ftype = BF_XPM;      break;
+     case RFT_XWD:      bf->ftype = BF_XWD;      break;
+     case RFT_FITS:     bf->ftype = BF_FITS;     break;
++    case RFT_PNG:      bf->ftype = BF_PNG;      break;
+     }
+   }
+ }
+@@ -3567,6 +3571,7 @@
+   case RFT_XPM:      strcat(str,"XPM file");              break;
+   case RFT_XWD:      strcat(str,"XWD file");              break;
+   case RFT_FITS:     strcat(str,"FITS file");             break;
++  case RFT_PNG:      strcat(str,"PNG file");              break;
+   default:           strcat(str,"file of unknown type");  break;
+   }
+   
+diff -uNr xvdial.c xvdial.c
+--- ./xvdial.c Tue Jan  3 22:20:31 1995
++++ ./xvdial.c Tue Feb 20 17:04:44 2001
+@@ -41,20 +41,21 @@
+ /* local functions */
+-static int  whereInDial     PARM((DIAL *, int, int));
+-static void drawArrow       PARM((DIAL *));
+-static void drawValStr      PARM((DIAL *));
+-static void drawButt        PARM((DIAL *, int, int));
+-static int  computeDialVal  PARM((DIAL *, int, int));
+-static void dimDial         PARM((DIAL *));
++static int    whereInDial     PARM((DIAL *, int, int));
++static void   drawArrow       PARM((DIAL *));
++static void   drawValStr      PARM((DIAL *));
++static void   drawButt        PARM((DIAL *, int, int));
++static double computeDialVal  PARM((DIAL *, int, int));
++static void   dimDial         PARM((DIAL *));
+ /***************************************************/
+-void DCreate(dp, parent, x, y, w, h, minv, maxv, curv, page, 
++void DCreate(dp, parent, x, y, w, h, minv, maxv, curv, inc, page, 
+                 fg, bg, hi, lo, title, units)
+ DIAL         *dp;
+ Window        parent;
+-int           x,y,w,h,minv,maxv,curv,page;
++int           x,y,w,h;
++double        minv,maxv,curv,inc,page;
+ unsigned long fg,bg,hi,lo;
+ char         *title, *units;
+ {
+@@ -98,18 +99,18 @@
+                               1,fg,bg);
+   if (!dp->win) FatalError("can't create dial window");
+-  DSetRange(dp, minv, maxv, curv, page);
++  DSetRange(dp, minv, maxv, curv, inc, page);
+   XSelectInput(theDisp, dp->win, ExposureMask | ButtonPressMask);
+ }
+ /***************************************************/
+-void DSetRange(dp, minv, maxv, curv, page)
+-DIAL *dp;
+-int   minv, maxv, curv, page;
++void DSetRange(dp, minv, maxv, curv, inc, page)
++DIAL   *dp;
++double  minv, maxv, curv, inc, page;
+ {
+   if (maxv<minv) maxv=minv;
+-  dp->min = minv;    dp->max = maxv;    dp->page = page;
++  dp->min = minv; dp->max = maxv; dp->inc = inc; dp->page = page;
+   dp->active =  (minv < maxv);
+   DSetVal(dp, curv);
+@@ -118,8 +119,8 @@
+ /***************************************************/
+ void DSetVal(dp, curv)
+-DIAL *dp;
+-int   curv;
++DIAL  *dp;
++double curv;
+ {
+   RANGE(curv, dp->min, dp->max);   /* make sure curv is in-range */
+@@ -129,7 +130,7 @@
+   XSetForeground(theDisp, theGC, dp->bg); 
+   drawArrow(dp);
+-  dp->val = curv;
++  dp->val = (double)((int)(curv / dp->inc + (curv > 0 ? 0.5 : -0.5))) * dp->inc;
+   /* draw new arrow and string */
+   XSetForeground(theDisp, theGC, dp->fg);
+@@ -202,7 +203,8 @@
+ int mx,my;
+ {
+   Window       rW,cW;
+-  int          rx,ry, x,y, ipos, pos, lit, i, origval;
++  int          rx, ry, x, y, ipos, pos, lit;
++  double       origval;
+   unsigned int mask;
+   lit = 0;
+@@ -224,9 +226,9 @@
+   if (ipos != INDIAL) {
+     drawButt(dp, ipos, 1);
+     switch (ipos) {
+-    case INCW1:  if (dp->val < dp->max) DSetVal(dp, dp->val+1); break;
++    case INCW1:  if (dp->val < dp->max) DSetVal(dp, dp->val+dp->inc);  break;
+     case INCW2:  if (dp->val < dp->max) DSetVal(dp, dp->val+dp->page); break;
+-    case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-1); break;
++    case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->inc);  break;
+     case INCCW2: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->page); break;
+     }
+     if (dp->drawobj != NULL) (dp->drawobj)();  
+@@ -235,8 +237,9 @@
+   }
+   else { 
+-    i = computeDialVal(dp, mx, my);
+-    DSetVal(dp, i);
++    double v;
++    v = computeDialVal(dp, mx, my);
++    DSetVal(dp, v);
+     if (dp->drawobj != NULL) (dp->drawobj)();  
+   }
+@@ -246,11 +249,11 @@
+     if (!(mask & Button1Mask)) break;    /* button released */
+     if (ipos == INDIAL) {
+-      int j;
+-      i = computeDialVal(dp, x, y);
+-      j = dp->val;
+-      DSetVal(dp, i);
+-      if (j != dp->val) {
++      double v, w;
++      v = computeDialVal(dp, x, y);
++      w = dp->val;
++      DSetVal(dp, v);
++      if (w != dp->val) {
+       /* track whatever dial controls */
+       if (dp->drawobj != NULL) (dp->drawobj)();  
+       }
+@@ -266,11 +269,11 @@
+       if (lit) {
+       switch (ipos) {
+-      case INCW1:  if (dp->val < dp->max) DSetVal(dp, dp->val+1); 
++      case INCW1:  if (dp->val < dp->max) DSetVal(dp, dp->val+dp->inc); 
+                    break;
+       case INCW2:  if (dp->val < dp->max) DSetVal(dp, dp->val+dp->page);
+                      break;
+-      case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-1);
++      case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->inc);
+                      break;
+       case INCCW2: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->page);
+                      break;
+@@ -320,19 +323,20 @@
+ static void drawArrow(dp)
+ DIAL *dp;
+ {
+-  int i, rad, cx, cy;
++  int rad, cx, cy;
++  double v;
+   XPoint arrow[4];
+   rad = dp->rad;  cx = dp->cx;  cy = dp->cy;
+   /* map pos (range minv..maxv) into degrees (range 240..-60) */
+-  i = 240 + (-300 * (dp->val - dp->min)) / (dp->max - dp->min);
+-  arrow[0].x = cx + (int) ((double) rad * .80 * cos(i * DEG2RAD));
+-  arrow[0].y = cy - (int) ((double) rad * .80 * sin(i * DEG2RAD));
+-  arrow[1].x = cx + (int) ((double) rad * .33 * cos((i+160) * DEG2RAD));
+-  arrow[1].y = cy - (int) ((double) rad * .33 * sin((i+160) * DEG2RAD));
+-  arrow[2].x = cx + (int) ((double) rad * .33 * cos((i-160) * DEG2RAD));
+-  arrow[2].y = cy - (int) ((double) rad * .33 * sin((i-160) * DEG2RAD));
++  v = 240 + (-300 * (dp->val - dp->min)) / (dp->max - dp->min);
++  arrow[0].x = cx + (int) ((double) rad * .80 * cos(v * DEG2RAD));
++  arrow[0].y = cy - (int) ((double) rad * .80 * sin(v * DEG2RAD));
++  arrow[1].x = cx + (int) ((double) rad * .33 * cos((v+160) * DEG2RAD));
++  arrow[1].y = cy - (int) ((double) rad * .33 * sin((v+160) * DEG2RAD));
++  arrow[2].x = cx + (int) ((double) rad * .33 * cos((v-160) * DEG2RAD));
++  arrow[2].y = cy - (int) ((double) rad * .33 * sin((v-160) * DEG2RAD));
+   arrow[3].x = arrow[0].x;
+   arrow[3].y = arrow[0].y;
+   XDrawLines(theDisp, dp->win, theGC, arrow, 4, CoordModeOrigin);
+@@ -343,23 +347,37 @@
+ static void drawValStr(dp)
+ DIAL *dp;
+ {
+-  int  i, x1, x2;
++  int  tot, i, x1, x2;
+   char foo[60], foo1[60];
+   /* compute longest string necessary so we can right-align this thing */
+-  sprintf(foo,"%d",dp->min);    x1 = strlen(foo);
+-  sprintf(foo,"%d",dp->max);    x2 = strlen(foo);
++  sprintf(foo,"%d",(int)dp->min);    x1 = strlen(foo);
++  sprintf(foo,"%d",(int)dp->max);    x2 = strlen(foo);
+   if (dp->min < 0 && dp->max > 0) x2++;   /* put '+' at beginning */
+   i = x1;  if (x2>x1) i = x2;
+   if (dp->units) i += strlen(dp->units);
+-  if (dp->min < 0 && dp->max > 0) sprintf(foo,"%+d", dp->val);
+-  else sprintf(foo,"%d", dp->val);
++  sprintf(foo,"%g",dp->inc);   /* space for decimal values */
++  tot = i + strlen(foo) - 1;   /* Take away the 0 from the beginning */
++
++  if (dp->min < 0.0 && dp->max > 0.0) sprintf(foo,"%+g", dp->val);
++  else sprintf(foo,"%g", dp->val);
++
++  if (dp->inc < 1.0)
++  {
++    int j;
++
++    if (dp->val == (double)((int)dp->val))
++      strcat(foo,".");
++
++    for (j = strlen(foo); j < tot; j++)
++      strcat(foo,"0");
++  }
+   if (dp->units) strcat(foo,dp->units);
+   foo1[0] = '\0';
+   if (strlen(foo) < (size_t) i) {
+-    for (i = i - strlen(foo); i>0; i--) strcat(foo1," ");
++    for (i-=strlen(foo);i>0;i--) strcat(foo1," ");
+   }
+   strcat(foo1, foo);
+@@ -411,12 +429,13 @@
+ /***************************************************/
+-static int computeDialVal(dp, x, y)
++static double computeDialVal(dp, x, y)
+ DIAL *dp;
+ int x, y;
+ {
+-  int dx, dy, val;
+-  double angle;
++  int dx, dy;
++ 
++  double angle, val;
+   /* compute dx, dy (distance from cx, cy).  Note: +dy is *up* */
+   dx = x - dp->cx;  dy = dp->cy - y;
+@@ -436,8 +455,10 @@
+   if (angle > 270.0) angle -= 360.0;
+   if (angle < -90.0) angle += 360.0;
+-  val = (int) ((dp->max - dp->min) * (240.0 - angle) / 300.0) + dp->min;
++  val = ((dp->max - dp->min) * (240.0 - angle) / 300.0) + dp->min;
++  /* round value to be an even multiple of dp->inc */
++  val = (double)((int)(val / dp->inc + 0.5)) * dp->inc;
+   return val;
+ }
+diff -uNr xvdir.c xvdir.c
+--- ./xvdir.c  Tue Jan  3 22:21:39 1995
++++ ./xvdir.c  Tue Feb 20 17:04:44 2001
+@@ -62,6 +62,9 @@
+ #ifdef HAVE_TIFF
+                              "TIFF",
+ #endif
++#ifdef HAVE_PNG
++                             "PNG",
++#endif
+                              "PostScript",
+                              "PBM/PGM/PPM (raw)",
+                              "PBM/PGM/PPM (ascii)",
+@@ -1115,6 +1118,15 @@
+   }
+ #endif
++#ifdef HAVE_PNG
++  else if (fmt == F_PNG) {   /* PNG */
++    PNGSaveParams(fullname, col);
++    PNGDialog(1);                   /* open PNG Dialog box */
++    dbut[S_BOK].lit = 0;  BTRedraw(&dbut[S_BOK]);
++    return 0;                      /* always 'succeeds' */
++  }
++#endif
++
+@@ -1168,7 +1180,8 @@
+     
+   case F_XPM:
+     rv = WriteXPM   (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, 
+-                   fullname, picComments);    
++                   fullname, picComments);
++    break;
+   case F_FITS:
+     rv = WriteFITS  (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, 
+                    picComments);    
+@@ -1380,14 +1393,21 @@
+       (strcmp(lowsuf,"eps" )==0) ||
+       (strcmp(lowsuf,"rgb" )==0) ||
+       (strcmp(lowsuf,"tga" )==0) ||
+-      (strcmp(lowsuf,"xpm" )==0) ||
+       (strcmp(lowsuf,"fits")==0) ||
+       (strcmp(lowsuf,"fts" )==0) ||
++#ifdef HAVE_JPEG
+       (strcmp(lowsuf,"jpg" )==0) ||
+       (strcmp(lowsuf,"jpeg")==0) ||
+       (strcmp(lowsuf,"jfif")==0) ||
++#endif
++#ifdef HAVE_TIFF
+       (strcmp(lowsuf,"tif" )==0) ||
+-      (strcmp(lowsuf,"tiff")==0)) {
++      (strcmp(lowsuf,"tiff")==0) ||
++#endif
++#ifdef HAVE_PNG
++      (strcmp(lowsuf,"png" )==0) ||
++#endif
++      (strcmp(lowsuf,"xpm" )==0)) {
+     /* found one.  set lowsuf = to the new suffix, and tack on to filename */
+@@ -1422,6 +1442,10 @@
+ #ifdef HAVE_TIFF
+     case F_TIFF:     strcpy(lowsuf,"tif");  break;
++#endif
++
++#ifdef HAVE_PNG
++    case F_PNG:      strcpy(lowsuf,"png");  break;
+ #endif
+     }
+diff -uNr xvevent.c xvevent.c
+--- ./xvevent.c        Tue Jan 24 00:20:24 1995
++++ ./xvevent.c        Tue Feb 20 17:04:44 2001
+@@ -154,7 +154,7 @@
+      int    *donep;
+ {
+   static int wasInfoUp=0, wasCtrlUp=0, wasDirUp=0, wasGamUp=0, wasPsUp=0;
+-  static int wasJpegUp=0, wasTiffUp=0;
++  static int wasJpegUp=0, wasTiffUp=0, wasPngUp=0;
+   static int mainWKludge=0;  /* force first mainW expose after a mainW config
+                               to redraw all of mainW */
+@@ -233,6 +233,10 @@
+     if (TIFFCheckEvent(event)) break;   /* event has been processed */
+ #endif
++#ifdef HAVE_PNG
++    if (PNGCheckEvent (event)) break;   /* event has been processed */
++#endif
++
+     if (GamCheckEvent (event)) break;   /* event has been processed */
+     if (BrowseCheckEvent (event, &retval, &done)) break;   /* event eaten */
+     if (TextCheckEvent   (event, &retval, &done)) break;   /* event eaten */
+@@ -359,6 +363,10 @@
+       else if (client_event->window == tiffW) TIFFDialog(0);
+ #endif
++#ifdef HAVE_PNG
++      else if (client_event->window == pngW)  PNGDialog(0);
++#endif
++
+       else if (client_event->window == mainW) Quit(0);
+     }
+   }
+@@ -538,6 +546,10 @@
+ #ifdef HAVE_TIFF
+       if (wasTiffUp) { TIFFDialog(wasTiffUp);  wasTiffUp=0; }
+ #endif
++
++#ifdef HAVE_PNG
++      if (wasPngUp)  { PNGDialog(wasJpegUp);   wasPngUp=0; }
++#endif
+       }
+     }
+   }
+@@ -576,6 +588,10 @@
+ #ifdef HAVE_TIFF
+         if (tiffUp) { wasTiffUp = tiffUp;  TIFFDialog(0); }
+ #endif
++
++#ifdef HAVE_PNG
++        if (pngUp)  { wasPngUp  = pngUp;   PNGDialog(0); }
++#endif
+       }
+       }
+     }
+@@ -1147,6 +1163,10 @@
+     if (TIFFCheckEvent(event)) break;
+ #endif
+     
++#ifdef HAVE_PNG
++    if (PNGCheckEvent (event)) break;
++#endif
++    
+     if (GamCheckEvent (event)) break;
+     if (BrowseCheckEvent (event, &retval, &done)) break;
+     if (TextCheckEvent   (event, &retval, &done)) break;
+@@ -1366,6 +1386,10 @@
+     if (TIFFCheckEvent(event)) break;
+ #endif
++#ifdef HAVE_PNG
++    if (PNGCheckEvent (event)) break;
++#endif
++
+     if (GamCheckEvent (event)) break;
+     if (BrowseCheckEvent (event, &retval, &done)) break;
+     if (TextCheckEvent   (event, &retval, &done)) break;
+@@ -2370,6 +2394,10 @@
+ #ifdef HAVE_TIFF
+   if (tiffUp) TIFFDialog(0);  /* close tiff window */
++#endif
++
++#ifdef HAVE_PNG
++  if (pngUp) PNGDialog(0);    /* close png window */
+ #endif
+   ClosePopUp();
+diff -uNr xvgam.c xvgam.c
+--- ./xvgam.c  Fri Jan 13 20:51:14 1995
++++ ./xvgam.c  Tue Feb 20 17:04:44 2001
+@@ -265,11 +265,11 @@
+   BTCreate(&gbut[G_BRNDCOL], cmapF,  5 + 66 + 67 + 2, 189, 66, BUTTH, 
+          "Random", infofg, infobg, hicol, locol);
+-  DCreate(&rhDial, cmapF, 5, 215, 66, 100,   0,360,180, 5, 
++  DCreate(&rhDial, cmapF, 5, 215, 66, 100,   0.0, 360.0, 180.0, 1.0, 5.0, 
+         infofg, infobg, hicol, locol, "Hue", NULL);
+-  DCreate(&gsDial, cmapF, 72, 215, 66, 100,  0,360,180, 5, 
++  DCreate(&gsDial, cmapF, 72, 215, 66, 100,  0.0, 360.0, 180.0, 1.0, 5.0, 
+         infofg, infobg, hicol, locol, "Sat.", NULL);
+-  DCreate(&bvDial, cmapF, 139, 215, 66, 100,   0,360,180, 5, 
++  DCreate(&bvDial, cmapF, 139, 215, 66, 100, 0.0, 360.0, 180.0, 1.0, 5.0, 
+         infofg, infobg, hicol, locol, "Value", NULL);
+   rhDial.drawobj = gsDial.drawobj = bvDial.drawobj = dragEditColor;
+@@ -359,7 +359,7 @@
+   srcHD.drawobj = dstHD.drawobj = whtHD.drawobj = dragHueDial;
+-  DCreate(&satDial, hsvF, 100, 199, 100, 121, -100, 100, 0, 5, 
++  DCreate(&satDial, hsvF, 100, 199, 100, 121, -100.0, 100.0, 0.0, 1.0, 5.0, 
+          infofg, infobg,hicol,locol, "Saturation", "%");
+   hueRB = RBCreate(NULL, hsvF,  7, 153, "1", 
+@@ -722,7 +722,7 @@
+   if (whtHD.enabCB.val && whtHD.satval) hsvnonlinear++;
+-  if (satDial.val != 0) hsvnonlinear++;
++  if (satDial.val != 0.0) hsvnonlinear++;
+   /* check intensity graf */
+   for (i=0; i<256 && intGraf.func[i]==i; i++);
+@@ -1291,14 +1291,14 @@
+     rgb2hsv(rcmap[editColor], gcmap[editColor], bcmap[editColor], &h, &s, &v);
+     if (h<0) h = 0;
+-    DSetVal(&rhDial, (int) h);
+-    DSetVal(&gsDial, (int) (s*100));
+-    DSetVal(&bvDial, (int) (v*100));
++    DSetVal(&rhDial, h);
++    DSetVal(&gsDial, s*100);
++    DSetVal(&bvDial, v*100);
+   }
+   else {
+-    DSetVal(&rhDial, rcmap[editColor]);
+-    DSetVal(&gsDial, gcmap[editColor]);
+-    DSetVal(&bvDial, bcmap[editColor]);
++    DSetVal(&rhDial, (double)rcmap[editColor]);
++    DSetVal(&gsDial, (double)gcmap[editColor]);
++    DSetVal(&bvDial, (double)bcmap[editColor]);
+   }
+ }
+   
+@@ -1310,16 +1310,15 @@
+   if (hsvmode) {
+     int rv, gv, bv;
+-    hsv2rgb((double) rhDial.val, ((double) gsDial.val) / 100.0, 
+-          ((double) bvDial.val) / 100.0, &rv, &gv, &bv);
++    hsv2rgb(rhDial.val, gsDial.val / 100.0, bvDial.val / 100.0, &rv, &gv, &bv);
+     rcmap[editColor] = rv;
+     gcmap[editColor] = gv;
+     bcmap[editColor] = bv;
+   }
+   else {
+-    rcmap[editColor] = rhDial.val;
+-    gcmap[editColor] = gsDial.val;
+-    bcmap[editColor] = bvDial.val;
++    rcmap[editColor] = (int)rhDial.val;
++    gcmap[editColor] = (int)gsDial.val;
++    bcmap[editColor] = (int)bvDial.val;
+   }
+ }
+@@ -1561,9 +1560,9 @@
+     gsDial.title = "Green";
+     bvDial.title = "Blue";
+                  
+-    DSetRange(&rhDial, 0, 255, rcmap[editColor], 16);
+-    DSetRange(&gsDial, 0, 255, gcmap[editColor], 16);
+-    DSetRange(&bvDial, 0, 255, bcmap[editColor], 16);
++    DSetRange(&rhDial, 0.0, 255.0, (double)rcmap[editColor], 1.0, 16.0);
++    DSetRange(&gsDial, 0.0, 255.0, (double)gcmap[editColor], 1.0, 16.0);
++    DSetRange(&bvDial, 0.0, 255.0, (double)bcmap[editColor], 1.0, 16.0);
+     XClearWindow(theDisp, rhDial.win);    DRedraw(&rhDial);
+     XClearWindow(theDisp, gsDial.win);    DRedraw(&gsDial);
+@@ -1581,9 +1580,9 @@
+           &h, &s, &v);
+     if (h<0.0) h = 0.0;
+-    DSetRange(&rhDial, 0, 360, (int) h, 5);
+-    DSetRange(&gsDial, 0, 100, (int) (s*100), 5);
+-    DSetRange(&bvDial, 0, 100, (int) (v*100), 5);
++    DSetRange(&rhDial, 0.0, 360.0,     h, 1.0, 5.0);
++    DSetRange(&gsDial, 0.0, 100.0, s*100, 1.0, 5.0);
++    DSetRange(&bvDial, 0.0, 100.0, v*100, 1.0, 5.0);
+     XClearWindow(theDisp, rhDial.win);    DRedraw(&rhDial);
+     XClearWindow(theDisp, gsDial.win);    DRedraw(&gsDial);
+@@ -1891,7 +1890,7 @@
+     }
+     /* apply satDial value to s */
+-    s = s + ((double) satDial.val) / 100.0;
++    s = s + satDial.val / 100.0;
+     if (s<0.0) s = 0.0;
+     if (s>1.0) s = 1.0;
+@@ -2007,7 +2006,7 @@
+   gs->hueRBnum = RBWhich(hueRB);
+-  gs->satval = satDial.val;
++  gs->satval = (int)satDial.val;
+   GetGrafState(&intGraf,&gs->istate);
+   GetGrafState(&rGraf,  &gs->rstate);
+   GetGrafState(&gGraf,  &gs->gstate);
+@@ -2064,8 +2063,8 @@
+     changed++;
+   }
+     
+-  if (gs->satval != satDial.val) {
+-    DSetVal(&satDial,gs->satval);
++  if (gs->satval != (int)satDial.val) {
++    DSetVal(&satDial,(double)gs->satval);
+     changed++;
+   }
+@@ -3200,7 +3199,7 @@
+   if (whtHD.enabCB.val && whtHD.satval) hsvmod++;
+-  if (satDial.val != 0) hsvmod++;
++  if (satDial.val != 0.0) hsvmod++;
+   /* check intensity graf */
+   for (i=0; i<256; i++) {
+@@ -3284,7 +3283,7 @@
+       }
+       /* apply satDial value to s */
+-      s = s + satDial.val;
++      s = s + (int)satDial.val;
+       if (s<  0) s =   0;
+       if (s>100) s = 100;
+diff -uNr xvjpeg.c xvjpeg.c
+--- ./xvjpeg.c Thu Jan  5 09:17:13 1995
++++ ./xvjpeg.c Tue Feb 20 17:49:14 2001
+@@ -12,8 +12,8 @@
+ #include <setjmp.h>
+-#include "jpeglib.h"
+-#include "jerror.h"
++#include <jpeglib.h>
++#include <jerror.h>
+ #define CREATOR_STR "CREATOR: "
+@@ -51,11 +51,11 @@
+ static    void         clickJD            PARM((int, int));
+ static    void         doCmd              PARM((int));
+ static    void         writeJPEG          PARM((void));
+-METHODDEF void         xv_error_exit      PARM((j_common_ptr));
+-METHODDEF void         xv_error_output    PARM((j_common_ptr));
+-METHODDEF void         xv_prog_meter      PARM((j_common_ptr));
++METHODDEF(void)        xv_error_exit      PARM((j_common_ptr));
++METHODDEF(void)        xv_error_output    PARM((j_common_ptr));
++METHODDEF(void)        xv_prog_meter      PARM((j_common_ptr));
+ static    unsigned int j_getc             PARM((j_decompress_ptr));
+-METHODDEF boolean      xv_process_comment PARM((j_decompress_ptr));
++METHODDEF(boolean)     xv_process_comment PARM((j_decompress_ptr));
+ static    int          writeJFIF          PARM((FILE *, byte *, int,int,int));
+@@ -87,10 +87,10 @@
+   
+   XSelectInput(theDisp, jpegW, ExposureMask | ButtonPressMask | KeyPressMask);
+   
+-  DCreate(&qDial, jpegW, 10, 10, 80, 100, 1, 100, 75, 5, 
++  DCreate(&qDial, jpegW, 10, 10, 80, 100, 1.0, 100.0, 75.0, 1.0, 5.0, 
+         infofg, infobg, hicol, locol, "Quality", "%");
+   
+-  DCreate(&smDial, jpegW, 120, 10, 80, 100, 0, 100, 0, 5, 
++  DCreate(&smDial, jpegW, 120, 10, 80, 100, 0.0, 100.0, 0.0, 1.0, 5.0, 
+         infofg, infobg, hicol, locol, "Smoothing", "%");
+   
+   BTCreate(&jbut[J_BOK], jpegW, JWIDE-180-1, JHIGH-10-BUTTH-1, 80, BUTTH, 
+@@ -400,7 +400,7 @@
+ /**************************************************/
+-METHODDEF void xv_error_exit(cinfo) 
++METHODDEF (void) xv_error_exit(cinfo) 
+      j_common_ptr cinfo;
+ {
+   my_error_ptr myerr;
+@@ -412,7 +412,7 @@
+ /**************************************************/
+-METHODDEF void xv_error_output(cinfo) 
++METHODDEF (void) xv_error_output(cinfo) 
+      j_common_ptr cinfo;
+ {
+   my_error_ptr myerr;
+@@ -426,7 +426,7 @@
+ /**************************************************/
+-METHODDEF void xv_prog_meter(cinfo)
++METHODDEF (void) xv_prog_meter(cinfo)
+      j_common_ptr cinfo;
+ {
+   struct jpeg_progress_mgr *prog;
+@@ -671,7 +671,7 @@
+ /**************************************************/
+-METHODDEF boolean xv_process_comment(cinfo)
++METHODDEF (boolean) xv_process_comment(cinfo)
+      j_decompress_ptr cinfo;
+ {
+   int          length, hasnull;
+@@ -759,8 +759,8 @@
+   jpeg_set_defaults(&cinfo);
+-  jpeg_set_quality(&cinfo, qDial.val, TRUE);
+-  cinfo.smoothing_factor = smDial.val;
++  jpeg_set_quality(&cinfo, (int)qDial.val, TRUE);
++  cinfo.smoothing_factor = (int)smDial.val;
+   jpeg_start_compress(&cinfo, TRUE);
+@@ -769,7 +769,7 @@
+   /*** COMMENT HANDLING ***/
+   sprintf(xvcmt, "%sXV %s  Quality = %d, Smoothing = %d\n",
+-        CREATOR_STR, REVDATE, qDial.val, smDial.val);
++        CREATOR_STR, REVDATE, (int)qDial.val, (int)smDial.val);
+   
+   if (picComments) {   /* append XV comment */
+     char *sp, *sp1;  int done;
+diff -uNr xvmisc.c xvmisc.c
+--- ./xvmisc.c Sat Jan 14 00:41:34 1995
++++ ./xvmisc.c Tue Feb 20 17:04:44 2001
+@@ -520,6 +520,10 @@
+     if (tiffW) XDestroyWindow(theDisp, tiffW);
+ #endif
++#ifdef HAVE_PNG
++    if (pngW)  XDestroyWindow(theDisp, pngW);
++#endif
++
+     /* if NOT using stdcmap for images, free stdcmap */
+     if (colorMapMode != CM_STDCMAP) { 
+       int j;
+@@ -715,6 +719,10 @@
+   
+ #ifdef HAVE_TIFF
+   if (tiffW) XDefineCursor(theDisp, tiffW, otherc);
++#endif
++
++#ifdef HAVE_PNG
++  if (pngW)  XDefineCursor(theDisp, pngW, otherc);
+ #endif
+ }
+diff -uNr xvpng.c xvpng.c
+--- ./xvpng.c  Thu Jan  1 01:00:00 1970
++++ ./xvpng.c  Tue Feb 20 17:49:44 2001
+@@ -0,0 +1,965 @@
++/*
++ * xvpng.c - load and write routines for 'PNG' format pictures
++ *
++ * callable functions
++ *
++ *    CreatePNGW()
++ *    PNGDialog(vis)
++ *    PNGCheckEvent(xev)
++ *    PNGSaveParams(fname, col)
++ *    LoadPNG(fname, pinfo)
++ */
++
++/*#include "copyright.h"*/
++/* (c) 1995 by Alexander Lehmann <lehmann@mathematik.th-darmstadt.de>
++ *   this file is a suplement to xv and is supplied under the same copying
++ *   conditions (except the shareware part)
++ * Modified by Andreas Dilger <adilger@enel.ucalgary.ca> to fix
++ *   error handling for bad PNGs, add dialogs for interlacing and
++ *   compression selection, and upgrade to libpng-0.89
++ * The copyright will be passed on to JB at some future point if he
++ * so desires.
++ */
++
++#include "xv.h"
++
++#ifdef HAVE_PNG
++
++#include <png.h>
++
++/*** Stuff for PNG Dialog box ***/
++#define PWIDE 318
++#define PHIGH 215
++
++#define DISPLAY_GAMMA 2.20  /* Default display gamma */
++/* Default zlib compression level
++#define COMPRESSION   Z_BEST_COMPRESSION
++*/
++#define COMPRESSION   6
++
++#define DWIDE     86
++#define DHIGH    104
++#define PFX PWIDE-93
++#define PFY       44
++#define PFH       20
++
++#define P_BOK    0
++#define P_BCANC  1
++#define P_NBUTTS 2
++
++#define BUTTH    24
++
++/*** local functions ***/
++static    void drawPD         PARM((int, int, int, int));
++static    void clickPD        PARM((int, int));
++static    void doCmd          PARM((int));
++static    void writePNG       PARM((void));
++static    int  WritePNG       PARM((FILE *, byte *, int, int, int,
++                                    byte *, byte *, byte *, int));
++
++static    void png_xv_error   PARM((png_struct *png_ptr, char *message));
++static    void png_xv_warning PARM((png_struct *png_ptr, char *message));
++
++/*** local variables ***/
++static char *filename;
++static char *fbasename;
++static int   colorType;
++static int   read_anything;
++static double Display_Gamma = DISPLAY_GAMMA;
++
++static DIAL  cDial, gDial;
++static BUTT  pbut[P_NBUTTS];
++static CBUTT interCB;
++static CBUTT FdefCB, FnoneCB, FsubCB, FupCB, FavgCB, FPaethCB;
++
++/**************************************************************************/
++/* PNG SAVE DIALOG ROUTINES ***********************************************/
++/**************************************************************************/
++
++
++/*******************************************/
++void CreatePNGW()
++{
++  pngW = CreateWindow("xv png", "XVPNG", NULL,
++                      PWIDE, PHIGH, infofg, infobg, 0);
++  if (!pngW) FatalError("can't create PNG window!");
++
++  XSelectInput(theDisp, pngW, ExposureMask | ButtonPressMask | KeyPressMask);
++
++  DCreate(&cDial, pngW,  12, 25, DWIDE, DHIGH, (double)Z_NO_COMPRESSION,
++          (double)Z_BEST_COMPRESSION, COMPRESSION, 1.0, 2.0,
++          infofg, infobg, hicol, locol, "Compression", NULL);
++
++  DCreate(&gDial, pngW, DWIDE+27, 25, DWIDE, DHIGH, 1.0, 3.5,DISPLAY_GAMMA,0.01,0.2,
++          infofg, infobg, hicol, locol, "Disp. Gamma", NULL);
++
++  CBCreate(&interCB, pngW,  DWIDE+30, DHIGH+3*LINEHIGH+2, "interlace",
++           infofg, infobg, hicol, locol);
++
++  CBCreate(&FdefCB,   pngW, PFX, PFY, "Default",
++           infofg, infobg, hicol, locol);
++  FdefCB.val = 1;
++
++  CBCreate(&FnoneCB,  pngW, PFX, FdefCB.y + PFH + 4, "none",
++           infofg, infobg, hicol, locol);
++  CBCreate(&FsubCB,   pngW, PFX, FnoneCB.y + PFH, "sub",
++           infofg, infobg, hicol, locol);
++  CBCreate(&FupCB,    pngW, PFX, FsubCB.y  + PFH, "up",
++           infofg, infobg, hicol, locol);
++  CBCreate(&FavgCB,   pngW, PFX, FupCB.y   + PFH, "average",
++           infofg, infobg, hicol, locol);
++  CBCreate(&FPaethCB, pngW, PFX, FavgCB.y  + PFH, "Paeth",
++           infofg, infobg, hicol, locol);
++
++  FnoneCB.val = FsubCB.val = FupCB.val = FavgCB.val = FPaethCB.val = 1;
++  CBSetActive(&FnoneCB, !FdefCB.val);
++  CBSetActive(&FsubCB, !FdefCB.val);
++  CBSetActive(&FupCB, !FdefCB.val);
++  CBSetActive(&FavgCB, !FdefCB.val);
++  CBSetActive(&FPaethCB, !FdefCB.val);
++
++  BTCreate(&pbut[P_BOK], pngW, PWIDE-180-1, PHIGH-10-BUTTH-1, 80, BUTTH,
++          "Ok", infofg, infobg, hicol, locol);
++  BTCreate(&pbut[P_BCANC], pngW, PWIDE-90-1, PHIGH-10-BUTTH-1, 80, BUTTH,
++          "Cancel", infofg, infobg, hicol, locol);
++
++  XMapSubwindows(theDisp, pngW);          
++}
++
++
++/*******************************************/
++void PNGDialog(vis)
++     int vis;
++{
++  if (vis) {
++    CenterMapWindow(pngW, pbut[P_BOK].x + (int) pbut[P_BOK].w/2,
++                          pbut[P_BOK].y + (int) pbut[P_BOK].h/2,
++                    PWIDE, PHIGH);
++  }
++  else XUnmapWindow(theDisp, pngW);
++  pngUp = vis;
++}
++
++
++/*******************************************/
++int PNGCheckEvent(xev)
++     XEvent *xev;
++{
++  /* check event to see if it's for one of our subwindows.  If it is,
++     deal accordingly, and return '1'.  Otherwise, return '0' */
++
++  int rv;
++  rv = 1;
++
++  if (!pngUp) return 0;
++
++  if (xev->type == Expose) {
++    int x,y,w,h;
++    XExposeEvent *e = (XExposeEvent *) xev;
++    x = e->x; y = e->y; w = e->width; h = e->height;
++
++    /* throw away excess expose events for 'dumb' windows */
++    if (e->count > 0 && (e->window == cDial.win)) {}
++
++    else if (e->window == pngW)        drawPD(x, y, w, h);
++    else if (e->window == cDial.win)   DRedraw(&cDial);
++    else if (e->window == gDial.win)   DRedraw(&gDial);
++    else rv = 0;
++  }
++
++  else if (xev->type == ButtonPress) {
++    XButtonEvent *e = (XButtonEvent *) xev;
++    int x,y;
++    x = e->x;  y = e->y;
++    
++    if (e->button == Button1) {
++      if      (e->window == pngW)       clickPD(x,y);
++      else if (e->window == cDial.win)  DTrack(&cDial,x,y);
++      else if (e->window == gDial.win)  DTrack(&gDial,x,y);
++      else rv = 0;
++    }  /* button1 */
++    else rv = 0;
++  }  /* button press */
++
++  else if (xev->type == KeyPress) {
++    XKeyEvent *e = (XKeyEvent *) xev;
++    char buf[128];  KeySym ks;
++    int stlen;
++    
++    stlen = XLookupString(e,buf,128,&ks,(XComposeStatus *) NULL);
++    buf[stlen] = '\0';
++    
++    RemapKeyCheck(ks, buf, &stlen);
++    
++    if (e->window == pngW) {
++      if (stlen) {
++        if (buf[0] == '\r' || buf[0] == '\n') { /* enter */
++          FakeButtonPress(&pbut[P_BOK]);
++        }
++        else if (buf[0] == '\033') {            /* ESC */
++          FakeButtonPress(&pbut[P_BCANC]);
++        }
++      }
++    }
++    else rv = 0;
++  }
++  else rv = 0;
++
++  if (rv==0 && (xev->type == ButtonPress || xev->type == KeyPress)) {
++    XBell(theDisp, 50);
++    rv = 1;   /* eat it */
++  }
++
++  return rv;
++}
++
++
++/*******************************************/
++void PNGSaveParams(fname, col)
++     char *fname;
++     int col;
++{
++  filename = fname;
++  colorType = col;
++}
++
++
++/*******************************************/
++static void drawPD(x, y, w, h)
++     int x, y, w, h;
++{
++  char *title   = "Save PNG file...";
++
++  char ctitle1[20];
++  char *ctitle2 = "Useful range";
++  char *ctitle3 = "is 2 - 7.";
++  char *ctitle4 = "Uncompressed = 0";
++
++  char *ftitle  = "Row Filters:";
++
++  char gtitle[20];
++
++  int i;
++  XRectangle xr;
++  
++  xr.x = x;  xr.y = y;  xr.width = w;  xr.height = h;
++  XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted);
++
++  XSetForeground(theDisp, theGC, infofg);
++  XSetBackground(theDisp, theGC, infobg);
++
++  for (i=0; i<P_NBUTTS; i++) BTRedraw(&pbut[i]);
++
++  DrawString(pngW,       15,  6+ASCENT,                          title);
++
++  sprintf(ctitle1, "Default = %d", COMPRESSION);
++  DrawString(pngW,       18,  6+DHIGH+cDial.y+ASCENT,            ctitle1);
++  DrawString(pngW,       17,  6+DHIGH+cDial.y+ASCENT+LINEHIGH,   ctitle2);
++  DrawString(pngW,       17,  6+DHIGH+cDial.y+ASCENT+2*LINEHIGH, ctitle3);
++  DrawString(pngW,       17,  6+DHIGH+cDial.y+ASCENT+3*LINEHIGH, ctitle4);
++
++  sprintf(gtitle, "Default = %g", DISPLAY_GAMMA);
++  DrawString(pngW, DWIDE+30,  6+DHIGH+gDial.y+ASCENT,            gtitle);
++
++  ULineString(pngW, FdefCB.x, FdefCB.y-3-DESCENT, ftitle);
++  XDrawRectangle(theDisp, pngW, theGC, FdefCB.x-11, FdefCB.y-LINEHIGH-3,
++                                       93, 8*LINEHIGH+15);
++  CBRedraw(&FdefCB);
++  XDrawLine(theDisp, pngW, theGC, FdefCB.x-11, FdefCB.y+LINEHIGH+4,
++                                  FdefCB.x+82, FdefCB.y+LINEHIGH+4);
++
++  CBRedraw(&FnoneCB);
++  CBRedraw(&FupCB);
++  CBRedraw(&FsubCB);
++  CBRedraw(&FavgCB);
++  CBRedraw(&FPaethCB);
++
++  CBRedraw(&interCB);
++
++  XSetClipMask(theDisp, theGC, None);
++}
++
++
++/*******************************************/
++static void clickPD(x,y)
++     int x,y;
++{
++  int i;
++  BUTT *bp;
++
++  /* check BUTTs */
++  
++  for (i=0; i<P_NBUTTS; i++) {
++    bp = &pbut[i];
++    if (PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) break;
++  }
++  
++  if (i<P_NBUTTS) {  /* found one */
++    if (BTTrack(bp)) doCmd(i);
++  }
++
++  /* check CBUTTs */
++
++  else if (CBClick(&FdefCB,x,y)) {
++    int oldval = FdefCB.val;
++
++    CBTrack(&FdefCB);
++
++    if (oldval != FdefCB.val)
++    {
++      CBSetActive(&FnoneCB, !FdefCB.val);
++      CBSetActive(&FsubCB, !FdefCB.val);
++      CBSetActive(&FupCB, !FdefCB.val);
++      CBSetActive(&FavgCB, !FdefCB.val);
++      CBSetActive(&FPaethCB, !FdefCB.val);
++
++      CBRedraw(&FnoneCB);
++      CBRedraw(&FupCB);
++      CBRedraw(&FsubCB);
++      CBRedraw(&FavgCB);
++      CBRedraw(&FPaethCB);
++    }
++  }
++  else if (CBClick(&FnoneCB,x,y))  CBTrack(&FnoneCB);
++  else if (CBClick(&FsubCB,x,y))   CBTrack(&FsubCB);
++  else if (CBClick(&FupCB,x,y))    CBTrack(&FupCB);
++  else if (CBClick(&FavgCB,x,y))   CBTrack(&FavgCB);
++  else if (CBClick(&FPaethCB,x,y)) CBTrack(&FPaethCB);
++  else if (CBClick(&interCB,x,y))  CBTrack(&interCB);
++}
++
++
++/*******************************************/
++static void doCmd(cmd)
++     int cmd;
++{
++  switch (cmd) {
++  case P_BOK: {
++    char *fullname;
++
++    writePNG();
++    PNGDialog(0);
++    
++    fullname = GetDirFullName();
++    if (!ISPIPE(fullname[0])) {
++      XVCreatedFile(fullname);
++      StickInCtrlList(0);
++    }
++  }
++    break;
++
++  case P_BCANC:  PNGDialog(0);  break;
++
++  default:        break;
++  }
++}
++
++
++/*******************************************/
++static void writePNG()
++{
++  FILE       *fp;
++  int         w, h, nc, rv, ptype, pfree;
++  byte       *inpix, *rmap, *gmap, *bmap;
++
++  fp = OpenOutFile(filename);
++  if (!fp) return;
++
++  fbasename = BaseName(filename);
++
++  WaitCursor();
++  inpix = GenSavePic(&ptype, &w, &h, &pfree, &nc, &rmap, &gmap, &bmap);
++
++  rv = WritePNG(fp, inpix, ptype, w, h, rmap, gmap, bmap, nc);
++
++  SetCursors(-1);
++
++  if (CloseOutFile(fp, filename, rv) == 0) DirBox(0);
++
++  if (pfree) free(inpix);
++}
++
++
++/*******************************************/
++int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, numcols)
++     FILE *fp;
++     byte *pic;
++     int   ptype, w, h;
++     byte *rmap, *gmap, *bmap;
++     int   numcols;
++{
++  png_struct *png_ptr;
++  png_info   *info_ptr;
++  png_color   palette[256];
++  png_textp   text;
++  byte        remap[256];
++  int         i, filter, linesize = 0, pass;
++  byte       *p, *png_line;
++  char        software[256];
++  char       *savecmnt = NULL;
++
++  if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
++       png_xv_error, png_xv_warning)) == NULL) {
++    FatalError("malloc failure in WritePNG");
++  }
++
++  if ((info_ptr = png_create_info_struct(png_ptr)) == NULL)
++  {
++    png_destroy_write_struct(&png_ptr, &info_ptr);
++    FatalError("malloc failure in WritePNG");
++  }
++
++  if (setjmp(png_ptr->jmpbuf)) {
++    png_destroy_write_struct(&png_ptr, &info_ptr);
++    return -1;
++  }
++
++  png_init_io(png_ptr, fp);
++
++  png_set_compression_level(png_ptr, (int)cDial.val);
++
++  /* Don't bother filtering if we aren't compressing the image */
++  if (FdefCB.val)
++  {
++    if ((int)cDial.val == 0)
++      png_set_filter(png_ptr, 0, PNG_FILTER_NONE);
++  }
++  else
++  {
++    filter  = FnoneCB.val  ? PNG_FILTER_NONE  : 0;
++    filter |= FsubCB.val   ? PNG_FILTER_SUB   : 0;
++    filter |= FupCB.val    ? PNG_FILTER_UP    : 0;
++    filter |= FavgCB.val   ? PNG_FILTER_AVG   : 0;
++    filter |= FPaethCB.val ? PNG_FILTER_PAETH : 0;
++
++    png_set_filter(png_ptr, 0, filter);
++  }
++
++  info_ptr->width = w;
++  info_ptr->height = h;
++
++  info_ptr->interlace_type = interCB.val ? 1 : 0;
++
++  if (colorType == F_FULLCOLOR || colorType == F_REDUCED) {
++    if(ptype == PIC24) {
++      linesize = 3*w;
++      info_ptr->color_type = PNG_COLOR_TYPE_RGB;
++      info_ptr->bit_depth = 8;
++    } else {
++      linesize = w;
++      info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
++      if(numcols <= 2)
++        info_ptr->bit_depth = 1;
++      else
++      if(numcols <= 4)
++        info_ptr->bit_depth = 2;
++      else
++      if(numcols <= 16)
++        info_ptr->bit_depth = 4;
++      else
++        info_ptr->bit_depth = 8;
++
++      for(i = 0; i < numcols; i++) {
++        palette[i].red   = rmap[i];
++        palette[i].green = gmap[i];
++        palette[i].blue  = bmap[i];
++      }
++      info_ptr->num_palette = numcols;
++      info_ptr->palette = palette;
++      info_ptr->valid |= PNG_INFO_PLTE;
++    }
++  }
++
++  else if(colorType == F_GREYSCALE || colorType == F_BWDITHER) {
++    info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
++    if(colorType == F_BWDITHER) {
++      /* shouldn't happen */
++      if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()");
++
++      info_ptr->bit_depth = 1;
++      if(MONO(rmap[0], gmap[0], bmap[0]) > MONO(rmap[1], gmap[1], bmap[1])) {
++        remap[0] = 1;
++        remap[1] = 0;
++      }
++      else {
++        remap[0] = 0;
++        remap[1] = 1;
++      }
++      linesize = w;
++    }
++    else {
++      if(ptype == PIC24) {
++        linesize = w*3;
++        info_ptr->bit_depth = 8;
++      }
++      else {
++        int low_presc;
++
++        linesize = w;
++
++        for(i = 0; i < numcols; i++)
++          remap[i] = MONO(rmap[i], gmap[i], bmap[i]);
++
++        for(; i < 256; i++)
++          remap[i]=0;
++
++        info_ptr->bit_depth = 8;
++
++        /* Note that this fails most of the time because of gamma */
++        /* try to adjust to 4 bit prescision grayscale */
++
++        low_presc=1;
++
++        for(i = 0; i < numcols; i++) {
++          if((remap[i] & 0x0f) * 0x11 != remap[i]) {
++            low_presc = 0;
++            break;
++          }
++        }
++
++        if(low_presc) {
++          for(i = 0; i < numcols; i++) {
++            remap[i] &= 0xf;
++          }
++          info_ptr->bit_depth = 4;
++
++          /* try to adjust to 2 bit prescision grayscale */
++
++          for(i = 0; i < numcols; i++) {
++            if((remap[i] & 0x03) * 0x05 != remap[i]) {
++              low_presc = 0;
++              break;
++            }
++          }
++        }
++
++        if(low_presc) {
++          for(i = 0; i < numcols; i++) {
++            remap[i] &= 3;
++          }
++          info_ptr->bit_depth = 2;
++
++          /* try to adjust to 1 bit prescision grayscale */
++
++          for(i = 0; i < numcols; i++) {
++            if((remap[i] & 0x01) * 0x03 != remap[i]) {
++              low_presc = 0;
++              break;
++            }
++          }
++        }
++
++        if(low_presc) {
++          for(i = 0; i < numcols; i++) {
++            remap[i] &= 1;
++          }
++          info_ptr->bit_depth = 1;
++        }
++      }
++    }
++  }
++
++  else
++    png_error(png_ptr, "Unknown colorstyle in WritePNG");
++
++  if ((text = (png_textp)malloc(sizeof(png_text)))) {
++    sprintf(software, "XV %s", REVDATE);
++
++    text->compression = -1;
++    text->key = "Software";
++    text->text = software;
++    text->text_length = strlen(text->text);
++
++    info_ptr->max_text = 1;
++    info_ptr->num_text = 1;
++    info_ptr->text = text;
++  }
++
++  Display_Gamma = gDial.val;  /* Save the current gamma for loading */
++
++  info_ptr->gamma = 1.0/gDial.val;
++  info_ptr->valid |= PNG_INFO_gAMA;
++
++  png_write_info(png_ptr, info_ptr);
++
++  if(info_ptr->bit_depth < 8)
++    png_set_packing(png_ptr);
++
++  pass=png_set_interlace_handling(png_ptr);
++
++  if((png_line = malloc(linesize)) == NULL)
++    png_error(png_ptr, "cannot allocate temp image line");
++
++  for(i = 0; i < pass; i++) {
++    int j;
++    p = pic;
++    for(j = 0; j < h; j++) {
++  fflush(stdout);
++      if(info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
++        int k;
++        for(k = 0; k < w; k++)
++          png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) :
++                                       remap[p[k]];
++        png_write_row(png_ptr, png_line);
++      } else  /* rbg or palette */
++        png_write_row(png_ptr, p);
++      if((j & 0x1f) == 0) WaitCursor();
++      p += linesize;
++    }
++  }
++
++  free(png_line);
++
++  if (text)
++  {
++    if (picComments && strlen(picComments) &&
++        (savecmnt = (char *)malloc((strlen(picComments) + 1)*sizeof(char)))) {
++      png_textp tp;
++      char *comment, *key;
++
++      strcpy(savecmnt, picComments);
++      key = savecmnt;
++      tp = text;
++      info_ptr->num_text = 0;
++
++      comment = strchr(key, ':');
++
++      do  {
++        /* Allocate a larger structure for comments if necessary */
++        if (info_ptr->num_text >= info_ptr->max_text)
++        {
++          if ((tp =
++              realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == NULL)
++          {
++            break;
++          }
++          else
++          {
++            text = tp;
++            tp = &text[info_ptr->num_text];
++            info_ptr->max_text += 2;
++          }
++        }
++
++        /* See if it looks like a PNG keyword from LoadPNG */
++        if(comment && comment[1] == ':' && comment - key <= 80) {
++          *(comment++) = '\0';
++          *(comment++) = '\0';
++
++          /* If the comment is the 'Software' chunk XV writes, we remove it,
++             since we have already stored one */
++          if (strcmp(key, "Software") == 0 && strncmp(comment, "XV", 2) == 0) {
++            key = strchr(comment, '\n');
++            if(key)
++              key++; /* skip \n */
++            comment = strchr(key, ':');
++          }
++          /* We have another keyword and/or comment to write out */
++          else {
++            tp->key = key;
++            tp->text = comment;
++
++            /* We have to find the end of this comment, and the next keyword
++               if there is one */
++            do {
++              key = comment = strchr(comment, ':');
++            } while (key && key[1] != ':');
++
++            /* It looks like another keyword, go backward to the beginning */
++            if (key) {
++              while(key > tp->text && *key != '\n')
++                key--;
++
++              if (key > tp->text && comment - key <= 80) {
++                *key = '\0';
++                key++;
++              }
++            }
++
++            tp->text_length = strlen(tp->text);
++
++            /* We don't have another keyword, so remove the last newline */
++            if (!key && tp->text[tp->text_length - 1] == '\n')
++            {
++              tp->text[tp->text_length] = '\0';
++              tp->text_length--;
++            }
++
++            tp->compression = tp->text_length > 640 ? 0 : -1;
++            info_ptr->num_text++;
++            tp++;
++          }
++        }
++        /* It is just a generic comment */
++        else {
++          tp->key = "Comment";
++          tp->text = key;
++          tp->text_length = strlen(tp->text);
++          tp->compression = tp->text_length > 750 ? 0 : -1;
++          info_ptr->num_text++;
++          key = NULL;
++        }
++      } while (key && *key);
++    }
++    else
++    {
++      info_ptr->num_text = 0;
++    }
++  }
++  info_ptr->text = text;
++
++  png_convert_from_time_t(&(info_ptr->mod_time), time(NULL));
++  info_ptr->valid |= PNG_INFO_tIME;
++
++  png_write_end(png_ptr, info_ptr);
++  png_destroy_write_struct(&png_ptr, &info_ptr);
++
++  if (text)
++  {
++    free(text);
++    if (savecmnt)
++      free(savecmnt);
++  }
++
++  return 0;
++}
++
++
++/*******************************************/
++int LoadPNG(fname, pinfo)
++     char    *fname;
++     PICINFO *pinfo;
++/*******************************************/
++{
++  /* returns '1' on success */
++
++  FILE  *fp;
++  png_struct *png_ptr;
++  png_info *info_ptr;
++  png_color_16 my_background;
++  int i,j;
++  int linesize;
++  int filesize;
++  int pass;
++  size_t commentsize;
++
++  fbasename = BaseName(fname);
++
++  pinfo->pic     = (byte *) NULL;
++  pinfo->comment = (char *) NULL;
++
++  read_anything=0;
++
++  /* open the file */
++  fp = xv_fopen(fname,"r");
++  if (!fp)
++  {
++    SetISTR(ISTR_WARNING,"%s:  can't open file", fname);
++    return 0;
++  }
++
++  /* find the size of the file */
++  fseek(fp, 0L, 2);
++  filesize = ftell(fp);
++  fseek(fp, 0L, 0);
++  
++  png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL,
++                                   png_xv_error, png_xv_warning);
++  if(!png_ptr) {
++    fclose(fp);
++    FatalError("malloc failure in LoadPNG");
++  }
++
++  info_ptr = png_create_info_struct(png_ptr);
++
++  if(!info_ptr) {
++    fclose(fp);
++    png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
++    FatalError("malloc failure in LoadPNG");
++  }
++
++  if(setjmp(png_ptr->jmpbuf)) {
++    fclose(fp);
++    png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
++    if(!read_anything) {
++      if(pinfo->pic) {
++        free(pinfo->pic);
++        pinfo->pic = NULL;
++      }
++      if(pinfo->comment) {
++        free(pinfo->comment);
++        pinfo->comment = NULL;
++      }
++    }
++    return read_anything;
++  }
++
++  png_init_io(png_ptr, fp);
++  png_read_info(png_ptr, info_ptr);
++
++  pinfo->w = pinfo->normw = info_ptr->width;
++  pinfo->h = pinfo->normh = info_ptr->height;
++
++  pinfo->frmType = F_PNG;
++
++  sprintf(pinfo->fullInfo, "PNG, %d bit ",
++          info_ptr->bit_depth * info_ptr->channels);
++
++  switch(info_ptr->color_type) {
++    case PNG_COLOR_TYPE_PALETTE:
++      strcat(pinfo->fullInfo, "palette color");
++      break;
++
++    case PNG_COLOR_TYPE_GRAY:
++      strcat(pinfo->fullInfo, "grayscale");
++      break;
++
++    case PNG_COLOR_TYPE_GRAY_ALPHA:
++      strcat(pinfo->fullInfo, "grayscale+alpha");
++      break;
++
++    case PNG_COLOR_TYPE_RGB:
++      strcat(pinfo->fullInfo, "truecolor");
++      break;
++
++    case PNG_COLOR_TYPE_RGB_ALPHA:
++      strcat(pinfo->fullInfo, "truecolor+alpha");
++      break;
++  }
++
++  sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo),
++        ", %sinterlaced. (%d bytes)",
++        info_ptr->interlace_type ? "" : "non-", filesize);
++
++  sprintf(pinfo->shrtInfo, "%dx%d PNG", info_ptr->width, info_ptr->height);
++
++  if (info_ptr->bit_depth < 8)
++      png_set_packing(png_ptr);
++
++  if (info_ptr->valid & PNG_INFO_gAMA)
++    png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma);
++  else
++    png_set_gamma(png_ptr, Display_Gamma, 0.45);
++
++  if (info_ptr->valid & PNG_INFO_bKGD)
++    png_set_background(png_ptr, &info_ptr->background,
++                       PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
++  else {
++    my_background.red = my_background.green = my_background.blue =
++      my_background.gray = 0;
++    png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN,
++                       0, Display_Gamma);
++  }
++
++  if (info_ptr->bit_depth == 16)
++    png_set_strip_16(png_ptr);
++
++  if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
++      info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++  {
++    if (info_ptr->bit_depth == 1)
++      pinfo->colType = F_BWDITHER;
++    else
++      pinfo->colType = F_GREYSCALE;
++    png_set_expand(png_ptr);
++  }
++
++  pass=png_set_interlace_handling(png_ptr);
++
++  png_read_update_info(png_ptr, info_ptr);
++
++  if(info_ptr->color_type == PNG_COLOR_TYPE_RGB ||
++     info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) {
++    linesize = pinfo->w * 3;
++    pinfo->colType = F_FULLCOLOR;
++    pinfo->type = PIC24;
++  } else {
++    linesize = pinfo->w;
++    pinfo->type = PIC8;
++    if(info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
++       info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
++      for(i = 0; i < 256; i++)
++        pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i;
++    } else {
++      pinfo->colType = F_FULLCOLOR;
++      for(i = 0; i < info_ptr->num_palette; i++) {
++        pinfo->r[i] = info_ptr->palette[i].red;
++        pinfo->g[i] = info_ptr->palette[i].green;
++        pinfo->b[i] = info_ptr->palette[i].blue;
++      }
++    }
++  }
++  pinfo->pic = calloc((size_t)(linesize*pinfo->h), (size_t)1);
++
++  if(!pinfo->pic) {
++    png_error(png_ptr, "can't allocate space for PNG image");
++  }
++
++  png_start_read_image(png_ptr);
++
++  for(i = 0; i < pass; i++) {
++    byte *p = pinfo->pic;
++    for(j = 0; j < pinfo->h; j++) {
++      png_read_row(png_ptr, p, NULL);
++      read_anything = 1;
++      if((j & 0x1f) == 0) WaitCursor();
++      p += linesize;
++    }
++  }
++
++  png_read_end(png_ptr, info_ptr);
++
++  if(info_ptr->num_text > 0) {
++    commentsize = 1;
++
++    for(i = 0; i < info_ptr->num_text; i++)
++      commentsize += strlen(info_ptr->text[i].key) + 1 +
++                     info_ptr->text[i].text_length + 2;
++
++    if((pinfo->comment = malloc(commentsize)) == NULL) {
++      png_warning(png_ptr,"can't allocate comment string");
++    }
++    else {
++      pinfo->comment[0] = '\0';
++      for(i = 0; i < info_ptr->num_text; i++) {
++        strcat(pinfo->comment, info_ptr->text[i].key);
++        strcat(pinfo->comment, "::");
++        strcat(pinfo->comment, info_ptr->text[i].text);
++        strcat(pinfo->comment, "\n");
++      }
++    }
++  }
++
++  png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
++
++  fclose(fp);
++
++  return 1;
++}
++
++
++/*******************************************/
++static void
++png_xv_error(png_ptr, message)
++     png_struct *png_ptr;
++     char *message;
++{
++  SetISTR(ISTR_WARNING,"%s:  libpng error: %s", fbasename, message);
++
++  longjmp(png_ptr->jmpbuf, 1);
++}
++
++
++/*******************************************/
++static void
++png_xv_warning(png_ptr, message)
++     png_struct *png_ptr;
++     char *message;
++{
++  if (!png_ptr)
++    return;
++
++  SetISTR(ISTR_WARNING,"%s:  libpng warning: %s", fbasename, message);
++}
++
++#endif
+diff -uNr xvpopup.c xvpopup.c
+--- ./xvpopup.c        Thu Jan 19 19:09:31 1995
++++ ./xvpopup.c        Tue Feb 20 17:04:44 2001
+@@ -200,14 +200,14 @@
+     
+     if (!padHaveDooDads) {
+       DCreate(&padWDial, popW, 16,      puhigh-16-100-1,75,100,
+-            1, 2048, pWIDE, 10,
++            1.0, 2048.0, (double)pWIDE, 1.0, 10.0,
+             infofg, infobg, hicol, locol, "Width", NULL);
+       DCreate(&padHDial, popW, 16+1+75, puhigh-16-100-1,75,100,
+-            1, 2048, pHIGH, 10,
++            1.0, 2048.0, (double)pHIGH, 1.0, 10.0,
+             infofg, infobg, hicol, locol, "Height", NULL);
+       DCreate(&padODial, popW, 16+1+75+75+9, puhigh-16-100-1,75,100,
+-            0, 100, 100, 10,
++            0.0, 100.0, 100.0, 1.0, 10.0,
+             infofg, infobg, hicol, locol, "Opaque", NULL);
+       MBCreate(&padMthdMB, popW, 100-2+44, 10, 140, 19, NULL,
+@@ -258,9 +258,9 @@
+   else if (poptyp == ISPAD) {
+     BTSetActive(&bts[0], (int) strlen(gsBuf));
+     i = pWIDE * 3;  RANGE(i,2048,9999);  
+-    DSetRange(&padWDial, 1, i, padWDial.val, 10);
++    DSetRange(&padWDial, 1.0, (double)i, padWDial.val, 1.0, 10.0);
+     i = pHIGH * 3;  RANGE(i,2048,9999);  
+-    DSetRange(&padHDial, 1, i, padHDial.val, 10);
++    DSetRange(&padHDial, 1.0, (double)i, padHDial.val, 1.0, 10.0);
+     DSetActive(&padWDial, (padMode!=PAD_LOAD));  /* DSetRange activates dial */
+     DSetActive(&padHDial, (padMode!=PAD_LOAD));
+@@ -465,9 +465,9 @@
+   changedGSBuf();      /* careful!  popW doesn't exist yet! */
+   if (padHaveDooDads) { 
+-    oldW = padWDial.val;  
+-    oldH = padHDial.val;
+-    oldO = padODial.val;
++    oldW = (int)padWDial.val;  
++    oldH = (int)padHDial.val;
++    oldO = (int)padODial.val;
+   }
+   else { oldW = pWIDE;  oldH = pHIGH;  oldO = 100; }
+@@ -486,9 +486,9 @@
+   }
+   if (rv == 1) {   /* cancelled:  restore normal values */
+-    DSetVal(&padWDial, oldW);
+-    DSetVal(&padHDial, oldH);
+-    DSetVal(&padODial, oldO);
++    DSetVal(&padWDial, (double)oldW);
++    DSetVal(&padHDial, (double)oldH);
++    DSetVal(&padODial, (double)oldO);
+   }
+   XUnmapWindow(theDisp, padWDial.win);
+@@ -498,9 +498,9 @@
+   /* load up return values */
+   *pMode   = padMode;  
+   *pStr    = padBuf;  
+-  *pWide   = padWDial.val;
+-  *pHigh   = padHDial.val;
+-  *pOpaque = padODial.val;
++  *pWide   = (int)padWDial.val;
++  *pHigh   = (int)padHDial.val;
++  *pOpaque = (int)padODial.val;
+   *pOmode  = padOMode;
+   return rv;
+@@ -972,8 +972,8 @@
+   else if (popUp == ISPAD) {
+     if (PTINRECT(x, y, padDButt.x, padDButt.y, padDButt.w, padDButt.h)) {
+       if (BTTrack(&padDButt)) {
+-      DSetVal(&padWDial, pWIDE);
+-      DSetVal(&padHDial, pHIGH);
++      DSetVal(&padWDial, (double)pWIDE);
++      DSetVal(&padHDial, (double)pHIGH);
+       }
+     }
+diff -uNr xvps.c xvps.c
+--- ./xvps.c   Thu Dec 22 23:34:42 1994
++++ ./xvps.c   Tue Feb 20 17:04:44 2001
+@@ -139,9 +139,9 @@
+   CBCreate(&encapsCB, psW, 240, 7, "preview", infofg, infobg, hicol, locol);
+   CBCreate(&pscompCB, psW, 331, 7, "compress", infofg, infobg, hicol, locol);
+-  DCreate(&xsDial, psW, 240, 30, 80, 100, 10, 800, 100, 5, 
++  DCreate(&xsDial, psW, 240, 30, 80, 100, 10.0, 800.0, 100.0, 0.5, 5.0, 
+         infofg, infobg, hicol, locol, "Width", "%");
+-  DCreate(&ysDial, psW, 331, 30, 80, 100, 10, 800, 100, 5, 
++  DCreate(&ysDial, psW, 331, 30, 80, 100, 10.0, 800.0, 100.0, 0.5, 5.0, 
+         infofg, infobg, hicol, locol, "Height", "%");
+   xsDial.drawobj = changedScale;
+   ysDial.drawobj = changedScale;
+@@ -236,10 +236,10 @@
+   if (rd_int("psres")) {             /* xv.psres:  default paper resolution */
+     if (def_int >= 10 && def_int <= 720) {
+-      int i = (int) ((PIX2INCH * 100) / def_int);
++      double v = (PIX2INCH * 100) / def_int;
+-      DSetVal(&xsDial, i);
+-      DSetVal(&ysDial, i);
++      DSetVal(&xsDial, v);
++      DSetVal(&ysDial, v);
+     }
+   }
+@@ -836,7 +836,7 @@
+   if (scx < scy) { sz_iny = h * scx; }
+             else { sz_inx = w * scy; }
+-  DSetVal(&xsDial, (int) ((100 * (sz_inx * PIX2INCH) / w) + .5));
++  DSetVal(&xsDial, 100 * (sz_inx * PIX2INCH) / w);
+   DSetVal(&ysDial, xsDial.val);
+   sz_inx = (double) w / PIX2INCH * (xsDial.val / 100.0);  
+diff -uNr xvtiff.c xvtiff.c
+--- ./xvtiff.c Fri Jan 13 20:53:34 1995
++++ ./xvtiff.c Tue Feb 20 17:50:02 2001
+@@ -12,7 +12,7 @@
+ #ifdef HAVE_TIFF
+-#include "tiffio.h"     /* has to be after xv.h, as it needs varargs/stdarg */
++#include <tiffio.h>     /* has to be after xv.h, as it needs varargs/stdarg */
+ static byte *loadPalette PARM((TIFF *, uint32, uint32, int, int, PICINFO *));
+@@ -186,7 +186,7 @@
+     break;
+   }
+-  sprintf(pinfo->shrtInfo, "%ux%u TIFF.",w,h);
++  sprintf(pinfo->shrtInfo, "%lux%lu TIFF.",w,h);
+   pic8 = (byte *) malloc((size_t) w*h);
+   if (!pic8) FatalError("loadPalette() - couldn't malloc 'pic8'");
+@@ -214,7 +214,7 @@
+          "???"),
+         filesize);
+-  sprintf(pinfo->shrtInfo, "%ux%u TIFF.",w,h);
++  sprintf(pinfo->shrtInfo, "%lux%lu TIFF.",w,h);
+   /* allocate 24-bit image */
+   pic24 = (byte *) malloc((size_t) w*h*3);
+@@ -301,10 +301,10 @@
+ static        byte **BWmap;
+ static        byte **PALmap;
+-typedef void (*tileContigRoutine)   PARM((byte*, u_char*, RGBvalue*, 
++typedef void (*xvtileContigRoutine)   PARM((byte*, u_char*, RGBvalue*, 
+                                         uint32, uint32, int, int));
+-typedef void (*tileSeparateRoutine) PARM((byte*, u_char*, u_char*, u_char*, 
++typedef void (*xvtileSeparateRoutine) PARM((byte*, u_char*, u_char*, u_char*, 
+                                          RGBvalue*, uint32, uint32, int, int));
+@@ -366,8 +366,8 @@
+ static void   putcontig8bitYCbCrtile  PARM((byte *, u_char *, RGBvalue *,
+                                         uint32, uint32, int, int));
+-static tileContigRoutine   pickTileContigCase   PARM((RGBvalue *));
+-static tileSeparateRoutine pickTileSeparateCase PARM((RGBvalue *));
++static xvtileContigRoutine   pickTileContigCase   PARM((RGBvalue *));
++static xvtileSeparateRoutine pickTileSeparateCase PARM((RGBvalue *));
+ /*******************************************/
+@@ -641,7 +641,7 @@
+   u_char *buf;
+   int fromskew, toskew;
+   u_int nrow;
+-  tileContigRoutine put;
++  xvtileContigRoutine put;
+   put = pickTileContigCase(Map);
+   if (put == 0) return (0);
+@@ -708,7 +708,7 @@
+   int tilesize;
+   int fromskew, toskew;
+   u_int nrow;
+-  tileSeparateRoutine put;
++  xvtileSeparateRoutine put;
+   
+   put = pickTileSeparateCase(Map);
+   if (put == 0) return (0);
+@@ -779,7 +779,7 @@
+ {
+   uint32 row, y, nrow;
+   u_char *buf;
+-  tileContigRoutine put;
++  xvtileContigRoutine put;
+   uint32 rowsperstrip;
+   uint32 imagewidth;
+   int scanline;
+@@ -832,7 +832,7 @@
+   u_char *r, *g, *b;
+   uint32 row, y, nrow;
+   int scanline;
+-  tileSeparateRoutine put;
++  xvtileSeparateRoutine put;
+   uint32 rowsperstrip;
+   uint32 imagewidth;
+   u_int stripsize;
+@@ -1065,7 +1065,7 @@
+      int fromskew, toskew;
+ {
+   while (h-- > 0) {
+-    UNROLL8(w,0, *cp++ = PALmap[*pp++][0]);
++    UNROLL8(w,, *cp++ = PALmap[*pp++][0]);
+     cp += toskew;
+     pp += fromskew;
+   }
+@@ -1262,7 +1262,7 @@
+     }
+   } else {
+     while (h-- > 0) {
+-      UNROLL8(w,0,
++      UNROLL8(w,,
+             *cp++ = pp[0];
+             *cp++ = pp[1];
+             *cp++ = pp[2];
+@@ -1335,7 +1335,7 @@
+     }
+   } else {
+     while (h-- > 0) {
+-      UNROLL8(w,0,
++      UNROLL8(w,,
+             *cp++ = *r++;
+             *cp++ = *g++;
+             *cp++ = *b++;
+@@ -1489,16 +1489,16 @@
+ /*
+  * Select the appropriate conversion routine for packed data.
+  */
+-static tileContigRoutine pickTileContigCase(Map)
++static xvtileContigRoutine pickTileContigCase(Map)
+      RGBvalue* Map;
+ {
+-  tileContigRoutine put = 0;
++  xvtileContigRoutine put = 0;
+   
+   switch (photometric) {
+   case PHOTOMETRIC_RGB:
+     switch (bitspersample) {
+-    case 8:  put = (tileContigRoutine) putRGBcontig8bittile;   break;
+-    case 16: put = (tileContigRoutine) putRGBcontig16bittile;  break;
++    case 8:  put = putRGBcontig8bittile;   break;
++    case 16: put = (xvtileContigRoutine)putRGBcontig16bittile;  break;
+     }
+     break;
+     
+@@ -1540,16 +1540,16 @@
+  * NB: we assume that unpacked single channel data is directed
+  *     to the "packed routines.
+  */
+-static tileSeparateRoutine pickTileSeparateCase(Map)
++static xvtileSeparateRoutine pickTileSeparateCase(Map)
+      RGBvalue* Map;
+ {
+-  tileSeparateRoutine put = 0;
++  xvtileSeparateRoutine put = 0;
+   
+   switch (photometric) {
+   case PHOTOMETRIC_RGB:
+     switch (bitspersample) {
+-    case  8: put = (tileSeparateRoutine) putRGBseparate8bittile;  break;
+-    case 16: put = (tileSeparateRoutine) putRGBseparate16bittile; break;
++    case  8: put = (xvtileSeparateRoutine) putRGBseparate8bittile;  break;
++    case 16: put = (xvtileSeparateRoutine) putRGBseparate16bittile; break;
+     }
+     break;
+   }
+diff -uNr xvtiffwr.c xvtiffwr.c
+--- ./xvtiffwr.c       Tue Jan  3 22:28:13 1995
++++ ./xvtiffwr.c       Tue Feb 20 17:50:12 2001
+@@ -9,7 +9,7 @@
+ #ifdef HAVE_TIFF
+-#include "tiffio.h"    /* has to be after xv.h, as it needs varargs/stdarg */
++#include <tiffio.h>    /* has to be after xv.h, as it needs varargs/stdarg */
+ #define ALLOW_JPEG 0  /* set to '1' to allow 'JPEG' choice in dialog box */
diff --git a/demian/xv/xv b/demian/xv/xv
new file mode 100755 (executable)
index 0000000..b4b2d3a
--- /dev/null
@@ -0,0 +1,26 @@
+# HDW Linux xv
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] A simple X image viewer, which allows also take snapshots.
+# [V] 3.10a
+# [S] 3 9
+# [D] xv-3.10a.tar.gz ftp://ftp.cis.upenn.edu/pub/xv/
+
+pre_install()
+{
+    # xv complains about those headers. 
+    # other way to do it easier? -I ?
+    
+    ln -sf /usr/X11/include/X11 /usr/include
+}
+
+build_main()
+{
+    make $make_conf ; make $install_conf install ;
+}
+
+post_install()
+{
+    # it doesnt nag, should i leave it there ?
+    rm /usr/include/X11
+}
diff --git a/demian/yp-tools/yp-tools b/demian/yp-tools/yp-tools
new file mode 100755 (executable)
index 0000000..5c744fb
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux yp-tools
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Some tools for yp servers and clients.
+# [V] 2.7
+# [S] 3 10
+# [D] yp-tools-2.7.tar.gz http://www.kernel.org/pub/linux/utils/net/NIS/
+
+confopt=""
diff --git a/demian/ypbind-mt/ypbind-mt b/demian/ypbind-mt/ypbind-mt
new file mode 100755 (executable)
index 0000000..0f92bb8
--- /dev/null
@@ -0,0 +1,9 @@
+# HDW Linux ypbind-mt
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] YP Server client.
+# [V] 1.9
+# [S] 3 10
+# [D] ypbind-mt-1.9.tar.bz2 http://www.kernel.org/pub/linux/utils/net/NIS/
+
+#confopt=""
diff --git a/demian/ypserv/ypserv b/demian/ypserv/ypserv
new file mode 100755 (executable)
index 0000000..ce0b207
--- /dev/null
@@ -0,0 +1,10 @@
+# HDW Linux ypserv
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] YP Server
+# [V] 2.7
+# [S] 3 10
+## [D] ypserv-2.6.tar.gz http://www.kernel.org/pub/linux/utils/net/NIS/
+# [D] ypserv-2.5.tar.bz2 http://www.kernel.org/pub/linux/utils/net/NIS/
+
+confopt=""
diff --git a/demian/zgv/zgv b/demian/zgv/zgv
new file mode 100755 (executable)
index 0000000..7a9bb3c
--- /dev/null
@@ -0,0 +1,17 @@
+# HDW Linux zgv
+#
+# [M] Jonathan J. Vargas demian@hackdaworld.dyndns.org
+# [I] Console application which use svgalib to display images on 
+# [I] console
+# [V] 5.6
+# [S] 3 9
+# [D] zgv-5.6.tar.gz ftp://ftp.ibiblio.org/pub/Linux/apps/graphics/viewers/svga/
+
+build_main() {
+    make $make_conf
+    make $install_conf install
+}
+
+post_install(){
+    cp doc/sample.zgvrc /etc/zgv.conf
+}