From: Thierry Parmentelat Date: Tue, 26 Jun 2012 07:36:41 +0000 (+0200) Subject: merged split packaging (-lib and -vs) from master, add a 3rd one for lxc X-Git-Tag: nodemanager-2.1-4~3 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f699ab76a8c8a5ba09d2286a833a8a05ecf8564c;hp=8086bff6f5a208753715ae44cf2a6df1041e4ed4;p=nodemanager.git merged split packaging (-lib and -vs) from master, add a 3rd one for lxc --- diff --git a/Makefile b/Makefile index fb12a5b..b137434 100644 --- a/Makefile +++ b/Makefile @@ -5,29 +5,49 @@ # Mark Huang # 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 diff --git a/NodeManager.spec b/nodemanager-lib.spec similarity index 97% rename from NodeManager.spec rename to nodemanager-lib.spec index b6442ae..3fd5b9c 100644 --- a/NodeManager.spec +++ b/nodemanager-lib.spec @@ -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 index 0000000..f672601 --- /dev/null +++ b/nodemanager-lxc.spec @@ -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 +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 index 0000000..e0575c6 --- /dev/null +++ b/nodemanager-vs.spec @@ -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 +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 diff --git a/setup.py b/setup-lib.py similarity index 92% rename from setup.py rename to setup-lib.py index 75f2bd3..32fc7a8 100644 --- a/setup.py +++ b/setup-lib.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 index 0000000..7948e0f --- /dev/null +++ b/setup-lxc.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# +# Setup script for the Node Manager application +# +# Mark Huang +# 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 index 0000000..a2032dc --- /dev/null +++ b/setup-vs.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# +# Setup script for the Node Manager application +# +# Mark Huang +# Copyright (C) 2006 The Trustees of Princeton University +# + +from distutils.core import setup, Extension + +setup( + py_modules=[ + 'sliver_vs', + ], + scripts = [ + ], + packages =[ + ], + )