--- wulfware-2.6.0.orig/debian/README.Debian +++ wulfware-2.6.0/debian/README.Debian @@ -0,0 +1,50 @@ +wulfware for Debian +------------------- +This package contains a set of tools that are extremely useful if you +want to monitor a large number of workstations on a LAN, or a +computing cluster. + +After installing the suite, you need to edit the file +/etc/wulfware/wulfhosts to define the names of the hosts you wish to +monitor. I suggest you start off with wulfstat and get that going. + +There are a few things you need to be aware of when installing xmlsysd. +This daemon is controlled by the inet-superdaemon, but there are several +flavours of that in Debian/Ubuntu. + +xinetd: I recommend that you install xinetd, which is the most modern and +secure inet daemon. Xinetd is configured by dropping a file in the +directory /etc/xinetd.d. You may want to make sure that the file xmlsysd is +indeed in that directory, and also check that is has a line that says +"disabled = no" + +netkit-inetd: this is the old inet daemon that (unfortunately) is installed +by default. It is configured using the /etc/inetd.conf file. You should +check that there is an entry for xmlsysd in that file. It should look +like this: + + xmlsysd stream tcp nowait nobody /usr/sbin/xmlsysd xmlsysd + +openbsd-inetd: a newer and better version than netkit-inetd. It too is +configured using the file /etc/inetd.conf. Check that the xmlsysd entry is +in the file. + +IMPORTANT: If you choose to use netkit-inetd or openbsd-inetd, you MUST +have an entry in the /etc/services that looks like this: + + xmlsysd 7887/tcp xmlsysd + +That entry may or not be in place, since at this time, it is uncertain +whether the maintainer of the netbase package will accept to put it in. + +The wulfware suite is written by Robert G. Brown at the physics department +at Duke University. + +You are encouraged to visit his web site at +http://www.phy.duke.edu/~rgb/Beowulf/wulfware +for further information. Robert also maintains an online book about +Beowulf clusters that is well worth reading. + +Enjoy! + + -- Morten Kjeldgaard , Mon, 27 Aug 2007 16:44:20 +0200 --- wulfware-2.6.0.orig/debian/changelog +++ wulfware-2.6.0/debian/changelog @@ -0,0 +1,27 @@ +wulfware (2.6.0-0ubuntu3) xenial; urgency=medium + + * No-change rebuild for ncurses6 transition. + + -- Matthias Klose Sun, 07 Feb 2016 09:47:30 +0000 + +wulfware (2.6.0-0ubuntu2) quantal; urgency=low + + * debian/control: Added Homepage field. + + -- Radu Stoica Sat, 15 Sep 2012 08:22:06 +0300 + +wulfware (2.6.0-0ubuntu1) gutsy; urgency=low + + * Initial release. + * Authored new autotools build system that I have sent upstream. This + takes care of a whole bunch of problems I had with the package before. + I expect upstream will incorporate the patches, but he has not yet had + time to release a new version. + * Another set of patches to the code is related to platform independence. + * The system for running wulf2html has been modified. A number of + monitoring daemons are started by /etc/init.d/wulf2html, and these + generate web pages in /var/www/html at regular time intervals. The + behaviour of the script can be modified by editing + /etc/defaults/wulf2html. + + -- Morten Kjeldgaard Thu, 23 Aug 2007 15:39:01 +0000 --- wulfware-2.6.0.orig/debian/compat +++ wulfware-2.6.0/debian/compat @@ -0,0 +1 @@ +5 --- wulfware-2.6.0.orig/debian/control +++ wulfware-2.6.0/debian/control @@ -0,0 +1,91 @@ +Source: wulfware +Section: utils +Priority: optional +Maintainer: Ubuntu MOTU Developers +XSBC-Original-Maintainer: Morten Kjeldgaard +Build-Depends: debhelper (>= 5), dpatch, libxml2-dev, libncurses5-dev, + automake, libtool +Standards-Version: 3.7.2 +Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php + +Package: wulfstat +Architecture: any +Depends: ${shlibs:Depends} +Description: curses based wulfware for monitoring cluster nodes + Wulfstat is a program designed to run on a tty interface and provide + detailed monitoring information on a collection of networked cluster nodes + or workstations. It gathers the information from xmlsysd, a daemon that + runs on the nodes or workstations, collects information from /proc files + or systems calls, and returns it in an xml-based format via a tcp socket + connection. + This package is part of the wulfware suite. + . + Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php + +Package: xmlsysd +Architecture: any +Depends: ${shlibs:Depends}, xinetd | inet-superserver, sysv-rc, update-inetd +Description: wulfware daemon to extract data from cluster nodes + xmlsysd is a daemon that runs on the nodes or workstations, collects + information from /proc files or systems calls, and returns it in an + xml-based format via a tcp socket connection. + This package is part of the wulfware suite. + . + When installing, be sure to read /usr/share/xmlsysd/README.Debian + . + Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php + +Package: libwulf2 +Architecture: any +Section: libs +Depends: ${shlibs:Depends} +Description: shared libraries for running wulfware programs + Wulfware is a suite of LAN or cluster monitoring tools. Packages that + require this library are wulfstat, wulflogger and xmlsysd. + . + Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php + +Package: libwulf-dev +Architecture: any +Section: libdevel +Depends: libwulf2 +Description: development environment for wulfware + Libwulf is a library of functions that support configuring a cluster or + LAN for monitoring (using an XML-based cluster description file), managing + connections to the cluster nodes or LAN clients automatically, configuring + the connections to return minimal information for the quantities being + monitored or displayed, and then polling the hosts and extracting their + information into a struct for further processing by a user interface (UI) + program linked to the library. + . + This package contains header files and libraries needed to develop and + compile wulfware programs and is part of the wulfware suite. + . + Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php + +Package: wulflogger +Architecture: any +Depends: ${shlibs:Depends} +Description: extract cluster node data from remote xmlsysd daemons + This package is part of the wulfware suite. It contains a very simple + raw-tty (stdout) UI that is suitable for extracting cluster/lan statistics + from any of several useful clusters of data. This data can be piped into a + file or other applications for post-processing, removing the burden from a + programmer of writing an automated UI for managing the connections + themselves. Alternatively, it can be used as a template for further UIs. + . + Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php + +Package: wulf2html +Architecture: all +Depends: wulflogger +Suggests: apache2 | httpd +Description: filter for generating HTML logs from wulflogger data + This package is part of the wulfware suite and contains a perl filter that + runs behind wulflogger and transforms wulflogger output into a formatted + html page that can then be viewed from any browser. wulf2html can be + started from invoke-rc.d as a service on a webserver or host that mounts + webspace after editing /etc/warewulf/wulfhosts to reflect the cluster or + LAN to be monitored. This is still a bit experimental. + . + Homepage: http://www.phy.duke.edu/~rgb/Beowulf/wulfware.php --- wulfware-2.6.0.orig/debian/copyright +++ wulfware-2.6.0/debian/copyright @@ -0,0 +1,31 @@ +This package was debianized by Morten Kjeldgaard on +Thu, 31 May 2007 20:55:01 +0000. + +It was downloaded from + http://www.phy.duke.edu/~rgb/Beowulf/wulfware/ + +Upstream Author: : Robert G. Brown + +Copyright: 2001 - 2007 Robert G. Brown. + +License: + + This package 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. + + This package 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +The Debian packaging is (C) 2007, Morten Kjeldgaard and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. --- wulfware-2.6.0.orig/debian/dirs +++ wulfware-2.6.0/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/sbin --- wulfware-2.6.0.orig/debian/docs +++ wulfware-2.6.0/debian/docs @@ -0,0 +1,2 @@ +README +NOTES --- wulfware-2.6.0.orig/debian/libwulf-dev.install +++ wulfware-2.6.0/debian/libwulf-dev.install @@ -0,0 +1,3 @@ +usr/lib/libwulf.so +usr/lib/libwulf.a +usr/include/wulfware --- wulfware-2.6.0.orig/debian/libwulf-dev.manpages +++ wulfware-2.6.0/debian/libwulf-dev.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man3/libwulf.3 --- wulfware-2.6.0.orig/debian/libwulf2.install +++ wulfware-2.6.0/debian/libwulf2.install @@ -0,0 +1,2 @@ +etc/wulfware/wulfhosts +usr/lib/libwulf.so.2* --- wulfware-2.6.0.orig/debian/patches/00list +++ wulfware-2.6.0/debian/patches/00list @@ -0,0 +1,6 @@ +autotools.dpatch +get_system_users.c.dpatch +globals.c.dpatch +libwulf_headers.dpatch +xmlsysd.h.dpatch +cluster_header.html.dpatch --- wulfware-2.6.0.orig/debian/patches/autotools.dpatch +++ wulfware-2.6.0/debian/patches/autotools.dpatch @@ -0,0 +1,1266 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## autotools.dpatch by Morten Kjeldgaard +## +## DP: This file patches Robert's autotools system, which does +## DP: not work correctly for my purpose. + +@DPATCH@ +diff -urNad wulfware-2.6.0~/Makefile.am wulfware-2.6.0/Makefile.am +--- wulfware-2.6.0~/Makefile.am 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -1,292 +1,14 @@ ++## -*- mode: Makefile ; mode: font-lock -*- ++## $Id:$ + ## Process this file with automake to produce Makefile.in + +-SUBDIRS = libwulf xmlsysd wulfstat wulflogger wulf2html +- +-EXTRA_DIST = autogen.sh wulfware-config.in configure.ac \ +- THANKS BUGS SUPPORT wulfware.spec.in wulfware.m4 +- +-# install the man pages (nope, not doing this right yet) +-# man_MANS=wulfware.1 libwulfware.3 ++SUBDIRS = libwulf xmlsysd wulfstat wulflogger wulf2html include + +-# m4datadir = $(datadir)/aclocal +-# m4data_DATA = wulfware.m4 ++EXTRA_DIST = autogen.sh configure.ac wulfware.spec.in Copyright Makefile.rgb.in + + # check_SCRIPTS = test_wulfware.sh + # TESTS = test_wulfware.sh + +-#======================================================================== +-# This is the toplevel Makefile for the wulfware project. It has +-# some very specialized targets: +-# +-# make alone should build the entire application +-# make install should build and install the entire application +-# make installweb installs to website for download +-# make installrepo installs to yum repo +-# +-# make tgz makes $(TGZ) of entire tree for standalone or rpm build +-# make rpm makes $(RPM) packages built by wulfware.spec +-# make svn does a svn commit and creates the timestamp $(SVNTIME) +-# make sync does a svn commit and syncs to list of svn-tree hosts +-# +-# make clean cleans the source directories +-#======================================================================== +-# This is the project name +-PROJECT = wulfware +-# These are the toplevel packages built by this project +-LIBRARY = libwulf +-LIBTIME = libwulf.time +-PROGRAM0 = xmlsysd +-P0TIME = xmlsysd.time +-PROGRAM1 = wulfstat +-P1TIME = wulfstat.time +-PROGRAM2 = wulflogger +-P2TIME = wulflogger.time +-PROGRAM3 = wulf2html +-P3TIME = wulf2html.time +-MANUALS = wulfware-doc +-MANTIME = wulfware-doc.time +- +-# The destination on a remote webserver, used as: +-# $(HOME)/public_html/$(WDIR) +-# on that server, and the name of an ssh-accessible login server +-# that contains the public_html path. +-WLOGIN = login.phy.duke.edu +-WDIR = Beowulf +- +-SVNTREE = $(HOME)/Src/svn-tree +-SVNPATH = $(SVNTREE)/$(PROJECT) +-SVNTIME = $(PROJECT:=.svn.time) +- +-#======================================================================== +-# This is revision information that MUST be set here and ONLY here. +-# It will automagically set the related information in $(SPEC) and the +-# subsidiary Makefiles in the source subdirectories. +-#======================================================================== +-#======================================================================== +-# This is revision information, automagically set from autoconf. The +-# actual version information is set ONLY in configure.ac +-#======================================================================== +-VERSION=@VERSION@ +-RELEASE=@RELEASE@ +- +-ABS = $(PROJECT).abs +-PHP = $(PROJECT).php +- +-# RPM/tarball target objects. We need rules for all of these. +-PROJECTDIR = $(PROJECT)-$(VERSION) +-TAR = $(PROJECTDIR).tar +-TGZ = $(PROJECTDIR).tgz +-SPEC = $(PROJECT).spec +- +-#======================================================================== +-# List of variants one can make. all is the default. We always +-# presume the simplest of dependencies and remake if includes change +-# for example. +-#======================================================================== +-all: $(LIBTIME) $(P0TIME) $(P1TIME) $(P2TIME) $(P3TIME) +- +-# This is not, actually, a particularly useful toplevel target. To +-# work correctly it also would require a full parsing of all +-# lower level dependencies. I'm leaving it in for the moment just +-# to have a default target at the toplevel that CAN be used to test. +-$(LIBTIME): +- (cd $(LIBRARY); \ +- make) +- +-$(P0TIME): +- (cd $(PROGRAM0); \ +- make) +- +-$(P1TIME): +- (cd $(PROGRAM1); \ +- make) +- +-$(P2TIME): +- (cd $(PROGRAM2); \ +- make) +- +-$(P3TIME): +- (cd $(PROGRAM3); \ +- make) +- +-$(ABS): Makefile +- cat $(ABS) | \ +- sed -e 's/^\(

