X-Git-Url: http://git.onelab.eu/?p=myplc.git;a=blobdiff_plain;f=myplc.spec;h=8151677feaccf77f70d890c90ba63491b662a027;hp=50f6c132da73b1018a4f1ca739aea7c8fd2fd374;hb=cf713cae0012e3758a1a8ed003b0cb7f1527837a;hpb=f8902a21c65a218797ac104f9ccbe1c9c30b19ff diff --git a/myplc.spec b/myplc.spec index 50f6c13..8151677 100644 --- a/myplc.spec +++ b/myplc.spec @@ -1,20 +1,14 @@ -# -# $Id$ -# -%define url $URL$ - %define name myplc -%define version 4.3 -%define taglevel 15 +%define version 5.1 +%define taglevel 5 %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 Central (PLC) Portable Installation Name: %{name} Version: %{version} Release: %{release} License: PlanetLab -Group: Applications/Systems Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch @@ -22,9 +16,16 @@ BuildArch: noarch Vendor: PlanetLab Packager: PlanetLab Central Distribution: PlanetLab %{plrelease} -URL: %(echo %{url} | cut -d ' ' -f 2) +URL: %{SCMURL} + +%define nodefamily %{pldistro}-%{distroname}-%{_arch} + +####################### myplc +Summary: PlanetLab Central (PLC) Portable Installation +Group: Applications/Systems # as much as possible, requires should go in the subpackages specfile +Requires: redhat-lsb Requires: bzip2 Requires: tar Requires: less @@ -36,7 +37,6 @@ Requires: php-pgsql Requires: curl Requires: rsync Requires: python-devel -Requires: vixie-cron Requires: yum Requires: PyXML Requires: createrepo @@ -51,33 +51,47 @@ Requires: vim-minimal Requires: findutils Requires: xmlsec1 Requires: xmlsec1-openssl +Requires: ed +%if "%{distro}" == "Fedora" && %{distrorelease} >= 10 +Requires: cronie +%else +Requires: vixie-cron +%endif # planetlab stuff Requires: bootmanager -Requires: bootcd-%{pldistro}-%{_arch} +Requires: bootcd-%{nodefamily} +Requires: bootcd-initscripts Requires: PLCWWW Requires: www-register-wizard Requires: nodeconfig +Requires: nodeyum Requires: PLCAPI -Requires: monitor-pcucontrol -Requires: bootstrapfs-%{pldistro}-%{_arch} +Requires: nodeimage-%{nodefamily} Requires: myplc-docs Requires: myplc-release - -# argh - ugly - we might wish to use something from build/config.%{pldistro} instead -%if "%{pldistro}" == "onelab" -Requires: dummynet_image -%endif +Requires: myplc-config %define debug_package %{nil} -%description -MyPLC is a complete PlanetLab Central (PLC) portable installation -contained within a chroot jail. The default installation consists of a -web server, an XML-RPC API server, a boot server, and a database -server: the core components of PLC. The installation may be customized -through a graphical interface. All PLC services are started up and -shut down through a single System V init script installed in the host -system. +%description +MyPLC is a complete PlanetLab Central (PLC) portable installation. +The default installation consists of a web server, an XML-RPC API +server, a boot server, and a database server: the core components of +PLC. The installation may be customized through a graphical +interface. All PLC services are started up and shut down through a +single System V init script. + +####################### myplc-config + +%package config + +Summary: PlanetLab Central (PLC) configuration python module +Group: Applications/Systems +Requires: python + +%description config +This package provides the Python module to configure MyPLC. + %prep %setup -q @@ -85,25 +99,61 @@ system. %build %install -pushd MyPLC rm -rf $RPM_BUILD_ROOT -./build.sh %{pldistro} $RPM_BUILD_ROOT -popd + +# Install configuration scripts +echo "* Installing plc_config.py in " ${PYTHON_SITEARCH} +PYTHON_SITEARCH=`python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib(1)'` +install -D -m 755 plc_config.py ${RPM_BUILD_ROOT}/${PYTHON_SITEARCH}/plc_config.py + +echo "* Installing scripts in /usr/bin" +mkdir -p ${RPM_BUILD_ROOT}/usr/bin +rsync -av --exclude .svn bin/ ${RPM_BUILD_ROOT}/usr/bin/ +(cd $RPM_BUILD_ROOT/usr/bin; ln -s mtail.py mtail) +chmod 755 ${RPM_BUILD_ROOT}/usr/bin/* + +# Install initscript +echo "* Installing plc initscript" +install -D -m 755 plc.init ${RPM_BUILD_ROOT}/etc/init.d/plc +install -D -m 644 plc.service ${RPM_BUILD_ROOT}/lib/systemd/system/plc.service + +# Install initscripts +echo "* Installing plc.d initscripts" +find plc.d | cpio -p -d -u ${RPM_BUILD_ROOT}/etc/ +chmod 755 ${RPM_BUILD_ROOT}/etc/plc.d/* + +# Install db-config.d files +echo "* Installing db-config.d files" +mkdir -p ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d +cp db-config.d/* ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d +chmod 444 ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d/* + +# Extra scripts (mostly for mail and dns) not installed by myplc by default. Used in production +echo "* Installing scripts in /etc/support-scripts" +mkdir -p ${RPM_BUILD_ROOT}/etc/support-scripts +cp support-scripts/* ${RPM_BUILD_ROOT}/etc/support-scripts +chmod 444 ${RPM_BUILD_ROOT}/etc/support-scripts/* + +# copy initscripts to etc/plc_sliceinitscripts +mkdir -p ${RPM_BUILD_ROOT}/etc/plc_sliceinitscripts +cp plc_sliceinitscripts/* ${RPM_BUILD_ROOT}/etc/plc_sliceinitscripts +chmod 444 ${RPM_BUILD_ROOT}/etc/plc_sliceinitscripts/* + +# Install configuration file +echo "* myplc: Installing configuration file" +install -D -m 444 plc_config.dtd ${RPM_BUILD_ROOT}/etc/planetlab/plc_config.dtd +sed -e "s,@PLDISTRO@,%{pldistro},g" -e "s,@FCDISTRO@,%{distroname},g" -e "s,@ARCH@,%{_arch},g" \ + default_config.xml > ${RPM_BUILD_ROOT}/etc/planetlab/default_config.xml +chmod 444 ${RPM_BUILD_ROOT}/etc/planetlab/default_config.xml + +echo "* Installing bashrc convenience" +install -D -m 644 bashrc ${RPM_BUILD_ROOT}/usr/share/myplc/bashrc + +# yumgroups.xml and yum repo : let noderepo handle that %clean rm -rf $RPM_BUILD_ROOT -# If run under sudo -if [ -n "$SUDO_USER" ] ; then - # Allow user to delete the build directory - chown -h -R $SUDO_USER . - # Some temporary cdroot files like /var/empty/sshd and - # /usr/bin/sudo get created with non-readable permissions. - find . -not -perm +0600 -exec chmod u+rw {} \; - # Allow user to delete the built RPM(s) - [ -d %{_rpmdir}/noarch ] && chown -h -R $SUDO_USER %{_rpmdir}/noarch -fi - %pre if [ -x %{_sysconfdir}/init.d/plc ] ; then %{_sysconfdir}/init.d/plc stop @@ -144,10 +194,6 @@ if [ -x /sbin/chkconfig ] ; then /sbin/chkconfig --add plc /sbin/chkconfig plc on fi -pushd /usr/share/myplc &> /dev/null -python plc_config.py build -python plc_config.py install -popd &> /dev/null %triggerpostun -- %{name} # 0 = erase, 1 = upgrade @@ -179,29 +225,228 @@ fi /etc/init.d/plc /etc/plc.d /etc/planetlab -/etc/plc_sliceinitscripts/sirius -/etc/support-scripts/gen_aliases.py* -/etc/support-scripts/renew_reminder.py* -/etc/support-scripts/renew_reminder_logrotate -/usr/bin/plc-config +/etc/plc_sliceinitscripts +/etc/support-scripts +/usr/share/myplc/bashrc +# keep a detailed list, to avoid duplicate of plc-config, +# that belongs to the myplc-config rpm /usr/bin/plc-config-tty /usr/bin/db-config /usr/bin/dns-config +/usr/bin/refresh-peer.py* +/usr/bin/mtail.py* +/usr/bin/mtail /usr/bin/plc-map.py* /usr/bin/plc-kml.py* -/usr/bin/refresh-peer.py* /usr/bin/clean-empty-dirs.py* -/usr/bin/mtail.py* /usr/bin/plc-check-ssl-peering.py* /usr/bin/plc-orphan-accounts.py* -/usr/share/myplc +/usr/bin/spot-aliens.py* +/usr/bin/check-hrns.py* +/usr/bin/check-vsys-defaults.py* +/usr/bin/spot-dup-accounts.sh +/lib/systemd/system/plc.service + +%files config +%defattr(-,root,root,-) +/usr/bin/plc-config +%{python_sitearch}/plc_config.py* + %changelog +* Wed Dec 19 2012 Thierry Parmentelat - myplc-5.1-5 +- define open_basedir in php.ini to stop confidentiality leak +- new utility slice_ssh_keys.py for showing sliver keys (OMF interop) +- new config setting PLC_VSYS_DEFAULTS for vsys tags granted to all +- new utilities check-hrns.py and check-vsys-defaults.py + +* Fri Aug 31 2012 Thierry Parmentelat - myplc-5.1-4 +- set TimeoutSec to 300 in plc.service +- remove ref to deprecated svn $URL$ in db-config usage + +* Mon Jul 09 2012 Thierry Parmentelat - myplc-5.1-3 +- expose mtail.py as simply mtail + +* Mon May 07 2012 Thierry Parmentelat - myplc-5.1-2 +- plc-kml.py now has support for nodegroups + +* Mon Apr 16 2012 Thierry Parmentelat - myplc-5.1-1 +- use nodeimage package instead of deprecated bootstrapfs +- has systemd-friendly startup script +- plc_reload moved to functions/ - no more service plc reload +- no svn keywords anymore + +* Mon Sep 26 2011 Thierry Parmentelat - myplc-5.0-19 +- new maintenance/monitoring script spot-aliens to look for glitches in refreshpeer+sfa + +* Tue Jun 07 2011 Thierry Parmentelat - myplc-5.0-18 +- new settings for myslice (comon&tophat) and monitor (db) +- removed mentions of chroot in description +- can redo myplc-docs on broken f12-latex +- set short_open_tag in php.ini +- fixes in gen-sites-xml (is that still used ?) +- partial-repo.sh has moved to 'build' where it more belongs +- tweaks in convenience tool 'mtail' + +* Tue Mar 22 2011 Thierry Parmentelat - myplc-5.0-17 +- fixed changelog, no change from 5.0-16 + +* Mon Mar 21 2011 Thierry Parmentelat - myplc-5.0-16 +- requires ed for the plc.d/packages step +- sirius initscript to handle stop and restart + +* Fri Feb 04 2011 Thierry Parmentelat - myplc-5.0-15 +- ignore steps in db-config.d if they have a '.' or '~' in their name + +* Wed Jan 26 2011 Thierry Parmentelat - myplc-5.0-14 +- can redo myplc-docs without the doc for monitor + +* Mon Jan 24 2011 Thierry Parmentelat - myplc-5.0-13 +- no semantic change - just fixed specfile for git URL + +* Wed Dec 01 2010 Thierry Parmentelat - myplc-5.0-12 +- needed for plcapi-5.0-19, i.e. tag permissions based on roles + +* Mon Oct 04 2010 Baris Metin - myplc-5.0-11 +- add missing files to rpm package + +* Mon Oct 04 2010 Thierry Parmentelat - myplc-5.0-10 +- mtail.py -s for SFA +- spot-aliesm.py is a utility script for sanity checks of the PLC db when running refreshpeer+sfa + +* Thu Jul 15 2010 Thierry Parmentelat - myplc-5.0-9 +- avoid duplication of the plc-config binary in both myplc and myplc-config rpms + +* Mon Jul 12 2010 Thierry Parmentelat - myplc-5.0-8 +- plc-config-tty now has a validator on booleans +- e.g. entering 'True' now is rejected rather than silently recording 'false' + +* Tue Jul 06 2010 Baris Metin - MyPLC-5.0-7 +- disable mod_wsgi + +* Mon Jul 05 2010 Baris Metin - MyPLC-5.0-6 +- module name changes +- start wsgi support + +* Tue Jun 22 2010 Thierry Parmentelat - MyPLC-5.0-5 +- new setting PLC_RESERVATION_GRANULARITY + +* Wed May 12 2010 Talip Baris Metin - MyPLC-5.0-4 +- * partial-repo.sh script +- * preserve key along with certificates + +* Fri Apr 02 2010 Thierry Parmentelat - MyPLC-5.0-3 +- set date.timezone to GMT if not set in php.ini for php-5.3 / fedora12 + +* Fri Mar 12 2010 Thierry Parmentelat - MyPLC-5.0-2 +- legacy scripts gen-sites-xml & gen-static-content back in (sigh) +- new OMF category in the config +- create the drl system slice + +* Fri Jan 29 2010 Thierry Parmentelat - MyPLC-5.0-1 +- first working version of 5.0: +- pld.c/, db-config.d/ and nodeconfig/ scripts should now sit in the module they belong to +- nodefamily is 3-fold with pldistro-fcdistro-arch +- new PLC_FLAVOUR config category +- reviewed module layout +- cleaned up old chroot-related build stuff (does not need the build module when building anymore) + +* Sat Jan 09 2010 Thierry Parmentelat - MyPLC-4.3-37 +- support for fedora 12 +- new package myplc-config for use by sfa +- drupal user registration turned off + +* Thu Dec 31 2009 Marc Fiuczynski - MyPLC-4.3-36 +- - fix to make sure when API, BOOT, MONITOR are on the same +- machine as WWW that the SSL key,cert for WWW takes precedence. +- - Do proper setup for SSL CA certficate to be used as the server +- chain. + +* Wed Dec 23 2009 Marc Fiuczynski - MyPLC-4.3-35 +- - Change sysctl.conf source to be PlanetLabConfsysctl.con rather than the php script. + +* Tue Dec 22 2009 Baris Metin - MyPLC-4.3-34 +- depend on pcucontrol + +* Fri Dec 18 2009 Baris Metin - MyPLC-4.3-33 +- * validate input according to type in plc_config +- * added the _genicw system slice +- * add tag types for sites and persons +- * add new tags for nodes and slices for exemption from myops + +* Thu Nov 26 2009 Thierry Parmentelat - MyPLC-4.3-32 +- turn off drupal on a box that acts as BOOT server but not as WWW server +- cleanup some obsolete code for old chroot-jail packaging in the process +- new bootcd-kernel script for keeping bootcd variants up2date + +* Mon Nov 09 2009 Daniel Hokka Zakrisson - MyPLC-4.3-31 +- Make the /etc/hosts manipulation optional. + +* Thu Nov 05 2009 Daniel Hokka Zakrisson - MyPLC-4.3-30 +- Fix SetRole. + +* Tue Nov 03 2009 Marc Fiuczynski - MyPLC-4.3-29 +- - Added "SetRole()" so that db-config.d/ scriplets can insert roles +- into the DB. +- - Added the root ssh key handling support back into plc.d/ssh and the +- default xml file. This should be identical to the way it was in +- rc12. +- - Added support in the db-config.d/01-init script to register the root +- ssh public key with the default administrator. In this way the root +- ssh key will make it into the root account on the nodes by means of +- NodeManager's specialaccounts plugin. + +* Tue Oct 20 2009 Thierry Parmentelat - MyPLC-4.3-28 +- db-config ignores sliver tags +- sirius's db-config script renamed (was sirious) + +* Tue Oct 13 2009 Thierry Parmentelat - MyPLC-4.3-27 +- fix for silverauth - missing tag types now created at plc startup time + +* Fri Oct 09 2009 Thierry Parmentelat - MyPLC-4.3-26 +- plc.d/ssl preserves SSL certificates when it thinkfs they're obsolete + +* Wed Oct 07 2009 Thierry Parmentelat - MyPLC-4.3-25 +- companion to NM's specialaccounts plugin +- do not generate /etc/planetlab/root_ssh_key* anymore +- remove related config. variables and conf_files + +* Sun Sep 20 2009 Stephen Soltesz - MyPLC-4.3-24 +- clarified description text to refer only to plcrt and not other optional +- packages. + +* Sat Sep 19 2009 Stephen Soltesz - MyPLC-4.3-23 +- fixed a bug setting slice multiple attributes with the same tag name + +* Mon Sep 07 2009 Thierry Parmentelat - MyPLC-4.3-22 +- SSL setup for monitor box, and related new config variables +- new conf_file for /etc/planetlab/extensions +- various tweaks in db-config internals, about initscripts among others +- also more messages defined in the db + +* Tue Jul 07 2009 Thierry Parmentelat - MyPLC-4.3-21 +- create node tags, like e.g. 'arch', that were not handled with 4.3-20 + +* Tue Jul 07 2009 Thierry Parmentelat - MyPLC-4.3-20 +- bugfix in db-config, tag 4.3-19 would not fly + +* Mon Jul 06 2009 Marc Fiuczynski - MyPLC-4.3-19 +- Refactored db-config into snippets in db-config.d/. + +* Thu Jul 02 2009 Thierry Parmentelat - MyPLC-4.3-18 +- oops, tag 4.3-17 was broken and would not work + +* Wed Jul 01 2009 Thierry Parmentelat - MyPLC-4.3-17 +- bugfix - escape sequences inserted in xml configs + +* Fri Jun 26 2009 Marc Fiuczynski - MyPLC-4.3-16 +- Handle db-config.d files properly. + * Tue Jun 23 2009 Marc Fiuczynski - MyPLC-4.3-15 - - Fix /etc/init.d/plc to have command usage show up on the tty rather - than the log file - - Fix db-config to be a bit more cautious when -- /etc/planetlab/db-config.d doesn't exist +- /etc/planetlab/db-config.d doesn''t exist - - Clean up db-config approach to ignore .bak, *~, .rpm{save,new}, and - .orig files. - - Refactor generic plc-config-tty code into plc_config.py. @@ -237,7 +482,7 @@ fi * Wed Apr 29 2009 Marc Fiuczynski - MyPLC-4.3-6 - plc_config.py and plc-config-tty: generalized to work for more diverse - MyPLC configurations. -- plc.d/httpd: only update httpd_conf with /data for chroot'ed MyPLC +- plc.d/httpd: only update httpd_conf with /data for chroot-ed MyPLC - deployments and increase the memory limits in php.ini - plc.d/crond: add --full option to vacuumdb @@ -331,4 +576,4 @@ fi * Fri Aug 31 2007 Marc E. Fiuczynski - initial build. -%define module_current_branch 4.2 +%define module_current_branch 4.3