X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=myplc.spec;h=6b8e6490a314d2448efe8c6a9c4b9cfdd1326f07;hb=0f8c747b4f0b71f77d36e89e9d6d869de128c132;hp=ccc5220c2c6a5da8feb8405f4f17e1846d751e54;hpb=22f14d8150715f0a29129890569fb06fc3094223;p=myplc.git diff --git a/myplc.spec b/myplc.spec index ccc5220..6b8e649 100644 --- a/myplc.spec +++ b/myplc.spec @@ -1,31 +1,77 @@ # # $Id$ -# %define url $URL$ %define name myplc -%define version 4.2 -%define taglevel 11 +%define version 5.0 +%define taglevel 9 %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 Vendor: PlanetLab Packager: PlanetLab Central Distribution: PlanetLab %{plrelease} URL: %(echo %{url} | cut -d ' ' -f 2) -Requires: tar +%define nodefamily %{pldistro}-%{distroname}-%{_arch} -Provides: myplc +####################### myplc +Summary: PlanetLab Central (PLC) Portable Installation +Group: Applications/Systems + +# as much as possible, requires should go in the subpackages specfile +Requires: bzip2 +Requires: tar +Requires: less +Requires: sendmail +Requires: sendmail-cf +Requires: openssl +Requires: expect +Requires: php-pgsql +Requires: curl +Requires: rsync +Requires: python-devel +Requires: yum +Requires: PyXML +Requires: createrepo +Requires: cpio +Requires: wget +Requires: php +Requires: openssh +Requires: dnsmasq +Requires: diffutils +Requires: gzip +Requires: vim-minimal +Requires: findutils +Requires: xmlsec1 +Requires: xmlsec1-openssl +%if "%{distro}" == "Fedora" && %{distrorelease} >= 10 +Requires: cronie +%else +Requires: vixie-cron +%endif +# planetlab stuff +Requires: bootmanager +Requires: bootcd-%{nodefamily} +Requires: bootcd-initscripts +Requires: PLCWWW +Requires: www-register-wizard +Requires: nodeconfig +Requires: nodeyum +Requires: PLCAPI +Requires: bootstrapfs-%{nodefamily} +Requires: myplc-docs +Requires: myplc-release +Requires: myplc-config %define debug_package %{nil} @@ -33,62 +79,85 @@ Provides: myplc 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. All PLC services are started up and +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. The related Web Interface is now separately packaged -in the PLCWWW component. +system. -%prep -%setup -q +####################### myplc-config -%build -pushd MyPLC -./build.sh %{pldistro} -popd +%package config -%install -rm -rf $RPM_BUILD_ROOT - -pushd MyPLC +Summary: PlanetLab Central (PLC) configuration python module +Group: Applications/Systems +Requires: python -# -# myplc -# +%description config +This package provides the Python module to configure MyPLC. -# Install host startup script and configuration file -install -D -m 755 host.init $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/plc -install -D -m 644 plc.sysconfig $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/plc -# Create convenient symlink -install -d -m 755 $RPM_BUILD_ROOT/%{_sysconfdir} -ln -sf /plc/data/etc/planetlab $RPM_BUILD_ROOT/%{_sysconfdir}/planetlab +%prep +%setup -q -# Install root filesystem -install -d -m 755 $RPM_BUILD_ROOT/plc/root -install -D -m 644 root.img $RPM_BUILD_ROOT/plc/root.img +%build -# Install data directory -find data | cpio -p -d -u $RPM_BUILD_ROOT/plc/ +%install +rm -rf $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/ +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 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) - chown -h -R $SUDO_USER %{_rpmdir}/%{_arch} -fi - %pre if [ -x %{_sysconfdir}/init.d/plc ] ; then - %{_sysconfdir}/init.d/plc safestop + %{_sysconfdir}/init.d/plc stop fi # Old versions of myplc used to ship with a bootstrapped database and @@ -108,15 +177,15 @@ fi # 0 = install, 1 = upgrade if [ $1 -gt 0 ] ; then for dir in /var/lib/pgsql/data /etc/planetlab ; do - if [ -d /plc/data/$dir ] ; then - echo "Preserving /plc/data/$dir" - mkdir -p /plc/data/$dir.rpmsave - tar -C /plc/data/$dir -cpf - . | \ - tar -C /plc/data/$dir.rpmsave -xpf - + if [ -d $dir ] ; then + echo "Preserving $dir" + mkdir -p $dir.rpmsave + tar -C $dir -cpf - . | \ + tar -C $dir.rpmsave -xpf - # Except for the default configuration file and DTD, which # really should be considered for upgrade. - rm -f /plc/data/$dir.rpmsave/{default_config.xml,plc_config.dtd} + rm -f $dir.rpmsave/{default_config.xml,plc_config.dtd} fi done fi @@ -131,11 +200,11 @@ fi # 0 = erase, 1 = upgrade if [ $1 -gt 0 ] ; then for dir in /var/lib/pgsql/data /etc/planetlab ; do - if [ -d /plc/data/$dir.rpmsave -a -d /plc/data/$dir ] ; then - echo "Merging /plc/data/$dir" - if tar -C /plc/data/$dir.rpmsave -cpf - . | \ - tar -C /plc/data/$dir -xpf - ; then - rm -rf /plc/data/$dir.rpmsave + if [ -d $dir.rpmsave -a -d $dir ] ; then + echo "Merging $dir" + if tar -C $dir.rpmsave -cpf - . | \ + tar -C $dir -xpf - ; then + rm -rf $dir.rpmsave fi fi done @@ -144,7 +213,7 @@ fi %preun # 0 = erase, 1 = upgrade if [ $1 -eq 0 ] ; then - %{_sysconfdir}/init.d/plc safestop + %{_sysconfdir}/init.d/plc stop if [ -x /sbin/chkconfig ] ; then /sbin/chkconfig plc off /sbin/chkconfig --del plc @@ -154,21 +223,238 @@ fi %files %defattr(-,root,root,-) # Host startup script and configuration file -%{_sysconfdir}/init.d/plc -%{_sysconfdir}/sysconfig/plc +/etc/init.d/plc +/etc/plc.d +/etc/planetlab +/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/partial-repo.sh +/usr/bin/mtail.py* +/usr/bin/plc-map.py* +/usr/bin/plc-kml.py* +/usr/bin/clean-empty-dirs.py* +/usr/bin/plc-check-ssl-peering.py* +/usr/bin/plc-orphan-accounts.py* + +%files config +%defattr(-,root,root,-) +/usr/bin/plc-config +%{python_sitearch}/plc_config.py* -# Symlink to /etc/planetlab within data directory -%{_sysconfdir}/planetlab -# Root filesystem -/plc/root.img -/plc/root +%changelog +* 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 +- - Clean up db-config approach to ignore .bak, *~, .rpm{save,new}, and +- .orig files. +- - Refactor generic plc-config-tty code into plc_config.py. +- plc-config-tty now contains MyPLC specific paths, "usual" variables, +- and the list of validated variables and the corresponding +- validator() function. This refactoring lets one reuse plc_config.py +- as a generic cmdline configuration tool for highly customer MyPLC +- like software. + +* Mon Jun 15 2009 Stephen Soltesz - MyPLC-4.3-14 +- update PCU Type descriptions. +- updates to init scripts + +* Wed Jun 03 2009 Thierry Parmentelat - MyPLC-4.3-13 +- requires monitor-pcucontrol so register-wizard can work + +* Tue May 26 2009 Thierry Parmentelat - MyPLC-4.3-12 +- cleaned up plc-config-tty, no more need to configure plc-devel + +* Tue May 19 2009 Thierry Parmentelat - MyPLC-4.3-11 +- first draft of plc-orpha-accounts.py, and rename check-ssl-peering into plc-<> + +* Wed May 06 2009 Thierry Parmentelat - MyPLC-4.3-9 +- fix issue in db-config that prevented correct operation + +* Wed May 06 2009 Thierry Parmentelat - MyPLC-4.3-8 +- remove support for chroot-based packaging - no crond nor syslog step anymore +- plc init script now named plc.init instead of former guest.init + +* Mon May 04 2009 Stephen Soltesz - MyPLC-4.3-7 +- add Monitor to docs build -# Data directory -%dir /plc/data -%config(noreplace) /plc/data/* +* 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 +- deployments and increase the memory limits in php.ini +- plc.d/crond: add --full option to vacuumdb + +* Tue Apr 07 2009 Thierry Parmentelat - MyPLC-4.3-5 +- avoid generating ssl certificates for disabled services among www api boot + +* Mon Mar 30 2009 Thierry Parmentelat - MyPLC-4.3-4 +- cleaned up old entries in db-config +- mtail more robust + +* Tue Mar 24 2009 Thierry Parmentelat - MyPLC-4.3-3 +- php include path tweaked for plekit includes +- reviewed myplc (fka native) packaging dependencies +- renumbered 4.3 + +* Thu Jan 29 2009 Thierry Parmentelat - MyPLC-4.3-2 +- rename myplc into myplc-chroot and myplc-native into myplc +- new settings (shortname & hrn_root) for local peer + +* Wed Sep 10 2008 Thierry Parmentelat - MyPLC-4.3-1 +- First iteration of new data model +- Bunch of various fixes + +* Tue May 20 2008 Faiyaz Ahmed - MyPLC-4.2-15 +- Removed proper ops from planetflow slice. + +* Wed May 14 2008 Thierry Parmentelat - MyPLC-4.2-14 +- myplc-native requires myplc-docs +- fixed doc build by locating locally installed DTDs at build-time + +* Sun May 11 2008 Thierry Parmentelat - MyPLC-4.2-13 +- turn myplc-docs off for now + +* Sat May 10 2008 Thierry Parmentelat - MyPLC-4.2-12 +- figures in doc package -%changelog * Fri May 09 2008 Thierry Parmentelat - MyPLC-4.2-11 - no more doc packaged outside of myplc-docs - doc/ cleaned up - chroot packaging does not have docs anymore @@ -223,66 +509,7 @@ fi - sirius initscript updated - slice auto renewal fixed -* Thu Jan 31 2008 Thierry Parmentelat - myplc-4.2-1 myplc-4.2-2 -- knows how to checkpoint and restore -- packages step more robust, in particular with empty node repository -- miscell tweaks for native packaging - -* Wed Jan 09 2008 Thierry Parmentelat - myplc-4.0-15 myplc-4.2-0 -moving to 4.2 - no change - -* Fri Jan 19 2007 Mark Huang - 0.5-3 -- Split off myplc-devel into separate spec file, so that it can be - built standalone. - -* Tue Aug 22 2006 Mark Huang - 0.4-3, 0.5-3 -- MyPLC 0.4 RC3. -- Fix upgrade path from RC1. -- Always regenerate plc_config.xml at first startup -- Upgrade kernel, iptables, vnet to 2.6.17-1.2142_FC4-3.planetlab -- Minor PlanetFlow fixes -- pl_mom/swapmon: Minor fixes -- bootcd: Added Supermicro IPMI support -- bootmanager: Cleanup, fixed check for new disks - -* Wed Aug 09 2006 Thierry Parmentelat -- introduces variable %{build_devel} to allow custom sites to skip building - the myplc-devel package. - -* Thu Jul 13 2006 Mark Huang - 0.4-2, 0.5-2 -- MyPLC 0.4 RC2. -- Fix many spec files (License replaces Copyright). -- Fix kernel build under gcc32 (module verification bug). -- Fix vnet build under gcc32 -- Fix PlanetFlow. MySQL RPM postinstall script no longer starts the - server. Also, get hostnames list from PLC_WWW_HOST, not - www.planet-lab.org. -- Fix pl_mom/bwmon to use cached values if NM is unresponsive -- Fix pl_mom/swapmon reset logic to avoid endless loops -- Remove ksymoops, add kernel-smp to standard PlanetLab package group -- Add kernel-smp boot support to bootmanager -- Add badblock search support to bootmanager -- Build development environment (myplc-devel). Add support for - building myplc itself inside myplc-devel. -- Move step-specific initialization to appropriate plc.d scripts -- Fix postgresql startup failure when bootstrapping -- Allow CA to be configured for each SSL certificate set. Stop doing - root CA stuff, this is outside the scope of MyPLC. MyPLC now only - generates self-signed certificates, but supports replacement of the - self-signed certificates with real certifcates signed by another CA, - as long as the CA is specified. -- Self-sign the MA/SA SSL certificate (and by extension, the MA/SA API - certificate). -- pl_mom: Workarounds for when NM queries time out. -- plc_api: Honor PLC_MAIL_ENABLED. - -* Wed Jul 6 2006 Mark Huang - 0.4-1, 0.5-1 -- First stable release of MyPLC 0.4 RC1. - -* Wed Apr 5 2006 Mark Huang - 0.2-1 -- Basic functionality complete. Consolidate into a single package - installed in /plc. - -* Fri Mar 17 2006 Mark Huang - 0.1-1 -- Initial build. +* Fri Aug 31 2007 Marc E. Fiuczynski +- initial build. +%define module_current_branch 4.3