Version \)\(.*\)/\1$(VERSION)<\/H2><\/center>/' > /tmp/$(ABS).$$ +- mv /tmp/$(ABS).$$ $(ABS) +- +-#======================================================================== +-# This is a required target for both its own sake and to support the +-# rpm build. It has to run unconditionally when called. Note that we +-# make PRECISELY what we need in terms of the source directories, +-# excluding all restricted material and irrelevant data. +-#======================================================================== +-tgz: Makefile COPYING Copyright NOTES README $(SPEC) $(ABS) $(PHP) +- ( rm -rf $(TAR) $(TGZ) $(PROJECTDIR); \ +- mkdir -p $(PROJECTDIR); \ +- cd $(LIBRARY); \ +- make clean; \ +- cd ..; \ +- cp -r $(LIBRARY) $(PROJECTDIR); \ +- cd $(PROGRAM0); \ +- make clean; \ +- cd ..; \ +- cp -r $(PROGRAM0) $(PROJECTDIR); \ +- cd $(PROGRAM1); \ +- make clean; \ +- cd ..; \ +- cp -r $(PROGRAM1) $(PROJECTDIR); \ +- cd $(PROGRAM2); \ +- make clean; \ +- cd ..; \ +- cp -r $(PROGRAM2) $(PROJECTDIR); \ +- cd $(PROGRAM3); \ +- make clean; \ +- cd ..; \ +- cp -r $(PROGRAM3) $(PROJECTDIR); \ +- cp -r include $(PROJECTDIR); \ +- mkdir -p $(PROJECTDIR)/lib; \ +- cp $(ABS) $(PROJECTDIR); \ +- cp $(PHP) $(PROJECTDIR); \ +- cp Makefile.am $(PROJECTDIR); \ +- cp configure $(PROJECTDIR); \ +- cp $(SPEC).in $(PROJECTDIR); \ +- cp autogen.sh $(PROJECTDIR); \ +- cp config.guess $(PROJECTDIR); \ +- cp config.sub $(PROJECTDIR); \ +- cp missing $(PROJECTDIR); \ +- cp install-sh $(PROJECTDIR); \ +- cp mkinstalldirs $(PROJECTDIR); \ +- cp ltmain.sh $(PROJECTDIR); \ +- cp configure.ac $(PROJECTDIR); \ +- cp Copyright $(PROJECTDIR); \ +- cp COPYING $(PROJECTDIR); \ +- cp INSTALL $(PROJECTDIR); \ +- cp AUTHORS $(PROJECTDIR); \ +- cp NEWS $(PROJECTDIR); \ +- cp ChangeLog $(PROJECTDIR); \ +- cp README $(PROJECTDIR); \ +- cp NOTES $(PROJECTDIR); \ +- tar -cvpf $(TAR) \ +- --exclude=.svn \ +- --exclude=Cruft \ +- --exclude=Exclude \ +- --exclude=*.tar \ +- --exclude=*.tgz \ +- --exclude=*.rpm \ +- ./$(PROJECTDIR); \ +- gzip $(TAR); \ +- mv $(TAR).gz $(TGZ); \ +- rm -rf $(PROJECTDIR)) +- +-#======================================================================== +-# rpm target special stuff +-# +-# To work in userspace, add the following: +-# %_topdir /home/rgb/Src/redhat +-# to your personal $(HOME)/.rpmmacros after building +-# yourself a private copy of the /usr/src/redhat directory structure. +-# +-# RPM_TOPDIR=/usr/src/redhat +-RPM_TOPDIR=$(HOME)/Src/rpm_tree +- +-# This is needed to get the right library and binary rpm. +-ARCH=`uname -i` +-# ARCH=i386 +-# These are the three rpms automagically built by the spec +-SRPM = $(PROJECT)-$(VERSION)-$(RELEASE).src.rpm +-LIBWULF_RPM = libwulf-$(VERSION)-$(RELEASE).$(ARCH).rpm +-XMLSYSD_RPM = xmlsysd-$(VERSION)-$(RELEASE).$(ARCH).rpm +-WULFSTAT_RPM = wulfstat-$(VERSION)-$(RELEASE).$(ARCH).rpm +-WULFLOGGER_RPM = wulflogger-$(VERSION)-$(RELEASE).$(ARCH).rpm +-WULF2HTML_RPM = wulf2html-$(VERSION)-$(RELEASE).$(ARCH).rpm +- +-$(TGZ): tgz +-$(SRPM): rpm +-$(LIBWULF_RPM): rpm +-$(XMLSYSD_RPM): rpm +-$(WULFSTAT_RPM): rpm +-$(WULFLOGGER_RPM): rpm +-$(WULF2HTML_RPM): rpm +- +-#======================================================================== +-# One stop shop. Basically we build this every time, we hope. +-rpm: Makefile $(TGZ) $(SPEC) +- cp $(TGZ) $(RPM_TOPDIR)/SOURCES +- cp $(SPEC) $(RPM_TOPDIR)/SPECS +- rpmbuild -ba --target=$(ARCH) $(RPM_TOPDIR)/SPECS/$(SPEC) +- cp $(RPM_TOPDIR)/SRPMS/$(SRPM) . +- cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(LIBWULF_RPM) . +- cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(XMLSYSD_RPM) . +- cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(WULFSTAT_RPM) . +- cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(WULFLOGGER_RPM) . +- cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(WULF2HTML_RPM) . +- +-svn: +- echo "New Checkin `date`" >> $(SVNTIME) # Will force a commit and increment revision +- svn commit . +- cat $(SVNTIME) | \ +- sed -e '/^New Checkin/d' >> $(SVNTIME).tmp +- mv $(SVNTIME).tmp $(SVNTIME) +- +-sync: +- echo "New Checkin `date`" >> $(SVNTIME) # Will force a commit and increment revision +- svn commit . # Do the commit +- rsync -avz --delete $(SVNPATH) login.phy.duke.edu:/home/einstein/prof/rgb/Src/svn-tree +- rsync -avz --delete $(SVNPATH) uriel:$(SVNTREE) +- cat $(SVNTIME) | \ +- sed -e '/^New Checkin/d' >> $(SVNTIME).tmp +- mv $(SVNTIME).tmp $(SVNTIME) +- +-#======================================================================== +-# A standard cleanup target +-#======================================================================== +-clean : +- - (cd $(LIBRARY); \ +- $(MAKE) clean; \ +- cd ..; \ +- cd $(PROGRAM0); \ +- $(MAKE) clean; \ +- cd ..; \ +- cd $(PROGRAM1); \ +- $(MAKE) clean; \ +- cd ..; \ +- cd $(PROGRAM2); \ +- $(MAKE) clean; \ +- cd ..; \ +- cd $(PROGRAM3); \ +- $(MAKE) clean;) +- +-installweb : $(TGZ) $(LIBWULF_RPM) $(XMLSYSD_RPM) $(WULFSTAT_RPM) \ +- $(WULFLOGGER_RPM) $(WULF2HTML) $(SRPM) $(ABS) $(PHP) +- (ssh $(WLOGIN) mkdir -p public_html/$(WDIR)/$(PROJECT);\ +- rsync -avz $(TGZ) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(SRPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(LIBWULF_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(XMLSYSD_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(WULFSTAT_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(WULFLOGGER_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(WULF2HTML_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(ABS) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ +- rsync -avz $(PHP) $(WLOGIN):public_html/$(WDIR)/) +- +-REPOSERVER = uriel +-REPOPATH = /var/www/html/fc/6/local/ +-installrepo : $(TGZ) $(LIBWULF_RPM) $(XMLSYSD_RPM) $(WULFSTAT_RPM) \ +- $(WULFLOGGER_RPM) $(WULF2HTML) +- (ssh $(REPOSERVER) mkdir -p $(REPOPATH);\ +- rsync -avz $(TGZ) root@$(REPOSERVER):$(REPOPATH);\ +- rsync -avz $(LIBWULF_RPM) root@$(REPOSERVER):$(REPOPATH)/SRPM;\ +- ssh $(REPOSERVER) mkdir -p $(REPOPATH)/$(ARCH);\ +- rsync -avz $(XMLSYSD_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH);\ +- rsync -avz $(WULFSTAT_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH);\ +- rsync -avz $(WULFLOGGER_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH);\ +- rsync -avz $(WULF2HTML_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH)\; +- ssh root@$(REPOSERVER) "cd $(REPOPATH)/$(ARCH);createrepo .") +- +-#======================================================================== +-# We give all generic rules below. Currently we only need a rule for +-# objects. +-#======================================================================== +-%.o:%.c $(INCLUDES) +- $(CC) -c $(CFLAGS) $< ++#include Makefile.rgb + ++#### +diff -urNad wulfware-2.6.0~/Makefile.rgb.in wulfware-2.6.0/Makefile.rgb.in +--- wulfware-2.6.0~/Makefile.rgb.in 1970-01-01 01:00:00.000000000 +0100 ++++ wulfware-2.6.0/Makefile.rgb.in 2007-08-26 18:04:34.000000000 +0200 +@@ -0,0 +1,166 @@ ++#======================================================================== ++# This is the toplevel Makefile for the wulfware project. It has ++# some very specialized targets: ++# ++# make alone should build the entire application ++# make install should build and install the entire application ++# make installweb installs to website for download ++# make installrepo installs to yum repo ++# ++# make tgz makes $(TGZ) of entire tree for standalone or rpm build ++# make rpm makes $(RPM) packages built by wulfware.spec ++# make svn does a svn commit and creates the timestamp $(SVNTIME) ++# make sync does a svn commit and syncs to list of svn-tree hosts ++# ++# make clean cleans the source directories ++#======================================================================== ++# This is the project name ++PROJECT = wulfware ++# These are the toplevel packages built by this project ++LIBRARY = libwulf ++LIBTIME = libwulf.time ++PROGRAM0 = xmlsysd ++P0TIME = xmlsysd.time ++PROGRAM1 = wulfstat ++P1TIME = wulfstat.time ++PROGRAM2 = wulflogger ++P2TIME = wulflogger.time ++PROGRAM3 = wulf2html ++P3TIME = wulf2html.time ++MANUALS = wulfware-doc ++MANTIME = wulfware-doc.time ++ ++# The destination on a remote webserver, used as: ++# $(HOME)/public_html/$(WDIR) ++# on that server, and the name of an ssh-accessible login server ++# that contains the public_html path. ++WLOGIN = login.phy.duke.edu ++WDIR = Beowulf ++ ++SVNTREE = $(HOME)/Src/svn-tree ++SVNPATH = $(SVNTREE)/$(PROJECT) ++SVNTIME = $(PROJECT:=.svn.time) ++ ++#======================================================================== ++# This is revision information that MUST be set here and ONLY here. ++# It will automagically set the related information in $(SPEC) and the ++# subsidiary Makefiles in the source subdirectories. ++#======================================================================== ++#======================================================================== ++# This is revision information, automagically set from autoconf. The ++# actual version information is set ONLY in configure.ac ++#======================================================================== ++VERSION=@VERSION@ ++RELEASE=@RELEASE@ ++ ++ABS = $(PROJECT).abs ++PHP = $(PROJECT).php ++ ++# RPM/tarball target objects. We need rules for all of these. ++PROJECTDIR = $(PROJECT)-$(VERSION) ++TAR = $(PROJECTDIR).tar ++TGZ = $(PROJECTDIR).tgz ++SPEC = $(PROJECT).spec ++ ++ ++#======================================================================== ++# This is a required target for both its own sake and to support the ++# rpm build. It has to run unconditionally when called. Note that we ++# make PRECISELY what we need in terms of the source directories, ++# excluding all restricted material and irrelevant data. ++#======================================================================== ++tgz: dist ++ ++#======================================================================== ++# rpm target special stuff ++# ++# To work in userspace, add the following: ++# %_topdir /home/rgb/Src/redhat ++# to your personal $(HOME)/.rpmmacros after building ++# yourself a private copy of the /usr/src/redhat directory structure. ++# ++# RPM_TOPDIR=/usr/src/redhat ++RPM_TOPDIR=$(HOME)/Src/rpm_tree ++ ++# This is needed to get the right library and binary rpm. ++ARCH=`uname -i` ++# ARCH=i386 ++# These are the three rpms automagically built by the spec ++SRPM = $(PROJECT)-$(VERSION)-$(RELEASE).src.rpm ++LIBWULF_RPM = libwulf-$(VERSION)-$(RELEASE).$(ARCH).rpm ++XMLSYSD_RPM = xmlsysd-$(VERSION)-$(RELEASE).$(ARCH).rpm ++WULFSTAT_RPM = wulfstat-$(VERSION)-$(RELEASE).$(ARCH).rpm ++WULFLOGGER_RPM = wulflogger-$(VERSION)-$(RELEASE).$(ARCH).rpm ++WULF2HTML_RPM = wulf2html-$(VERSION)-$(RELEASE).$(ARCH).rpm ++ ++$(TGZ): tgz ++$(SRPM): rpm ++$(LIBWULF_RPM): rpm ++$(XMLSYSD_RPM): rpm ++$(WULFSTAT_RPM): rpm ++$(WULFLOGGER_RPM): rpm ++$(WULF2HTML_RPM): rpm ++ ++#======================================================================== ++# One stop shop. Basically we build this every time, we hope. ++rpm: Makefile $(TGZ) $(SPEC) ++ cp $(TGZ) $(RPM_TOPDIR)/SOURCES ++ cp $(SPEC) $(RPM_TOPDIR)/SPECS ++ rpmbuild -ba --target=$(ARCH) $(RPM_TOPDIR)/SPECS/$(SPEC) ++ cp $(RPM_TOPDIR)/SRPMS/$(SRPM) . ++ cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(LIBWULF_RPM) . ++ cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(XMLSYSD_RPM) . ++ cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(WULFSTAT_RPM) . ++ cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(WULFLOGGER_RPM) . ++ cp $(RPM_TOPDIR)/RPMS/$(ARCH)/$(WULF2HTML_RPM) . ++ ++svn: ++ echo "New Checkin `date`" >> $(SVNTIME) # Will force a commit and increment revision ++ svn commit . ++ cat $(SVNTIME) | \ ++ sed -e '/^New Checkin/d' >> $(SVNTIME).tmp ++ mv $(SVNTIME).tmp $(SVNTIME) ++ ++sync: ++ echo "New Checkin `date`" >> $(SVNTIME) # Will force a commit and increment revision ++ svn commit . # Do the commit ++ rsync -avz --delete $(SVNPATH) login.phy.duke.edu:/home/einstein/prof/rgb/Src/svn-tree ++ rsync -avz --delete $(SVNPATH) uriel:$(SVNTREE) ++ cat $(SVNTIME) | \ ++ sed -e '/^New Checkin/d' >> $(SVNTIME).tmp ++ mv $(SVNTIME).tmp $(SVNTIME) ++ ++installweb : $(TGZ) $(LIBWULF_RPM) $(XMLSYSD_RPM) $(WULFSTAT_RPM) \ ++ $(WULFLOGGER_RPM) $(WULF2HTML) $(SRPM) $(ABS) $(PHP) ++ (ssh $(WLOGIN) mkdir -p public_html/$(WDIR)/$(PROJECT);\ ++ rsync -avz $(TGZ) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(SRPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(LIBWULF_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(XMLSYSD_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(WULFSTAT_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(WULFLOGGER_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(WULF2HTML_RPM) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(ABS) $(WLOGIN):public_html/$(WDIR)/$(PROJECT)/; \ ++ rsync -avz $(PHP) $(WLOGIN):public_html/$(WDIR)/) ++ ++REPOSERVER = uriel ++REPOPATH = /var/www/html/fc/6/local/ ++installrepo : $(TGZ) $(LIBWULF_RPM) $(XMLSYSD_RPM) $(WULFSTAT_RPM) \ ++ $(WULFLOGGER_RPM) $(WULF2HTML) ++ (ssh $(REPOSERVER) mkdir -p $(REPOPATH);\ ++ rsync -avz $(TGZ) root@$(REPOSERVER):$(REPOPATH);\ ++ rsync -avz $(LIBWULF_RPM) root@$(REPOSERVER):$(REPOPATH)/SRPM;\ ++ ssh $(REPOSERVER) mkdir -p $(REPOPATH)/$(ARCH);\ ++ rsync -avz $(XMLSYSD_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH);\ ++ rsync -avz $(WULFSTAT_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH);\ ++ rsync -avz $(WULFLOGGER_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH);\ ++ rsync -avz $(WULF2HTML_RPM) root@$(REPOSERVER):$(REPOPATH)/$(ARCH)\; ++ ssh root@$(REPOSERVER) "cd $(REPOPATH)/$(ARCH);createrepo .") ++ ++#======================================================================== ++# We give all generic rules below. Currently we only need a rule for ++# objects. ++#======================================================================== ++%.o:%.c $(INCLUDES) ++ $(CC) -c $(CFLAGS) $< ++ +diff -urNad wulfware-2.6.0~/configure.ac wulfware-2.6.0/configure.ac +--- wulfware-2.6.0~/configure.ac 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/configure.ac 2007-08-26 18:04:34.000000000 +0200 +@@ -1,9 +1,9 @@ +-# -*- Autoconf -*- ++# -*- mode: Autoconf; mode: font-lock -*- + # Process this file with autoconf to produce a configure script. + + AC_PREREQ(2.59) + +-AC_INIT([wulfware], [2.6.0]) ++AC_INIT([wulfware], [2.6.1]) + AC_CONFIG_SRCDIR([Copyright]) + RELEASE=0 + AC_SUBST(RELEASE) +@@ -18,7 +18,7 @@ + dnl + dnl wulfware-1.0 libwulf 0:0:0 + +-WULFWARE_LT_VERSION="0:0:0" ++WULFWARE_LT_VERSION="2:6:0" + AC_SUBST(WULFWARE_LT_VERSION) + + case "$VERSION" in +@@ -39,7 +39,7 @@ + AC_PROG_CC + AC_PROG_INSTALL + AC_PROG_MAKE_SET +-AC_PROG_RANLIB ++###AC_PROG_RANLIB + + # Disable unnecessary libtool tests for c++,fortran,java + define([AC_LIBTOOL_LANG_CXX_CONFIG], [:]) +@@ -47,17 +47,20 @@ + define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:]) + AC_PROG_LIBTOOL + ++# Define variable XML_DIRS ++AM_PATH_XML2 ++ + # Check compiler features + AC_TYPE_SIZE_T + # AC_C_CONST + AC_C_VOLATILE + AC_C_INLINE + +-WULFWARE_CFLAGS="-I$includedir" +-WULFWARE_LIBS="-L$libdir -ldieharder" ++#WULFWARE_CFLAGS="-I$includedir" ++#WULFWARE_LIBS="-L$libdir -ldieharder" + +-AC_SUBST(WULFWARE_CFLAGS) +-AC_SUBST(WULFWARE_LIBS) ++#AC_SUBST(WULFWARE_CFLAGS) ++#AC_SUBST(WULFWARE_LIBS) + + # Checks for libraries. + # FIXME: Replace `main' with a function in `-lcurses': +@@ -83,11 +86,14 @@ + AC_CONFIG_FILES([ + wulfware.spec + include/wulfware/wulfware_version.h ++ include/Makefile ++ include/wulfware/Makefile + libwulf/Makefile + wulfstat/Makefile + wulflogger/Makefile + wulf2html/Makefile + xmlsysd/Makefile ++ Makefile.rgb + Makefile]) + + AC_CHECK_FUNCS([bzero gethostbyaddr gethostbyname gethostname gettimeofday inet_ntoa memset select socket strcasecmp strerror strtol strtoul strtoull]) +diff -urNad wulfware-2.6.0~/include/Makefile.am wulfware-2.6.0/include/Makefile.am +--- wulfware-2.6.0~/include/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ wulfware-2.6.0/include/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -0,0 +1,9 @@ ++## -*- mode: Makefile ; mode: font-lock -*- ++## Version: $Id: Makefile.am,v 0.0 2007/07/03 23:43:39 mok Exp $ ++ ++ ++# Build in these directories ++ ++SUBDIRS = wulfware ++ ++#### +diff -urNad wulfware-2.6.0~/include/wulfware/Makefile.am wulfware-2.6.0/include/wulfware/Makefile.am +--- wulfware-2.6.0~/include/wulfware/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ wulfware-2.6.0/include/wulfware/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -0,0 +1,13 @@ ++## -*- mode: Makefile ; mode: font-lock -*- ++## Version: $Id: Makefile.am,v 0.0 2007/07/03 23:41:42 mok Exp $ ++ ++EXTRA_DIST = wulfware_version.h.in ++ ++libwulf_h_sources = libwulf_commands.h libwulf_copyright.h libwulf.h \ ++libwulf_llist.h libwulf_prototypes.h libwulf_values.h libwulf_wulfhost.h \ ++libwulf_wulfhosts.h wulfware_version.h ++ ++library_includedir = $(pkgincludedir) ++library_include_HEADERS = $(libwulf_h_sources) ++ ++#### +diff -urNad wulfware-2.6.0~/libwulf/Makefile.am wulfware-2.6.0/libwulf/Makefile.am +--- wulfware-2.6.0~/libwulf/Makefile.am 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/libwulf/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -1,129 +1,18 @@ +-#======================================================================== +-# This is a Makefile for the libdieharder library, part of the +-# overall dieharder package. It has a very abbreviated set of targets. +-# +-# make alone should build the application. +-# +-# make clean deletes the application and all object files +-# make install strips and installs application and a man page +-# make printout prints out all source and include files +-# +-# These two commands execute in the toplevel project directory only. +-# make svn does a svn commit and creates the timestamp $(SVN) +-# make sync does a svn commit and rsyncs to list of hosts +-#======================================================================== +-PROJECT = wulfware +-DIR = libwulf +- +-SVNTREE = $(HOME)/Src/svn-tree +-SVNPATH = $(SVNTREE)/$(PROJECT) +-SVNTIME = $(DIR:=.svn.time) +- +-# This is automagically set in the toplevel build. Do not edit by +-# hand. +-VERSION=@VERSION@ +-VERSION_MAJOR = $(shell expr $(VERSION) : '\(.*\)\..*\..*' \| $(VERSION)) +-RELEASE=0 +- +-# This is the library from which both wulfstat and wulflogger (and maybe +-# other stuff in the future) is built. +-PROGMAN = libwulf.3 +-# (FC "requires" no static library build) +-# PROGLIB_A = libwulf.a +-PROGLIB_SO = libwulf.so +-PROGLIB_SONAME = libwulf.so.$(VERSION_MAJOR) +-PROGLIB_SO_VERSION = libwulf.so.$(VERSION) +- +-#======================================================================== +-# Define all sources. Note that we choose to depend on ALL the includes +-# in the include directory, which cannot be empty or this will barf. +-#======================================================================== +-LIBINCLUDES = $(shell ls ../include/wulfware/*.h 2>&1 | sed -e "/\/bin\/ls:/d") +-LIBSOURCES = $(shell ls *.c 2>&1 | sed -e "/\/bin\/ls:/d") +-LIBOBJECTS = $(LIBSOURCES:.c=.o) +- +-DEFINES = -DVERSION=$(VERSION) +- +-#======================================================================== +-# Define parameters and directives needed in compile/link steps. +-#======================================================================== +-# C Compiler +-CC = gcc +- +-# Compile flags. -fpic creates "position independent code" for +-# shared libraries! +-CFLAGS = -O3 -I/usr/include/libxml2 -I ../include $(DEFINES) +- +-# Linker flags +-LDFLAGS = -g -fpic --shared -Wl,-soname,$(PROGLIB_SONAME) +- +-# Libraries +-LIBS = -lpthread -lxml2 -lm +- +-#======================================================================== +-# List of variants one can make. all is the default. We always +-# presume the simplest of dependencies and remake if includes change. +-#======================================================================== +-all: $(PROGLIB_SO_VERSION) # $(PROGLIB_A) +- +-# FC "requires" no static lib build/install +-# $(PROGLIB_A): $(LIBOBJECTS) $(LIBINCLUDES) +-# ar r $(PROGLIB_A) $(LIBOBJECTS) +-# ranlib $(PROGLIB_A) +- +-$(PROGLIB_SO_VERSION): $(LIBOBJECTS) $(LIBINCLUDES) +- gcc $(LDFLAGS) -o $(PROGLIB_SO_VERSION) $(LIBOBJECTS) +- ldconfig -n . +- ln -sf $(PROGLIB_SO_VERSION) $(PROGLIB_SO) +- +-#======================================================================== +-# The only safe place to do commits is in the toplevel directory +-#======================================================================== +-svn: +- (cd ..;make svn) +- +-sync: +- (cd ..;make sync) ++## -*- mode: Makefile ; mode: font-lock -*- ++## $Id:$ + +-#======================================================================== +-# printout makes an enscript -2r printout of SOURCES and +-# and INCFILES. Use lpr if you don't have enscript +-#======================================================================== +-# LPR = enscript -2r +-LPR = lpr +-printout: +- $(LPR) $(LIBSOURCES) $(LIBINCLUDES) ++INCLUDES = -I$(top_srcdir)/include ++dist_man_MANS = libwulf.3 + +-#======================================================================== +-# A standard cleanup target +-#======================================================================== +-clean: +- rm -f core $(PROGLIB) $(PROGLIB_NAME) $(LIBOBJECTS) $(PROGMAN).gz ++libwulf_c_sources = connect.c init.c net.c sysvipc.c users.c \ ++wulfhosts_util.c cpuinfo.c llists.c parse.c time.c util.c xml_xtract.c \ ++host.c loadavg.c pids.c update.c version.c xmlsysd_util.c identity.c \ ++meminfo.c stat.c uptime.c wulfhosts.c globals.c + +-#======================================================================== +-# This is critical. For the toplevel rpm build to succeed, +-# make PREFIX=/usr install +-# (run by rpmbuild from the specfile) has to work, in the right order. +-# This target has to install precisely the files required by the +-# specfile for the dieharder package, in precisely the right locations. +-#======================================================================== +-install: $(PROGLIB_SO_VERSION) $(PROGMAN) +- (install -d $(libdir); \ +- install -m 755 $(PROGLIB_SO_VERSION) $(libdir)/$(PROGLIB_SO_VERSION); \ +- ln -sf $(libdir)/$(PROGLIB_SO_VERSION) $(libdir)/$(PROGLIB_SO); \ +- install -d $(includedir)/wulfware; \ +- install -m 644 ../include/wulfware/*.h $(includedir)/wulfware; \ +- install -d $(prefix)/share/man/man3; \ +- gzip -c -9 $(PROGMAN) > $(PROGMAN).gz; \ +- install -m 644 $(DIR).3.gz $(prefix)/share/man/man3) + +-# FC requires no static lib install +-# install -m 755 $(PROGLIB_A) $(libdir)/$(PROGLIB_A); \ +-# ldconfig -n $(libdir); \ +-#======================================================================== +-# We give all generic rules below. Currently we only need a rule for +-# objects. +-#======================================================================== +-%.o:%.c $(LIBINCLUDES) Makefile +- $(CC) -fpic -c $(CFLAGS) $< ++lib_LTLIBRARIES = libwulf.la ++libwulf_la_SOURCES = $(libwulf_c_sources) ++libwulf_la_CFLAGS = @XML_CPPFLAGS@ ++libwulf_la_LDFLAGS = -version-info @WULFWARE_LT_VERSION@ + ++#### +diff -urNad wulfware-2.6.0~/wulf2html/Makefile.am wulfware-2.6.0/wulf2html/Makefile.am +--- wulfware-2.6.0~/wulf2html/Makefile.am 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/wulf2html/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -1,78 +1,35 @@ +-#======================================================================== +-# This is a Makefile for the wulf2html application, part of the +-# overall wulfware package. It has a very abbreviated set of targets. +-# +-# make alone does nothing as a perl script requires no building +-# +-# make clean does nothing (but exists) +-# make install installs application, config files, and a man page +-# make printout prints out all source and include files +-# +-# These two commands execute in the toplevel project directory only. +-# make svn does a svn commit and creates the timestamp $(SVN) +-# make sync does a svn commit and rsyncs to list of hosts +-#======================================================================== +-PROJECT = wulfware +-PROGRAM = wulf2html +-DIR = $(PROGRAM) ++## -*- mode: Makefile ; mode: font-lock -*- ++## Version: $Id: Makefile.am,v 0.0 2007/07/03 23:41:42 mok Exp $ + +-INITD = wulf2html_init.d +-LOOPSCRIPT = wulf2html.sh + HTMLHEADER = cluster_header.html ++LOOPSCRIPT = wulf2html.sh ++INITD = wulf2html_init.d + WULFHOSTS = wulfhosts + +-SVNTREE = $(HOME)/Src/svn-tree +-SVNPATH = $(SVNTREE)/$(PROJECT) +-SVNTIME = $(DIR:=.svn.time) +- +-# This is automagically set in the toplevel build. Do not edit by +-# hand. +-VERSION=@VERSION@ ++EXTRA_DIST = $(HTMLHEADER) $(LOOPSCRIPT) $(INITD) $(WULFHOSTS) + +-#======================================================================== +-# List of variants one can make. all is the default. We always +-# presume the simplest of dependencies and remake if includes change +-# for example. +-#======================================================================== +-all: +- echo "Make all does nothing" ++dist_man_MANS = wulf2html.1 + +-#======================================================================== +-# The only safe place to do commits is in the toplevel directory +-#======================================================================== +-svn: +- (cd ..;make svn) ++dist_bin_SCRIPTS = wulf2html + +-sync: +- (cd ..;make sync) ++# variables to simplify targets below ++wsrc = $(top_srcdir)/wulf2html ++initd = $(DESTDIR)/$(sysconfdir)/init.d ++wulfware = $(DESTDIR)/$(sysconfdir)/wulfware + +-#======================================================================== +-# printout makes an enscript -2r printout of SOURCES and +-# and INCFILES. Use lpr if you don't have enscript +-#======================================================================== +-LPR = enscript -2r +-# LPR = lpr +-printout: +- $(LPR) $(PROGRAM) $(CONFIG) $(WULFHOSTS) ++install-data-hook: + +-#======================================================================== +-# A standard cleanup target +-#======================================================================== +-clean: +- echo "Clean does nothing" ++ $(INSTALL) -d $(initd) ++ $(INSTALL) -d $(wulfware) ++ $(INSTALL) -m 644 $(wsrc)/$(INITD) $(initd)/wulf2html ++ $(INSTALL) -m 644 $(wsrc)/$(LOOPSCRIPT) $(wulfware) ++ $(INSTALL) -m 644 $(wsrc)/$(WULFHOSTS) $(wulfware) ++ $(INSTALL) -m 644 $(wsrc)/$(HTMLHEADER) $(wulfware) + +-install : $(PROGRAM) +- (strip $(PROGRAM);\ +- install -d $(prefix)/bin; \ +- install -m 755 $(PROGRAM) $(prefix)/bin; \ +- install -d $(sysconfdir); \ +- install -d $(sysconfdir)/init.d; \ +- install -m 644 $(INITD) $(sysconfdir)/init.d/wulf2html; \ +- install -d $(sysconfdir)/wulfware; \ +- install -m 644 $(LOOPSCRIPT) $(sysconfdir)/wulfware/; \ +- install -m 644 $(WULFHOSTS) $(sysconfdir)/wulfware/; \ +- install -m 644 $(HTMLHEADER) $(sysconfdir)/wulfware/; \ +- install -d $(prefix)/share/man/man1; \ +- gzip -c -9 $(PROGRAM).1 > $(PROGRAM).1.gz; \ +- install -m 644 $(PROGRAM).1.gz $(prefix)/share/man/man1) ++uninstall-hook: ++ rm -f $(initd)/wulf2html ++ rm -f $(wulfware)/$(LOOPSCRIPT) ++ rm -f $(wulfware)/$(HTMLHEADER) ++ rm -f $(wulfware)/$(WULFHOSTS) + ++#### +diff -urNad wulfware-2.6.0~/wulflogger/Makefile.am wulfware-2.6.0/wulflogger/Makefile.am +--- wulfware-2.6.0~/wulflogger/Makefile.am 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/wulflogger/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -1,124 +1,21 @@ +-#======================================================================== +-# This is a Makefile for the wulfstat application, part of the +-# overall wulfware package. It has a very abbreviated set of targets. +-# +-# make alone should build the application. +-# +-# make clean deletes the application and all object files +-# make install strips and installs application and a man page +-# make printout prints out all source and include files +-# +-# These two commands execute in the toplevel project directory only. +-# make svn does a svn commit and creates the timestamp $(SVN) +-# make sync does a svn commit and rsyncs to list of hosts +-#======================================================================== +-PROJECT = wulfware +-PROGRAM = wulflogger +-DIR = $(PROGRAM) +- +-SVNTREE = $(HOME)/Src/svn-tree +-SVNPATH = $(SVNTREE)/$(PROJECT) +-SVNTIME = $(DIR:=.svn.time) +- +-# This is automagically set in the toplevel build. Do not edit by +-# hand. +-VERSION=@VERSION@ +- +-#======================================================================== +-# Define all sources. Note that we choose to depend on ALL the includes +-# in the include directory, which cannot be empty or this will barf. +-# We also have dependencies that extend to the libdieharder source +-# directory, as we need to force a build if any of them change. +-#======================================================================== +-SRCSOURCES = $(shell ls *.c 2>&1 | sed -e "/\/bin\/ls:/d") +-SRCINCLUDES = $(shell ls *.h 2>&1 | sed -e "/\/bin\/ls:/d") +- +-#======================================================================== +-# This library must be linked, but may exist only in the toplevel +-# wulfware build tree at this point. We have to therefore name it +-# and force a build of it, if necessary. +-# LIBSOURCES = $(shell ls ../libwulf/*.c 2>&1 | sed -e "/\/bin\/ls:/d") +-#======================================================================== +-LIBINCLUDES = $(shell ls ../include/wulfware/*.h 2>&1 | sed -e "/\/bin\/ls:/d") +-PROGLIB_SONAME = ../libwulf/libwulf.so.$(VERSION) +- +-# PROGLIB_SO = $(LIBDIR)/libwulf.so +- +-SOURCES = $(LIBSOURCES) $(SRCSOURCES) +-INCLUDES = $(LIBINCLUDES) $(SRCINCLUDES) +-OBJECTS = $(SRCSOURCES:.c=.o) +- +-DEFINES = -DVERSION=$(VERSION) +- +-#======================================================================== +-# Define parameters and directives needed in compile/link steps. +-#======================================================================== +-# C Compiler +-CC = gcc +- +-# Compile flags +-CFLAGS = -O3 -I/usr/include/libxml2 -I ../include $(DEFINES) +- +-# Linker flags +-LDFLAGS = +- +-# Libraries +-LIBS = -L ../libwulf -lwulf -lpthread -lcurses -lxml2 -lm +- +-#======================================================================== +-# List of variants one can make. all is the default. We always +-# presume the simplest of dependencies and remake if includes change +-# for example. +-#======================================================================== +-all: $(PROGRAM) +- +-$(PROGRAM): $(OBJECTS) $(INCLUDES) $(PROGLIB_SONAME) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) ++## -*- mode: Makefile ; mode: font-lock -*- ++## $Id: Makefile 232 2005-10-02 13:48:54Z mok $ + +-#======================================================================== +-# This won't be executed unless the build is performed in the +-# source tree AND it is not up to date in the $(BUILDDIR) tree. +-#======================================================================== +-$(PROGLIB_SONAME): +- - (cd ../libwulf ;\ +- $(MAKE)) ++INCLUDES = -I$(top_srcdir)/include + +-#======================================================================== +-# The only safe place to do commits is in the toplevel directory +-#======================================================================== +-svn: +- (cd ..;make svn) ++bin_PROGRAMS = wulflogger ++dist_man_MANS = wulflogger.1 + +-sync: +- (cd ..;make sync) ++wulflogger_c_sources = display_values.c parsecl.c quit.c \ ++set_display_dctl_state.c show_status.c startup.c work.c wulflogger.c \ ++xml_display_values.c + +-#======================================================================== +-# printout makes an enscript -2r printout of SOURCES and +-# and INCLUDES. Use lpr if you don't have enscript +-#======================================================================== +-LPR = enscript -2r +-# LPR = lpr +-printout: +- $(LPR) $(SRCSOURCES) $(SRCINCLUDES) + +-#======================================================================== +-# A standard cleanup target +-#======================================================================== +-clean : +- - rm -f core $(PROGRAM) *.o $(PROGRAM).1.gz ++wulflogger_h_sources = commands.h copyright.h llist.h values.h wulflogger.h + +-install : $(PROGRAM) +- (strip $(PROGRAM);\ +- install -d $(prefix)/bin; \ +- install -m 755 $(PROGRAM) $(prefix)/bin; \ +- install -d $(prefix)/share/man/man1; \ +- gzip -c -9 $(PROGRAM).1 > $(PROGRAM).1.gz; \ +- install -m 644 $(PROGRAM).1.gz $(prefix)/share/man/man1) + +-#======================================================================== +-# We give all generic rules below. Currently we only need a rule for +-# objects. +-#======================================================================== +-%.o:%.c $(INCLUDES) Makefile +- $(CC) -c $(CFLAGS) $< ++wulflogger_SOURCES = $(wulflogger_c_sources) $(wulflogger_h_sources) ++wulflogger_CFLAGS = @XML_CPPFLAGS@ -D"VERSION_MAJOR=2" -D"VERSION_MINOR=6" ++wulflogger_LDFLAGS = ../libwulf/libwulf.la @XML_LIBS@ + ++#### +diff -urNad wulfware-2.6.0~/wulfstat/Makefile.am wulfware-2.6.0/wulfstat/Makefile.am +--- wulfware-2.6.0~/wulfstat/Makefile.am 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/wulfstat/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -1,124 +1,19 @@ +-#======================================================================== +-# This is a Makefile for the wulfstat application, part of the +-# overall wulfware package. It has a very abbreviated set of targets. +-# +-# make alone should build the application. +-# +-# make clean deletes the application and all object files +-# make install strips and installs application and a man page +-# make printout prints out all source and include files +-# +-# These two commands execute in the toplevel project directory only. +-# make svn does a svn commit and creates the timestamp $(SVN) +-# make sync does a svn commit and rsyncs to list of hosts +-#======================================================================== +-PROJECT = wulfware +-PROGRAM = wulfstat +-DIR = $(PROGRAM) +- +-SVNTREE = $(HOME)/Src/svn-tree +-SVNPATH = $(SVNTREE)/$(PROJECT) +-SVNTIME = $(DIR:=.svn.time) +- +-# This is automagically set in the toplevel build. Do not edit by +-# hand. +-VERSION=@VERSION@ +- +-#======================================================================== +-# Define all sources. Note that we choose to depend on ALL the includes +-# in the include directory, which cannot be empty or this will barf. +-# We also have dependencies that extend to the libdieharder source +-# directory, as we need to force a build if any of them change. +-#======================================================================== +-SRCSOURCES = $(shell ls *.c 2>&1 | sed -e "/\/bin\/ls:/d") +-SRCINCLUDES = $(shell ls *.h 2>&1 | sed -e "/\/bin\/ls:/d") +- +-#======================================================================== +-# This library must be linked, but may exist only in the toplevel +-# wulfware build tree at this point. We have to therefore name it +-# and force a build of it, if necessary. +-# LIBSOURCES = $(shell ls ../libwulf/*.c 2>&1 | sed -e "/\/bin\/ls:/d") +-#======================================================================== +-LIBINCLUDES = $(shell ls ../include/wulfware/*.h 2>&1 | sed -e "/\/bin\/ls:/d") +-PROGLIB_SONAME = ../libwulf/libwulf.so.$(VERSION) +- +-# PROGLIB_SO = $(LIBDIR)/libwulf.so +- +-SOURCES = $(LIBSOURCES) $(SRCSOURCES) +-INCLUDES = $(LIBINCLUDES) $(SRCINCLUDES) +-OBJECTS = $(SRCSOURCES:.c=.o) +- +-DEFINES = -DVERSION=$(VERSION) +- +-#======================================================================== +-# Define parameters and directives needed in compile/link steps. +-#======================================================================== +-# C Compiler +-CC = gcc +- +-# Compile flags +-CFLAGS = -O3 -I/usr/include/libxml2 -I ../include $(DEFINES) +- +-# Linker flags +-LDFLAGS = +- +-# Libraries +-LIBS = -L ../libwulf -lwulf -lpthread -lcurses -lxml2 -lm +- +-#======================================================================== +-# List of variants one can make. all is the default. We always +-# presume the simplest of dependencies and remake if includes change +-# for example. +-#======================================================================== +-all: $(PROGRAM) +- +-$(PROGRAM): $(OBJECTS) $(INCLUDES) $(PROGLIB_SONAME) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) +- +-#======================================================================== +-# This won't be executed unless the build is performed in the +-# source tree AND it is not up to date in the $(BUILDDIR) tree. +-#======================================================================== +-$(PROGLIB_SONAME): +- - (cd ../libwulf ;\ +- $(MAKE)) +- +-#======================================================================== +-# The only safe place to do commits is in the toplevel directory +-#======================================================================== +-svn: +- (cd ..;make svn) ++## -*- mode: Makefile ; mode: font-lock -*- ++## $Id: Makefile 232 2005-10-02 13:48:54Z mok $ + +-sync: +- (cd ..;make sync) ++INCLUDES = -I$(top_srcdir)/include + +-#======================================================================== +-# printout makes an enscript -2r printout of SOURCES and +-# and INCLUDES. Use lpr if you don't have enscript +-#======================================================================== +-LPR = enscript -2r +-# LPR = lpr +-printout: +- $(LPR) $(SRCSOURCES) $(SRCINCLUDES) ++bin_PROGRAMS = wulfstat ++dist_man_MANS = wulfstat.1 + +-#======================================================================== +-# A standard cleanup target +-#======================================================================== +-clean : +- - rm -f core $(PROGRAM) *.o $(PROGRAM).1.gz ++wulfstat_c_sources = display_values.c parsecl.c quit.c screen.c \ ++select_option.c set_display_dctl_state.c show_status.c startup.c \ ++work.c wulfstat.c xml_display_values.c + +-install : $(PROGRAM) +- (strip $(PROGRAM);\ +- install -d $(prefix)/bin; \ +- install -m 755 $(PROGRAM) $(prefix)/bin; \ +- install -d $(prefix)/share/man/man1; \ +- gzip -c -9 $(PROGRAM).1 > $(PROGRAM).1.gz; \ +- install -m 644 $(PROGRAM).1.gz $(prefix)/share/man/man1) ++wulfstat_h_sources = copyright.h wulfstat.h + +-#======================================================================== +-# We give all generic rules below. Currently we only need a rule for +-# objects. +-#======================================================================== +-%.o:%.c $(INCLUDES) Makefile +- $(CC) -c $(CFLAGS) $< ++wulfstat_SOURCES = $(wulfstat_c_sources) $(wulfstat_h_sources) ++wulfstat_CFLAGS = @XML_CPPFLAGS@ -D"VERSION_MAJOR=2" -D"VERSION_MINOR=5" ++wulfstat_LDFLAGS = ../libwulf/libwulf.la @XML_LIBS@ -lncurses + ++#### +diff -urNad wulfware-2.6.0~/xmlsysd/Makefile.am wulfware-2.6.0/xmlsysd/Makefile.am +--- wulfware-2.6.0~/xmlsysd/Makefile.am 2007-08-26 18:03:50.000000000 +0200 ++++ wulfware-2.6.0/xmlsysd/Makefile.am 2007-08-26 18:04:34.000000000 +0200 +@@ -1,129 +1,24 @@ +-#======================================================================== +-# This is a Makefile for the xmlsysd proc/stat monitor, part of the +-# overall warewulf package. It has a very abbreviated set of targets. +-# +-# make alone should build the application. +-# +-# make clean deletes the application and all object files +-# make install strips and installs application and a man page +-# make printout prints out all source and include files +-# +-# These two commands execute in the toplevel project directory only. +-# make svn does a svn commit and creates the timestamp $(SVN) +-# make sync does a svn commit and rsyncs to list of hosts +-#======================================================================== +-PROJECT = wulfware +-PROGRAM = xmlsysd +-DIR = $(PROGRAM) +- +-#======================================================================== +-# This is essential. The rpmbuild overrides it, but we have to make +-# build "work" when executed only in the source tree directory itself. +-# This isn't easy, since the dependences are more than a bit scattered. +-# We therefore point to the directory one level up, where we should +-# find a ./lib, ./include, ./share and ./bin directory tree from which +-# the various dieharder files will actually be assembled into an rpm +-# with PREFIX=/usr (for example). +-#======================================================================== +-BUILDROOT=../buildroot +-PREFIX=$(BUILDROOT)/usr +-ETCDIR=$(BUILDROOT)/etc +-SBINDIR=$(PREFIX)/sbin +- +-SVNTREE = $(HOME)/Src/svn-tree +-SVNPATH = $(SVNTREE)/$(PROJECT) +-SVNTIME = $(DIR:=.svn.time) +- +-# This is automagically set in the toplevel build. Do not edit by +-# hand. +-VERSION_MAJOR=2 +-VERSION_MINOR=5.0 +-RELEASE=1 +- +-#======================================================================== +-# Define all sources. Note that we choose to depend on ALL the includes +-# in the include directory, which cannot be empty or this will barf. +-# We also have dependencies that extend to the libdieharder source +-# directory, as we need to force a build if any of them change. +-#======================================================================== +-SRCSOURCES = $(shell ls *.c 2>&1 | sed -e "/\/bin\/ls:/d") +-SRCINCLUDES = $(shell ls *.h 2>&1 | sed -e "/\/bin\/ls:/d") +- +-SOURCES = $(LIBSOURCES) $(SRCSOURCES) +-INCLUDES = $(LIBINCLUDES) $(SRCINCLUDES) +-OBJECTS = $(SRCSOURCES:.c=.o) +- +-DEFINES = -DVERSION_MAJOR=$(VERSION_MAJOR) -DVERSION_MINOR=$(VERSION_MINOR) \ +- -DRELEASE=$(RELEASE) +- +-#======================================================================== +-# Define parameters and directives needed in compile/link steps. +-#======================================================================== +-# C Compiler +-CC = gcc +- +-# Compile flags +-CFLAGS = -O3 -I/usr/include/libxml2 $(DEFINES) +- +-# Linker flags +-LDFLAGS = +- +-# Libraries +-LIBS = -lxml2 -lz -lm +- +-#======================================================================== +-# List of variants one can make. all is the default. We always +-# presume the simplest of dependencies and remake if includes change +-# for example. +-#======================================================================== +-all: $(PROGRAM) +- +-$(PROGRAM): $(OBJECTS) $(INCLUDES) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(LIBS) $(OBJECTS) ++## -*- mode: Makefile ; mode: font-lock -*- ++## $Id:$ + +-#======================================================================== +-# The only safe place to do commits is in the toplevel directory +-#======================================================================== +-svn: +- (cd ..;make svn) ++INCLUDES = -I$(top_srcdir)/include ++EXTRA_DIST = xmlsysd.xinetd DESIGN + +-sync: +- (cd ..;make sync) ++sbin_PROGRAMS = xmlsysd ++dist_man_MANS = xmlsysd.8 + +-#======================================================================== +-# printout makes an enscript -2r printout of SOURCES and +-# and INCFILES. Use lpr if you don't have enscript +-#======================================================================== +-LPR = enscript -2r +-# LPR = lpr +-printout: +- $(LPR) $(SRCSOURCES) $(SRCINCLUDES) ++xmlsysd_c_sources = get_proc_cpuinfo.c get_proc_loadavg.c \ ++get_proc_meminfo.c get_proc_net.c get_proc_pids.c get_proc_stat.c \ ++get_proc_sysvipc.c get_proc_uptime.c get_proc_version.c \ ++get_system_identity.c get_system_time.c get_system_users.c llists.c \ ++parsecl.c xmlsysd.c xmlsysd_daemon.c xmlsysd_get_stats.c \ ++xmlsysd_init_stats.c xmlsysd_parse.c xmlsysd_quit.c xmlsysd_send_stats.c \ ++xmlsysd_startup.c xmlsysd_utils.c xmlsysd_work.c + +-#======================================================================== +-# A standard cleanup target +-#======================================================================== +-clean: +- rm -f core $(PROGRAM) $(OBJECTS) $(PROGRAM).1.gz ++xmlsysd_h_sources = commands.h copyright.h list.h xmlsysd.h + +-#======================================================================== +-# Application installation. +-#======================================================================== +-install : $(PROGRAM) +- (strip $(PROGRAM); \ +- install -d $(sbindir); \ +- install -m 755 $(PROGRAM) $(sbindir); \ +- install -d $(sysconfdir); \ +- install -d $(sysconfdir)/xinetd.d; \ +- install -m 755 xmlsysd.xinetd $(sysconfdir)/xinetd.d/xmlsysd; \ +- install -d $(prefix)/share/man/man8; \ +- gzip -c $(PROGRAM).8 > $(PROGRAM).8.gz; \ +- install -m 644 $(PROGRAM).8.gz $(prefix)/share/man/man8; \ +- ) + +-#======================================================================== +-# We give all generic rules below. Currently we only need a rule for +-# objects. +-#======================================================================== +-%.o:%.c $(INCLUDES) +- $(CC) -c $(CFLAGS) $< ++xmlsysd_SOURCES = $(xmlsysd_c_sources) $(xmlsysd_h_sources) ++xmlsysd_CFLAGS = @XML_CPPFLAGS@ -D"VERSION_MAJOR=2" -D"VERSION_MINOR=5" + ++#### --- wulfware-2.6.0.orig/debian/patches/cluster_header.html.dpatch +++ wulfware-2.6.0/debian/patches/cluster_header.html.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## cluster_header.html.dpatch by Morten Kjeldgaard +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad wulfware-2.6.0~/wulf2html/cluster_header.html wulfware-2.6.0/wulf2html/cluster_header.html +--- wulfware-2.6.0~/wulf2html/cluster_header.html 2007-07-11 23:58:25.000000000 +0200 ++++ wulfware-2.6.0/wulf2html/cluster_header.html 2007-08-26 21:18:39.000000000 +0200 +@@ -1,9 +1,9 @@ +

Localhost Statistics

+
+

To create a display for a cluster or LAN, edit +-/etc/wulfware/wulf2html.sh, /etc/wulfware/wulfhosts, and ++/etc/defaults/wulf2html, /etc/wulfware/wulfhosts, and + /etc/wulfware/cluster_header.html (this file) to create a web-browseable +-view of various performance metrics. ++view of various performance metrics.

+
+
    +
  • Load/Performance --- wulfware-2.6.0.orig/debian/patches/get_system_users.c.dpatch +++ wulfware-2.6.0/debian/patches/get_system_users.c.dpatch @@ -0,0 +1,47 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## get_system_users.c.dpatch by Morten Kjeldgaard +## +## DP: This is a general patch to make the get_system_users function +## DP: compile under Darwin. + +@DPATCH@ + +diff --git a/xmlsysd/get_system_users.c b/xmlsysd/get_system_users.c +index 0247645..8412448 100644 +--- a/xmlsysd/get_system_users.c ++++ b/xmlsysd/get_system_users.c +@@ -20,7 +20,11 @@ void get_system_users(xmlNodePtr system) + + int i,numfields; + struct timeval tv; ++#ifdef __APPLE__ ++ struct utmpx *utmpstruct; ++#else + struct utmp *utmpstruct; ++#endif + int numusers = 0; + xmlNodePtr users; + +@@ -34,12 +38,22 @@ void get_system_users(xmlNodePtr system) + */ + + /* count the number of users */ ++#ifdef __APPLE__ ++ setutxent(); ++ while ((utmpstruct = getutxent())) { ++ if((utmpstruct->ut_type == USER_PROCESS) && ++ (utmpstruct->ut_user[0] != '\0')) numusers++; ++ } ++ endutxent(); ++#else + setutent(); + while ((utmpstruct = getutent())) { + if((utmpstruct->ut_type == USER_PROCESS) && + (utmpstruct->ut_name[0] != '\0')) numusers++; + } + endutent(); ++#endif ++ + if(verbose==102){ + fprintf(stderr,"Found %d users.\n",numusers); + } --- wulfware-2.6.0.orig/debian/patches/globals.c.dpatch +++ wulfware-2.6.0/debian/patches/globals.c.dpatch @@ -0,0 +1,35 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## globals.c.dpatch by Morten Kjeldgaard +## +## DP: Patch for the globals problem + +@DPATCH@ + +diff --git a/libwulf/globals.c b/libwulf/globals.c +new file mode 100644 +index 0000000..a726830 +--- /dev/null ++++ b/libwulf/globals.c +@@ -0,0 +1,22 @@ ++/* ++ *======================================================================== ++ * $Id: init.c 88 2004-09-28 22:49:38Z rgb $ ++ * ++ * See copyright in copyright.h and the accompanying file COPYING ++ *======================================================================== ++ */ ++ ++#include "wulfware/libwulf.h" ++ ++/* define library globals here */ ++ ++ char init_buf[K64]; ++ char tmp_buf[K]; ++ char update_buf[K64]; ++ List *hostlist; ++ List *hostrangelist; ++ List *hosttaglist; ++ List *iprangelist; ++ List *tasklist; ++ List *userlist; ++ int localhosts_only; --- wulfware-2.6.0.orig/debian/patches/libwulf_headers.dpatch +++ wulfware-2.6.0/debian/patches/libwulf_headers.dpatch @@ -0,0 +1,87 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## libwulf_headers.dpatch by Morten Kjeldgaard +## +## DP: Patch some libwulf header files to reflect the change +## DP: made to the globals. Also get rid of version.h, which +## DP: is not needed since we use autotools to define the version. + +@DPATCH@ + +diff --git a/include/wulfware/libwulf.h b/include/wulfware/libwulf.h +index a61e76c..093e65f 100644 +--- a/include/wulfware/libwulf.h ++++ b/include/wulfware/libwulf.h +@@ -141,9 +141,9 @@ + * connection/initialization thread and the update thread, as eventually + * they are bound to collide with unpredictable results. + */ +- char init_buf[K64]; +- char update_buf[K64]; ++ extern char init_buf[K64]; ++ extern char update_buf[K64]; + /* + * For parsing attributes etc. + */ +- char tmp_buf[K]; ++ extern char tmp_buf[K]; +diff --git a/include/wulfware/libwulf_wulfhost.h b/include/wulfware/libwulf_wulfhost.h +index 7b228df..3df2e27 100644 +--- a/include/wulfware/libwulf_wulfhost.h ++++ b/include/wulfware/libwulf_wulfhost.h +@@ -65,7 +65,7 @@ + } Dctl; + + /* +- * This struct contains all per-host state information: ++ * This struct contains all per-host State information: + * hostname + * host IP number (character and binary) + * port number +@@ -111,4 +111,4 @@ + * so that we can freely add or delete them. This means that we + * have to walk the list whenever we loop over all hosts. + */ +- List *hostlist; ++extern List *hostlist; +diff --git a/include/wulfware/libwulf_wulfhosts.h b/include/wulfware/libwulf_wulfhosts.h +index 1c1d853..3abe704 100644 +--- a/include/wulfware/libwulf_wulfhosts.h ++++ b/include/wulfware/libwulf_wulfhosts.h +@@ -20,7 +20,7 @@ + * This flag says "connect to localhost only" and skips parsing + * of wulfhosts files in any location. + */ +- int localhosts_only; ++extern int localhosts_only; + + /* + * The following structs exist only to allow and +@@ -50,16 +50,16 @@ + * We keep linked lists of host tags and host ranges and ip ranges + * for parsing wulfhosts. + */ +- List *hosttaglist; +- List *hostrangelist; +- List *iprangelist; ++extern List *hosttaglist; ++extern List *hostrangelist; ++extern List *iprangelist; + + /* + * We'll also want a couple of linked lists for users and tasks to be + * monitored. + */ +- List *userlist; +- List *tasklist; ++extern List *userlist; ++extern List *tasklist; + + /* + * Needed by connect_to_hosts() since it is always a threaded routine +diff --git a/include/wulfware/wulfware_version.h b/include/wulfware/wulfware_version.h +deleted file mode 100644 +index afa5a94..0000000 +--- a/include/wulfware/wulfware_version.h ++++ /dev/null +@@ -1 +0,0 @@ +-#define WULFWARE_VERSION "2.6.0" --- wulfware-2.6.0.orig/debian/patches/xmlsysd.h.dpatch +++ wulfware-2.6.0/debian/patches/xmlsysd.h.dpatch @@ -0,0 +1,37 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## xmlsysd.h.dpatch by Morten Kjeldgaard +## +## DP: Patch xmlsysd.h so the daemon at least _compiles_ on the Mac. + +@DPATCH@ + + +diff --git a/xmlsysd/xmlsysd.h b/xmlsysd/xmlsysd.h +index 64bcef2..d8b5960 100644 +--- a/xmlsysd/xmlsysd.h ++++ b/xmlsysd/xmlsysd.h +@@ -25,11 +25,21 @@ + #include + #include + #include +-#include +-#include ++#ifdef __APPLE__ ++# ifdef __ppc__ ++# define HZ 60 ++# include ++# include ++# include ++# endif ++#endif ++#ifdef __linux__ ++# include ++# include ++# include ++#endif + #include + #include +-#include + #include + #include "copyright.h" + --- wulfware-2.6.0.orig/debian/rules +++ wulfware-2.6.0/debian/rules @@ -0,0 +1,163 @@ +#!/usr/bin/make -f +# -*- mode: makefile; mode: font-lock -*- +# +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. +# +# Modified to make a template file for a multi-binary package with separated +# build-arch and build-indep targets by Bill Allombert 2001 +# Modified to build the wulfware suite by Morten Kjeldgaard june 2007. +# +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +include /usr/share/dpatch/dpatch.make + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + + +configure-stamp: + # Autotools have been patched, so we need to rebuild configure: + test -d config || mkdir config + autoheader \ + && aclocal -I config \ + && libtoolize --force --copy \ + && automake --foreign --add-missing --copy \ + && autoconf + + touch $@ + +config.status: patch-stamp configure-stamp + dh_testdir + + # Configure wulfware now + ./configure --prefix=/usr --sysconfdir=/etc + +build: build-arch build-indep + +build-arch: build-arch-stamp +build-arch-stamp: config.status + dh_testdir + + # Compile wulfware now: + $(MAKE) + touch $@ + +build-indep: build-indep-stamp +build-indep-stamp: config.status + # Nothing special to do here... + touch $@ + +clean: cleanfirst unpatch + dh_testdir + + # This was created by us: + rm -rf config/ + + # This file is left over by the awk script in install_arch: + rm -f xxxxx + + # Yuck. Upstream did not export the tarball using + # make dist, so lots of files are not removed + # after "make distclean". That's why I have to do it + # here. Ugly, but hey, it works! + rm -f include/wulfware/Makefile.in + rm -f include/Makefile.in + rm -f config.sub + rm -f wulfstat/Makefile.in + rm -f wulflogger/Makefile.in + rm -f configure + rm -f config.guess + rm -f xmlsysd/Makefile.in + rm -f wulf2html/Makefile.in + rm -f ltmain.sh + rm -f libwulf/Makefile.in + rm -f aclocal.m4 + rm -f depcomp + rm -f config.h.in + rm -f Makefile.in + +cleanfirst: + # When cleaning, we need to do it before unpatching + # the automake system! + dh_testdir + dh_testroot + rm -f build-stamp + rm -rf configure-stamp + + # clean up after the build process. + test ! -f Makefile || $(MAKE) clean + test ! -f Makefile || $(MAKE) distclean + dh_clean + +install: install-arch install-indep + +install-indep: + dh_installdirs -pwulf2html var/www/wulf2html + dh_install -i --sourcedir=debian/tmp + +install-arch: + dh_testdir + dh_testroot + dh_clean -k -s + dh_installdirs -s + + # This make builds and installs the binary tree in the buildroot + # directory. We sneakily fool make to build it in debian/tmp :-) + + $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + + # Install xmlsysd in /etc/xinetd.d: + mkdir -p debian/tmp/etc/xinetd.d + # Enable execution via xinetd + awk '/disable/ { print "\tdisable\t\t\t= no";next } {print}' < xmlsysd/xmlsysd.xinetd > xxxxx + # Change group -> "nogroup" + awk '/group/ { print "\tgroup\t\t\t= nogroup";next } {print}' < xxxxx > debian/tmp/etc/xinetd.d/xmlsysd + + # Move files from debian/tmp tree to package trees + dh_install -s --sourcedir=debian/tmp + +# Must not depend on anything. This is to be called by +# binary-arch/binary-indep in another 'make' thread. +binary-common: + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples + dh_installinit + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture independant packages using the common target. +binary-indep: build-indep install-indep + $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common + +# Build architecture dependant packages using the common target. +binary-arch: build-arch install-arch + $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common + +binary: binary-arch binary-indep + +.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch cleanfirst +#### --- wulfware-2.6.0.orig/debian/watch +++ wulfware-2.6.0/debian/watch @@ -0,0 +1,10 @@ +# This file is used by uscan (1) to check for upstream updates and more. +# See uscan(1) for format + +# Compulsory line, this is a version 3 file +version=3 + +# +http://www.phy.duke.edu/~rgb/Beowulf/wulfware/wulfware-(.*).tgz + +#### --- wulfware-2.6.0.orig/debian/wulf2html.init +++ wulfware-2.6.0/debian/wulf2html.init @@ -0,0 +1,119 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: wulf2html +# Required-Start: $all +# Required-Stop: $all +# Should-Start: $all +# Should-Stop: $all +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start a cluster monitoring website +# Description: This script starts a cluster monitoring website. +# The directory /var/www/wulf2html is created if +# it does not exist. +### END INIT INFO +# +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/bin/wulf2html +NAME=wulf2html +WULFLOGGER=/usr/bin/wulflogger +WULFCONF=/etc/wulfware +WULFPATH=/var/www/wulf2html +DAEMON_OPTS="-f $WULFCONF/wulfhosts -i $WULFCONF/cluster_header.html" +DESC="Wulfware HTML logger" +# +# The types of displays wanted on webpage +WULFMODES="0 2 3 4 6" +# +# Time in seconds between webpage updates. +WULFDELAY=120 +# +# Interval in seconds between different modes of wulflogger invokations. +# This is to offset invokations so they don't overlap. Adds to boot time! +INTERVAL=2 + + +test -x $DAEMON || exit 0 + +# Load lsb functions +. /lib/lsb/init-functions + + +# Include wulf2html defaults if available +if [ -f /etc/default/wulf2html ] ; then + . /etc/default/wulf2html +fi + +# if dir does not exist, silently create it +test -d $WULFPATH || mkdir --parents --mode=755 $WULFPATH + +set -e + +case "$1" in + start) + log_begin_msg "Starting $DESC: " + # start a daemon for each WULFMODE + for i in $WULFMODES; do + + case $i in + 0) filenm=vmstat.html;; + 1) filenm=loadav.html;; + 2) filenm=memory.html;; + 3) filenm=network.html;; + 4) filenm=cpustat.html;; + 5) filenm=pids.html;; + 6) filenm=jobs.html;; + esac + + start-stop-daemon --start --quiet --background --umask=022 \ + --exec $DAEMON -- -d $WULFDELAY $DAEMON_OPTS -t $i $WULFPATH/${filenm} + log_progress_msg "$i" + sleep $INTERVAL + done + log_end_msg $? + ;; + + stop) + log_begin_msg "Stopping $DESC: " + # stop all our daemons + start-stop-daemon --stop --quiet --oknodo --exec $DAEMON + start-stop-daemon --stop --quiet --oknodo --exec $WULFLOGGER + log_end_msg $? + ;; + + restart|force-reload) + log_begin_msg "Restarting $DESC: " + start-stop-daemon --stop --quiet --oknodo --exec $DAEMON + start-stop-daemon --stop --quiet --oknodo --exec $WULFLOGGER + + for i in $WULFMODES; do + + case $i in + 0) filenm=vmstat.html;; + 1) filenm=loadav.html;; + 2) filenm=memory.html;; + 3) filenm=network.html;; + 4) filenm=cpustat.html;; + 5) filenm=pids.html;; + 6) filenm=jobs.html;; + esac + + start-stop-daemon --start --quiet --background --umask=022 \ + --exec $DAEMON -- -d $WULFDELAY $DAEMON_OPTS -t $i $WULFPATH/${filenm} + log_progress_msg "$i" + sleep $INTERVAL + done + log_end_msg $? + ;; + *) + N=/etc/init.d/$NAME + log_success_msg "Usage: $N {start|stop|restart}" + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# mode: font-lock +# End: --- wulfware-2.6.0.orig/debian/wulf2html.install +++ wulfware-2.6.0/debian/wulf2html.install @@ -0,0 +1,2 @@ +usr/bin/wulf2html +etc/wulfware/*.html --- wulfware-2.6.0.orig/debian/wulf2html.manpages +++ wulfware-2.6.0/debian/wulf2html.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/wulf2html.1 --- wulfware-2.6.0.orig/debian/wulf2html.postrm +++ wulfware-2.6.0/debian/wulf2html.postrm @@ -0,0 +1,43 @@ +#!/bin/sh +# postrm script for #PACKAGE# +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + "remove") + rm -rf /var/www/wulf2html + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- wulfware-2.6.0.orig/debian/wulflogger.install +++ wulfware-2.6.0/debian/wulflogger.install @@ -0,0 +1 @@ +usr/bin/wulflogger --- wulfware-2.6.0.orig/debian/wulflogger.manpages +++ wulfware-2.6.0/debian/wulflogger.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/wulflogger.1 --- wulfware-2.6.0.orig/debian/wulfstat.install +++ wulfware-2.6.0/debian/wulfstat.install @@ -0,0 +1 @@ +usr/bin/wulfstat --- wulfware-2.6.0.orig/debian/wulfstat.manpages +++ wulfware-2.6.0/debian/wulfstat.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/wulfstat.1 --- wulfware-2.6.0.orig/debian/xmlsysd.docs +++ wulfware-2.6.0/debian/xmlsysd.docs @@ -0,0 +1 @@ +debian/README.Debian --- wulfware-2.6.0.orig/debian/xmlsysd.install +++ wulfware-2.6.0/debian/xmlsysd.install @@ -0,0 +1,2 @@ +usr/sbin +etc/xinetd.d --- wulfware-2.6.0.orig/debian/xmlsysd.manpages +++ wulfware-2.6.0/debian/xmlsysd.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man8/xmlsysd.8 --- wulfware-2.6.0.orig/debian/xmlsysd.postinst +++ wulfware-2.6.0/debian/xmlsysd.postinst @@ -0,0 +1,61 @@ +#!/bin/sh +# postinst script for xmlsysd +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + + # We need to put an entry into /etc/inetd.conf even if xinetd is + # present, since the user may revert to an older inetd. The + # update-inetd script also restarts the inetd server. + + if [ -x /usr/sbin/update-inetd ]; then + update-inetd --group "OTHER" --add "xmlsysd stream tcp nowait nobody /usr/sbin/xmlsysd xmlsysd" + fi + + # The package just puts an entry for xinetd in /etc/xinet.d, whether or + # not it's present. + if [ -x /usr/sbin/xinetd ]; then + # if xinetd is present, restart it. We disregard the warning + # that has been issued by update-inetd + test ! -x /usr/sbin/update-inetd || echo "Never mind above warning, it's been taken care of..." >&2 + invoke-rc.d xinetd restart + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + +# Local variables: +# mode: font-lock +# End: +#### --- wulfware-2.6.0.orig/debian/xmlsysd.postrm +++ wulfware-2.6.0/debian/xmlsysd.postrm @@ -0,0 +1,59 @@ +#!/bin/sh +# postrm script for xmlsysd +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove) + + # get rid of the xmlsysd entry in inetd.conf, the update-inetd + # script also restarts the inetd server (but not xinetd) + + test -x /usr/sbin/update-inetd && update-inetd --remove "xmlsysd" + + if [ -x /usr/sbin/xinetd ]; then + + # if xinetd is present, get rid of the xmlsysd entry, + # then restart the server + + rm -f /etc/xinetd.d/xmlsysd + invoke-rc.d xinetd restart + fi + ;; + + purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + +# Local variables: +# mode: font-lock +# End: +####