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.0
-%define taglevel 37
+%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}
%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)
mkdir -p $RPM_BUILD_ROOT/usr/share/NodeManager/sliver-initscripts/
--- /dev/null
--- /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
-# nodemanager-lib nodemanager-vs nodemanager-vs in a single build
+ # we define this in a separate specfile because we cannot produce all the 3 packages
-%define version 2.0
-%define taglevel 37
++# nodemanager-lib nodemanager-vs nodemanager-lxc in a single build
+
+ %define slicefamily %{pldistro}-%{distroname}-%{_arch}
+
+ %define name nodemanager-vs
-# Uses function decorators
-Requires: nodemanager-lib
-# vserver-sliceimage or lxc-sliceimage to be added explicitly in nodeimage.pkgs
-Requires: vserver-sliceimage
++%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
+
-# vserver.py
+ # 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
--- /dev/null
--- /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 =[
++ ],
++ )