# $Header$ -*-text-*-

# Purpose: Potpurri of Sourceforge information for NCO netCDF Operators project

Project Full Name:  NCO netCDF Operators
Project Unix Name:  nco
CVS Server:         nco.cvs.sf.net
Shell/Web Server:   nco.sf.net:/home/users/z/ze/zender
		    nco.sf.net:/home/project-web/nco
Project Websites:   http://nco.sf.net
		    http://sf.net/projects/nco
		    http://sf.net/project/?group_id=3331
		    http://freshmeat.net/projects/nco
Project FTP:        ftp://nco.sf.net/pub/nco
		    nco.sf.net:/home/groups/ftp/pub/nco
CVS:		    Anonymous check out:
		    cvs -d:pserver:anonymous@nco.cvs.sf.net:/cvsroot/nco login 
		    cvs -z3 -d:pserver:anonymous@nco.cvs.sf.net:/cvsroot/nco co -kk nco
		    Developer check out (note absence of pserver protocol allows ssh to be used)
		    export CVS_RSH=ssh 
		    export CVSROOT=zender@nco.cvs.sf.net:/cvsroot/nco
		    cvs -z3 -dzender@nco.cvs.sf.net:/cvsroot/nco co -kk nco
		    cvs -z3 -dzender@nco.cvs.sf.net:/cvsroot/nco co -kk -r netcdf3 -d nco-1_3 nco 
		    Checkouts inside sourceforge firewall:
		    cvs -dzender@cvs1:/cvsroot/nco co -kk nco
Daily tarballs of entire CVS tree for mirroring:
		    http://nco.cvs.sf.net/cvstarballs/nco-cvsroot.tar.gz
Compile Farm:       ssh cf.sf.net cf.sf.net
HP Testdrive:       telnet 192.233.54.169

# Create tarballs for uploading to sourceforge
cd /data/zender/tmp
mkdir sf
cp /data/zender/tmp/netcdf-3.5.1-beta10.tar.Z /usr/local/lib/libnetcdf* /usr/local/include/netcdf* sf
tar cvzf sf.tar.gz ./sf
mv sf.tar.gz /var/www/html/nco
/bin/rm -r sf
ncftpput upload.sf.net /incoming /var/www/html/nco/sf.tar.gz
scp upload.sf.net:/incoming/sf.tar.gz .

# Copy docs from compile farm to NCO websites
cd ~/nco/doc;scp -C nco.dvi nco.html nco.info* nco.pdf nco.ps* zender@nco.sf.net:/home/project-web/nco/htdocs
cd ~/nco/doc;scp -C nco.dvi nco.html nco.info* nco.pdf nco.ps* zender@dust.ess.uci.edu:/var/www/html/nco

# Copy netCDF library to HP account
ncftpput spe141.testdrive.compaq.com /house/zender /data/zender/tmp/netcdf-3.5.1-beta5.tar.Z
mkdir ${HOME}/bin/${GNU_TRP}
mkdir ${HOME}/lib/${GNU_TRP}
cd ~/netcdf-3.5.1-beta5/src
make distclean
CPPFLAGS='-Df2cFortran' FC='g77' ./configure --prefix=${HOME} --bindir=${HOME}/bin/${GNU_TRP} --libdir=${HOME}/lib/${GNU_TRP}
CC='/bin/c89' CPPFLAGS='-D_HPUX_SOURCE' CXX='aCC' FC='/opt/fortran/bin/fort77' FFLAGS='-w' FLIBS='-lU77' ./configure --prefix=${HOME} --bindir=${HOME}/bin/${GNU_TRP} --libdir=${HOME}/lib/${GNU_TRP}
make;make install

