# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: Makefile,v 1.2 2006/11/13 20:04:44 mlhuang Exp $
-#
# autoconf compatible variables
datadir := /usr/share
bindir := /usr/bin
-all: forward_api_calls
- python setup.py build
+lib: forward_api_calls
+ python setup-lib.py build
+
+vs:
+ python setup-vs.py build
+
+lxc:
+ python setup-lxc.py build
forward_api_calls: forward_api_calls.c
$(CC) -Wall -Os -o $@ $?
strip $@
-install:
- python setup.py install \
+install-lib:
+ python setup-lib.py install \
+ --install-purelib=$(DESTDIR)/$(datadir)/NodeManager \
+ --install-platlib=$(DESTDIR)/$(datadir)/NodeManager \
+ --install-scripts=$(DESTDIR)/$(bindir)
+ install -m 444 README $(DESTDIR)/$(datadir)/NodeManager
+
+install-vs:
+ python setup-vs.py install \
+ --install-purelib=$(DESTDIR)/$(datadir)/NodeManager \
+ --install-platlib=$(DESTDIR)/$(datadir)/NodeManager \
+ --install-scripts=$(DESTDIR)/$(bindir)
+ install -m 444 README $(DESTDIR)/$(datadir)/NodeManager
+
+install-lxc:
+ python setup-lxc.py install \
--install-purelib=$(DESTDIR)/$(datadir)/NodeManager \
--install-platlib=$(DESTDIR)/$(datadir)/NodeManager \
--install-scripts=$(DESTDIR)/$(bindir)
install -m 444 README $(DESTDIR)/$(datadir)/NodeManager
clean:
- python setup.py clean
+ python setup-lib.py clean
+ python setup-vs.py clean
+ python setup-lxc.py clean
rm -f forward_api_calls *.pyc build
.PHONY: all install clean
%define slicefamily %{pldistro}-%{distroname}-%{_arch}
-%define name NodeManager
+%define name nodemanager-lib
%define version 2.1
%define taglevel 3
%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
%global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" )
-Summary: PlanetLab Node Manager
+Summary: PlanetLab Node Manager Library
Name: %{name}
Version: %{version}
Release: %{release}
# not possible because of forward_api_calls
#BuildArch: noarch
-# old name
-#Obsoletes: sidewinder, sidewinder-common
-
# Uses function decorators
Requires: python >= 2.4
# connecting PLC
Requires: python-pycurl
# Signed tickets
Requires: gnupg
-# vserver-sliceimage or lxc-sliceimage to be added explicitly in nodeimage.pkgs
-# we do need the slice images in any case
-Requires: sliceimage-%{slicefamily}
-# our interface to the vserver patch
-#Requires: util-vserver >= 0.30.208-17
-# vserver.py
-#Requires: util-vserver-python > 0.3-16
# sioc/plnet
Requires: pyplnet >= 4.3
+# we do need the slice images in any case
+Requires: sliceimage-%{slicefamily}
%description
The PlanetLab Node Manager manages all aspects of PlanetLab node and
the Boot Manager. It periodically contacts its management authority
for configuration updates. It provides an XML-RPC API for performing
local operations on slices.
+nodemanager-lib only provides a skeleton and needs as a companion
+either nodemanager-vs or nodemanager-lxc
%prep
%setup -q
%build
# make manages the C and Python stuff
-%{__make} %{?_smp_mflags}
+%{__make} %{?_smp_mflags} lib
%install
# make manages the C and Python stuff
rm -rf $RPM_BUILD_ROOT
-%{__make} %{?_smp_mflags} install DESTDIR="$RPM_BUILD_ROOT"
+%{__make} %{?_smp_mflags} install-lib DESTDIR="$RPM_BUILD_ROOT"
PYTHON_SITEARCH=`python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib(1)'`
# install the sliver initscript (that triggers the slice initscript if any)
--- /dev/null
+# we define this in a separate specfile because we cannot produce all the 3 packages
+# nodemanager-lib nodemanager-vs nodemanager-lxc in a single build
+
+%define slicefamily %{pldistro}-%{distroname}-%{_arch}
+
+%define name nodemanager-lxc
+%define version 2.1
+%define taglevel 3
+
+%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+
+Summary: PlanetLab Node Manager Plugin for lxc nodes
+Name: %{name}
+Version: %{version}
+Release: %{release}
+License: PlanetLab
+Group: System Environment/Daemons
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+Vendor: PlanetLab
+Packager: PlanetLab Central <support@planet-lab.org>
+Distribution: PlanetLab %{plrelease}
+URL: %{SCMURL}
+
+# we use libvirt
+Requires: libvirt-python
+# the common package for nodemanager
+Requires: nodemanager-lib
+# the lxc-specific tools for using slice images
+Requires: lxc-sliceimage
+
+%description
+nodemanager-lxc provides the lxc code for the PlanetLab Node Manager.
+
+%prep
+%setup -q
+
+%build
+# make manages the C and Python stuff
+%{__make} %{?_smp_mflags} lxc
+
+%install
+# make manages the C and Python stuff
+rm -rf $RPM_BUILD_ROOT
+%{__make} %{?_smp_mflags} install-lxc DESTDIR="$RPM_BUILD_ROOT"
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%{_datadir}/NodeManager/
+
+%changelog
--- /dev/null
+# we define this in a separate specfile because we cannot produce all the 3 packages
+# nodemanager-lib nodemanager-vs nodemanager-lxc in a single build
+
+%define slicefamily %{pldistro}-%{distroname}-%{_arch}
+
+%define name nodemanager-vs
+%define version 2.1
+%define taglevel 3
+
+%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+
+Summary: PlanetLab Node Manager Plugin for vserver nodes
+Name: %{name}
+Version: %{version}
+Release: %{release}
+License: PlanetLab
+Group: System Environment/Daemons
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+Vendor: PlanetLab
+Packager: PlanetLab Central <support@planet-lab.org>
+Distribution: PlanetLab %{plrelease}
+URL: %{SCMURL}
+
+# old name, when all came as a single package with vserver wired in
+Obsoletes: NodeManager
+
+# our interface to the vserver patch
+Requires: util-vserver >= 0.30.208-17
+# and the planetlab utilities
+Requires: util-vserver-python > 0.3-16
+# the common package for nodemanager
+Requires: nodemanager-lib
+# the vserver-specific tools for using slice images
+Requires: vserver-sliceimage
+
+%description
+nodemanager-vs provides the vserver code for the PlanetLab Node Manager.
+
+%prep
+%setup -q
+
+%build
+# make manages the C and Python stuff
+%{__make} %{?_smp_mflags} vs
+
+%install
+# make manages the C and Python stuff
+rm -rf $RPM_BUILD_ROOT
+%{__make} %{?_smp_mflags} install-vs DESTDIR="$RPM_BUILD_ROOT"
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%{_datadir}/NodeManager/
+
+%changelog
'nodemanager',
'plcapi',
'safexmlrpc',
- 'sliver_libvirt',
- 'sliver_lxc',
- 'sliver_vs',
'slivermanager',
'ticket',
'tools',
--- /dev/null
+#!/usr/bin/python
+#
+# Setup script for the Node Manager application
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+
+from distutils.core import setup, Extension
+
+setup(
+ py_modules=[
+ 'sliver_libvirt',
+ 'sliver_lxc',
+ ],
+ scripts = [
+ ],
+ packages =[
+ ],
+ )
--- /dev/null
+#!/usr/bin/python
+#
+# Setup script for the Node Manager application
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+
+from distutils.core import setup, Extension
+
+setup(
+ py_modules=[
+ 'sliver_vs',
+ ],
+ scripts = [
+ ],
+ packages =[
+ ],
+ )