From: demian Date: Mon, 17 Feb 2003 17:16:53 +0000 (+0000) Subject: add Added Files: X-Git-Url: https://hackdaworld.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0cf5d9bdce8c606167c114b5ba06792a200b957;p=hdw-repos%2Fpackages.git add Added Files: 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 --- diff --git a/demian/Eterm/Eterm b/demian/Eterm/Eterm new file mode 100755 index 0000000..c25f8b3 --- /dev/null +++ b/demian/Eterm/Eterm @@ -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 index 0000000..154f611 --- /dev/null +++ b/demian/a2ps/a2ps @@ -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 index 0000000..fdecd62 --- /dev/null +++ b/demian/abiword/abiword @@ -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 index 0000000..b5ea465 --- /dev/null +++ b/demian/amsn/amsn @@ -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 index 0000000..62dcf60 --- /dev/null +++ b/demian/aspell/aspell @@ -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 index 0000000..f0928fc --- /dev/null +++ b/demian/aumix/aumix @@ -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 index 0000000..cdeb1b7 --- /dev/null +++ b/demian/aumix/autoconf.patch @@ -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 . ++ ++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 , 1996. ++# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. ++# Originally by Fran,cois Pinard , 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 index 0000000..6290374 --- /dev/null +++ b/demian/bc/bc @@ -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 index 0000000..cd42c89 --- /dev/null +++ b/demian/bc/readline.patch @@ -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 index 0000000..e4101eb --- /dev/null +++ b/demian/bind/bind @@ -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 index 0000000..3232f4a --- /dev/null +++ b/demian/enlightenment/enlightenment @@ -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 index 0000000..21f3ab2 --- /dev/null +++ b/demian/gaim/gaim @@ -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 index 0000000..26abc94 --- /dev/null +++ b/demian/galeon/galeon @@ -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 index 0000000..0e205e9 --- /dev/null +++ b/demian/gdbm/gdbm @@ -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 index 0000000..72b9441 --- /dev/null +++ b/demian/gkrellm/gkrellm @@ -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 index 0000000..1295593 --- /dev/null +++ b/demian/gperf/gperf @@ -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 index 0000000..b67fd21 --- /dev/null +++ b/demian/gpm/gpm @@ -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 index 0000000..27f510c --- /dev/null +++ b/demian/gtk-gnutella/gtk-gnutella @@ -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 index 0000000..d834e32 --- /dev/null +++ b/demian/howtos/howtos @@ -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 index 0000000..a37e591 --- /dev/null +++ b/demian/icewm/icewm @@ -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 index 0000000..4007fe1 --- /dev/null +++ b/demian/id-utils/id-utils @@ -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 index 0000000..e0d53b6 --- /dev/null +++ b/demian/inn/inn @@ -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 index 0000000..b846303 --- /dev/null +++ b/demian/ion/ion @@ -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 index 0000000..69e6798 --- /dev/null +++ b/demian/ion/system.mk.patch @@ -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 index 0000000..3ad7443 --- /dev/null +++ b/demian/java-lib/java-lib @@ -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 index 0000000..b01d969 --- /dev/null +++ b/demian/java/java @@ -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 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 index 0000000..6ab8d4e --- /dev/null +++ b/demian/lynx/lynx @@ -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 index 0000000..ff87937 --- /dev/null +++ b/demian/mpg123/mpg123 @@ -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 index 0000000..5c19ff0 --- /dev/null +++ b/demian/ncftp/ncftp @@ -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 index 0000000..a57c149 --- /dev/null +++ b/demian/netcat/netcat @@ -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 index 0000000..944cf10 --- /dev/null +++ b/demian/netcat/netcat.c.patch @@ -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 index 0000000..e5f9c4f --- /dev/null +++ b/demian/netkit-ftp/netkit-ftp @@ -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 index 0000000..c39a24d --- /dev/null +++ b/demian/netkit-ntalk/endwin.patch @@ -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 index 0000000..786d9ad --- /dev/null +++ b/demian/netkit-ntalk/glibc2.2.patch @@ -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 + #include + #include ++#include + #include + #include + #include diff --git a/demian/netkit-ntalk/netkit-ntalk b/demian/netkit-ntalk/netkit-ntalk new file mode 100755 index 0000000..07f2e05 --- /dev/null +++ b/demian/netkit-ntalk/netkit-ntalk @@ -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 index 0000000..72fe1ce --- /dev/null +++ b/demian/netkit-routed/netkit-routed @@ -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 index 0000000..3e58ba2 --- /dev/null +++ b/demian/netkit-rsh/netkit-rsh @@ -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 index 0000000..e1353f2 --- /dev/null +++ b/demian/netkit-telnet/netkit-telnet @@ -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 index 0000000..c1120b0 --- /dev/null +++ b/demian/netkit-telnet/prototypes.patch @@ -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 + + #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 index 0000000..8a7de88 --- /dev/null +++ b/demian/netkit-tftp/netkit-tftp @@ -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 index 0000000..42fc309 --- /dev/null +++ b/demian/nmap/inet_aton.patch @@ -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 index 0000000..9dcd540 --- /dev/null +++ b/demian/nmap/nmap @@ -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 index 0000000..faf896a --- /dev/null +++ b/demian/pciutils/no_werror.patch @@ -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 index 0000000..3442e9f --- /dev/null +++ b/demian/pciutils/pciutils @@ -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 index 0000000..9dad31a --- /dev/null +++ b/demian/php/php @@ -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 index 0000000..9b68e2a --- /dev/null +++ b/demian/pine.old/pine.old @@ -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 index 0000000..f91a179 --- /dev/null +++ b/demian/procmail/makefile.patch @@ -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 index 0000000..6b6ed3d --- /dev/null +++ b/demian/procmail/procmail @@ -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 index 0000000..036aecd --- /dev/null +++ b/demian/proftpd/proftpd @@ -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 index 0000000..73cf07d --- /dev/null +++ b/demian/pspell/pspell @@ -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 index 0000000..aaa484d --- /dev/null +++ b/demian/psutils/makefile.patch @@ -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 index 0000000..0d53eab --- /dev/null +++ b/demian/psutils/psutils @@ -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 index 0000000..562bcb3 --- /dev/null +++ b/demian/quota/quota @@ -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 index 0000000..03e2ba8 --- /dev/null +++ b/demian/readline/readline @@ -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 index 0000000..6d26093 --- /dev/null +++ b/demian/screen/screen @@ -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 index 0000000..7ebd99b --- /dev/null +++ b/demian/seejpeg/seejpeg @@ -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 index 0000000..c729a31 --- /dev/null +++ b/demian/sendmail.old/sendmail.old @@ -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 index 0000000..52e5581 --- /dev/null +++ b/demian/sniffit/sniffit @@ -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 index 0000000..ddffc12 --- /dev/null +++ b/demian/spim/Makefile.patch @@ -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 index 0000000..0fb7032 --- /dev/null +++ b/demian/spim/spim @@ -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 index 0000000..8039472 --- /dev/null +++ b/demian/splitvt/config.c.patch @@ -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 index 0000000..d8c4c03 --- /dev/null +++ b/demian/splitvt/splitvt @@ -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 index 0000000..6337afa --- /dev/null +++ b/demian/splitvt/title.c.patch @@ -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 index 0000000..5b95653 --- /dev/null +++ b/demian/stat/stat @@ -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 index 0000000..4d7c214 --- /dev/null +++ b/demian/svgalib/makefile.cfg.patch @@ -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 index 0000000..8d52ec6 --- /dev/null +++ b/demian/svgalib/svgalib @@ -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 index 0000000..64c0d9a --- /dev/null +++ b/demian/tcsh/tcsh @@ -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 index 0000000..058b441 --- /dev/null +++ b/demian/tcsh/undef_tiocgltc.patch @@ -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 index 0000000..cf871d0 --- /dev/null +++ b/demian/time/time @@ -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 index 0000000..ced9462 --- /dev/null +++ b/demian/traceroute/traceroute @@ -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 index 0000000..0e205e9 --- /dev/null +++ b/demian/traceroute/traceroute~ @@ -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 index 0000000..a3138ad --- /dev/null +++ b/demian/vim/vim @@ -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 index 0000000..b7abf90 --- /dev/null +++ b/demian/vim/vim-6.1.patch @@ -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 index 0000000..fe362fa --- /dev/null +++ b/demian/xine/xine @@ -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 index 0000000..222219d --- /dev/null +++ b/demian/xmms.old/xmms.old @@ -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 index 0000000..c018b2e --- /dev/null +++ b/demian/xscreensaver/glx_qd-fix.patch @@ -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 + #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 + #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 + #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 + #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 + #include + #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 + #include + +--- ./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 + #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 + + #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 + +--- ./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 + #include + +--- ./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 + +--- ./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 + #include +--- ./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 + + /* static GLuint limit; */ diff --git a/demian/xscreensaver/xscreensaver b/demian/xscreensaver/xscreensaver new file mode 100755 index 0000000..d091b75 --- /dev/null +++ b/demian/xscreensaver/xscreensaver @@ -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 index 0000000..6b2876e --- /dev/null +++ b/demian/xv/00-xv.patch @@ -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 + 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 (maxvmin = 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 + +-#include "jpeglib.h" +-#include "jerror.h" ++#include ++#include + + #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 ++ * this file is a suplement to xv and is supplied under the same copying ++ * conditions (except the shareware part) ++ * Modified by Andreas Dilger 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 ++ ++/*** 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; ix, bp->y, bp->w, bp->h)) break; ++ } ++ ++ if (ijmpbuf)) { ++ 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 /* 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 /* 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 index 0000000..b4b2d3a --- /dev/null +++ b/demian/xv/xv @@ -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 index 0000000..5c744fb --- /dev/null +++ b/demian/yp-tools/yp-tools @@ -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 index 0000000..0f92bb8 --- /dev/null +++ b/demian/ypbind-mt/ypbind-mt @@ -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 index 0000000..ce0b207 --- /dev/null +++ b/demian/ypserv/ypserv @@ -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 index 0000000..7a9bb3c --- /dev/null +++ b/demian/zgv/zgv @@ -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 +}