# Copy netCDF library to NCO group account
scp -C /data/zender/tmp/netcdf-3.5.1-beta10.tar.Z zender@nco.sf.net:/home/project-web/nco
# Copy netCDF library from NCO group account to compile farm
scp -C nco.sf.net:/home/project-web/nco/netcdf-3.5.1-beta10.tar.Z ~
# Build netCDF library on compile farm
mkdir -f -p ${HOME}/bin/${GNU_TRP}
mkdir -f -p ${HOME}/lib/${GNU_TRP}
cd ~;tar xvzf netcdf-3.5.1-beta10.tar.Z
cd ~/netcdf-3.5.1-beta10/src
make distclean
CPPFLAGS='-Df2cFortran' CFLAGS='-fPIC' FC='g77' ./configure --prefix=${HOME} --bindir=${HOME}/bin/${GNU_TRP} --libdir=${HOME}/lib/${GNU_TRP}
make;make install
cd ~/lib;mv -f libnetcdf_c++.a libnetcdf.a ${GNU_TRP}

# Compile Farm startup
alias bsrc="source ${HOME}/.bashrc"
alias cp='cp -i' # -i = inquire
alias cvc='cvs commit -m ""'
alias cvu='cvs update -kk'
alias env='env | sort | more'
alias h='history'
alias ls='ls -F' # -F = mark directories with /, links with @, etc.
alias m="less"
alias mv='mv -i' # -i = inquire
alias rm='rm -i' # -i = inquire
alias scp='scp -C' # -p = preserve mode, time, -C = enable compression
export CVS_RSH='ssh'
export GNU_TRP=`~/nco/autobld/config.guess`
export HOST=`/bin/hostname`
export MY_BIN_DIR="${HOME}/bin/${GNU_TRP}"
export MY_LIB_DIR="${HOME}/lib/${GNU_TRP}"
export NETCDF_INC="${HOME}/include"
export NETCDF_LIB="${HOME}/lib/${GNU_TRP}"
export PATH=${MY_BIN_DIR}\:${PATH}
export PS1='\u@\h:\w\$ ' # Prompt user@host:cwd$ NeR98 p. 71 NB: single quotes
cd ~/nco;cvs update -kk

# Build NCO on Compile Farm, old method:
cd ~/nco/bld
NETCDF_INC=${HOME}/include NETCDF_LIB=${HOME}/lib/${GNU_TRP} make
# Build nco_c++ on Compile Farm
cd ${HOME}/nco/src/nco_c++
NETCDF_INC=${HOME}/include NETCDF_LIB=${HOME}/lib/${GNU_TRP} MY_INC_DIR=. gmake

Building group NCO: 
export MY_BIN_DIR='/home/project-web/nco/nco/bin'
export MY_LIB_DIR='/home/project-web/nco/nco/lib'
export MY_OBJ_DIR='/home/project-web/nco/nco/obj'
export NETCDF_INC='/home/project-web/nco/include'
export NETCDF_LIB='/home/project-web/nco/lib/LINUX'
cd /home/project-web/nco/nco/bld;make;cd -
export PATH="${PATH}\:/home/project-web/nco/nco/bin"

The purpose of this project is to create and improve tools for data
analysis by using Open Source development strategy. The starting
point for this project is the NCO software suite. NCO is a relatively
mature package which requires new ideas, features, and contributors 
in order to remain a useful and vital application.

The netCDF Operators, or NCO, are a suite of programs known as
operators. The operators facilitate manipulation and analysis of
self-describing data stored in the netCDF or HDF4 formats, which are
freely available (http://www.unidata.ucar.edu/packages/netcdf and
http://hdf.ncsa.uiuc.edu, respectively). Each NCO operator (e.g., 
ncks) takes netCDF or HDF input file(s), performs an operation (e.g.,
averaging, hyperslabbing, or renaming), and outputs a processed netCDF
file. Although most users of netCDF and HDF data are involved in
scientific research, these data formats, and thus NCO, are generic and
are equally useful in fields like finance. The NCO Users Guide
illustrates NCO use with examples from the field of climate modeling
and analysis. The NCO homepage is currently 
http://nco.sf.net

To build NCO on SourceForge, 
make NETCDF_LIB=/home/project-web/nco/lib/LINUX NETCDF_INC=/home/project-web/nco/include

