merged split packaging (-lib and -vs) from master, add a 3rd one for lxc
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 26 Jun 2012 07:36:41 +0000 (09:36 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 26 Jun 2012 07:36:41 +0000 (09:36 +0200)
Makefile
nodemanager-lib.spec [moved from NodeManager.spec with 97% similarity]
nodemanager-lxc.spec [new file with mode: 0644]
nodemanager-vs.spec [new file with mode: 0644]
setup-lib.py [moved from setup.py with 92% similarity]
setup-lxc.py [new file with mode: 0644]
setup-vs.py [new file with mode: 0644]

index fb12a5b..b137434 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,29 +5,49 @@
 # 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
similarity index 97%
rename from NodeManager.spec
rename to nodemanager-lib.spec
index b6442ae..3fd5b9c 100644 (file)
@@ -1,13 +1,13 @@
 %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}
@@ -24,24 +24,16 @@ URL: %{SCMURL}
 # 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
@@ -49,18 +41,20 @@ slice management once the node has been initialized and configured by
 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)
diff --git a/nodemanager-lxc.spec b/nodemanager-lxc.spec
new file mode 100644 (file)
index 0000000..f672601
--- /dev/null
@@ -0,0 +1,55 @@
+# 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
diff --git a/nodemanager-vs.spec b/nodemanager-vs.spec
new file mode 100644 (file)
index 0000000..e0575c6
--- /dev/null
@@ -0,0 +1,60 @@
+# 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
similarity index 92%
rename from setup.py
rename to setup-lib.py
index 75f2bd3..32fc7a8 100644 (file)
--- a/setup.py
@@ -29,9 +29,6 @@ setup(
         'nodemanager',
         'plcapi',
         'safexmlrpc',
-        'sliver_libvirt',
-        'sliver_lxc',
-        'sliver_vs',
         'slivermanager',
         'ticket',
         'tools',
diff --git a/setup-lxc.py b/setup-lxc.py
new file mode 100644 (file)
index 0000000..7948e0f
--- /dev/null
@@ -0,0 +1,20 @@
+#!/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 =[
+        ],
+    )
diff --git a/setup-vs.py b/setup-vs.py
new file mode 100644 (file)
index 0000000..a2032dc
--- /dev/null
@@ -0,0 +1,19 @@
+#!/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 =[
+        ],
+    )