To make a new release of NCO on SourceForge:
ncftpput upload.sf.net /incoming /var/www/html/nco/nco-2.7.1.tar.gz
ncftpput upload.sf.net /incoming /usr/src/redhat/SRPMS/nco-2.2.0-*.src.rpm /usr/src/redhat/RPMS/i386/nco-2.2.0-*.i386.rpm /usr/src/redhat/SOURCES/nco-2.2.0.tar.gz

To upload to RedHat for inclusion in, e.g., rpmfind.net:
ncftpput incoming.redhat.com /libc6 /usr/src/redhat/SRPMS/nco-2.2.0-*.src.rpm /usr/src/redhat/RPMS/i386/nco-2.2.0-*.i386.rpm

Mailing lists nco-announce:
Web page for users:
http://lists.sf.net/mailman/listinfo/nco-announce

Address for posting:
nco-announce@lists.sf.net

Subscriber info, Send message with "help" in it to 
nco-announce-request@lists.sf.net

Subscription page for changing password, options, etc:
http://lists.sf.net/mailman/options/nco-announce/zender@uci.edu

List administration:
http://lists.sf.net/mailman/admin/nco-announce

Contributors with active projects:
Name, E-mail, Sourceforge name, Project
Henry Butowsky <henryb at ntlworld dot com> ncap, multislabbing
Rorik Peterson <ffrap1 at uaf dot edu> autoconf, getopt
Jim Edwards <jedwards at ncar dot ucar dot edu>
Brian Mays <brian at debian dot org> Debian packaging
George Shapovalov <george at gentoo dot org> Gentoo 

How to help develop NCO:

The best way to start contributing is to checkout the software from 
the CVS repository on Sourceforge. The CVS repository contains the
latest, up-to-the-minute software. If you have never used CVS before,
you may just want to download the numbered tar.gz or RPM release,
whichever method you prefer. These will not contain any code changes
since they were released. Eventually, therefore, you must learn to
use CVS so that you can make serious code changes and keep up with the
development branch. NCO-specific instructions on how to check out the
code with CVS are posted to the Developer's forum on Sourceforge 
http://sf.net/p/nco/discussion/9831 
in the message dated June 21, 2000.

Once you have NCO, build it! If you must make non-trivial
modifications to the Makefile in order to build on your platform,
then please submit those modifications as your first patch.
Once you have built NCO, peruse the user's guide and try a few
examples. 

Read the contents of the Developer's forum! Subscribe to all the NCO
forums so that you are automatically CC'd when new messages arrive.
Post your questions and progress and ideas to the developer's forum
(frequently!) so that others may learn about your work. The
Developer's forum will help prevent duplication of effort and is
the key communication point for everyone involved in the project.

Once you have done all this, you are ready to choose an item on the
TODO list to tackle. For C hackers, dive in to the source code.
If hacking 500 line files of C functions is too intimidating, then
there are plenty of non-C ways to contribute.
Consider contributing improvements to the documentation (man pages
need work), web pages, or regression testing script (written in Perl).
In an open source project, YOU decide what needs to be done.
Perhaps HTML, Make, RPM, Debian packaging, autoconf are more your bag. 
The important thing is to start learning NCO so you can decide for
yourself how best you can contribute. Then, as mentioned above, post
your questions and progress to the developer's forum where different
implementation strategies and technical details are to be discussed. 

Thanks,
Charlie


************************************************************************
PayPal sites: Put this HTML on webpage
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="zender@uci.edu">
<input type="hidden" name="item_name" value="NCO development">
<input type="hidden" name="item_number" value="nco_dnt_dvl">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="tax" value="0">
<input type="image" src="https://www.paypal.com/images/x-click-but04.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>

PayPal email: Put this URL in email
https://www.paypal.com/xclick/business=zender%40uci.edu&item_name=NCO+development&item_number=nco_dnt_dvl&no_note=1&tax=0&currency_code=USD
