X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=myplc.spec;h=6a85e31221a95b4e7c5950ee1031867f307f1ce8;hb=905621647268aaf7bc792dfb6a064f06d3c76ba0;hp=de579438a4f76b84c38150c680d0a877e3e9644a;hpb=a7a14e9be25a87e7ccfcc941ff00d19a78ba6bf4;p=myplc.git diff --git a/myplc.spec b/myplc.spec index de57943..6a85e31 100644 --- a/myplc.spec +++ b/myplc.spec @@ -1,20 +1,72 @@ -# Fedora Core release version to base the installation on. Currently -# supported: 2, 4. -%define releasever 2 +# +# $Id$ +# +%define url $URL$ -Vendor: PlanetLab -Packager: PlanetLab Central -Distribution: PlanetLab 3.0 -URL: http://cvs.planet-lab.org/cvs/myplc +%define name myplc +%define version 4.3 +%define taglevel 28 + +%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}} Summary: PlanetLab Central (PLC) Portable Installation -Name: myplc -Version: %{releasever}.0 -Release: 1%{?pldistro:.%{pldistro}}%{?date:.%{date}} -License: BSD +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) + +# 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: vixie-cron +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 +# planetlab stuff +Requires: bootmanager +Requires: bootcd-%{pldistro}-%{_arch} +Requires: PLCWWW +Requires: www-register-wizard +Requires: nodeconfig +Requires: PLCAPI +Requires: monitor-pcucontrol +Requires: bootstrapfs-%{pldistro}-%{_arch} +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 %define debug_package %{nil} @@ -31,55 +83,298 @@ system. %setup -q %build -cd myplc -./build.sh -r %{releasever} -d %{_datadir} -# If run under sudo, allow user to delete the build directory +%install +pushd MyPLC +rm -rf $RPM_BUILD_ROOT +./build.sh %{pldistro} $RPM_BUILD_ROOT +popd + +%clean +rm -rf $RPM_BUILD_ROOT + +# If run under sudo if [ -n "$SUDO_USER" ] ; then - chown -R $SUDO_USER . - # Some temporary chroot files like /var/empty/sshd and + # 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 -%install -rm -rf $RPM_BUILD_ROOT +%pre +if [ -x %{_sysconfdir}/init.d/plc ] ; then + %{_sysconfdir}/init.d/plc stop +fi -cd myplc -install -d -m 755 $RPM_BUILD_ROOT/%{_datadir}/plc/fc%{releasever} -install -D -m 644 fc%{releasever}.img $RPM_BUILD_ROOT/%{_datadir}/plc/fc%{releasever}.img -find data%{releasever} | cpio -p -d -u $RPM_BUILD_ROOT/%{_datadir}/plc/ -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 +# Old versions of myplc used to ship with a bootstrapped database and +# /etc/planetlab directory. Including generated files in the manifest +# was dangerous; if /plc/data/var/lib/pgsql/data/base/1/16676 changed +# names from one RPM build to another, it would be rpmsaved and thus +# effectively deleted. Now we do not include these files in the +# manifest. However, to avoid deleting these files in the process of +# upgrading from one of these old versions of myplc, we must back up +# the database and /etc/planetlab and restore them after the old +# version has been uninstalled in %triggerpostun (also in %post, in +# case we are force upgrading to the same version). +# +# This code can be removed once all myplc-0.4-1 installations have +# been upgraded to at least myplc-0.4-2. -%clean -rm -rf $RPM_BUILD_ROOT +# 0 = install, 1 = upgrade +if [ $1 -gt 0 ] ; then + for dir in /var/lib/pgsql/data /etc/planetlab ; do + if [ -d $dir ] ; then + echo "Preserving $dir" + mkdir -p $dir.rpmsave + tar -C $dir -cpf - . | \ + tar -C $dir.rpmsave -xpf - -# If run under sudo, allow user to delete the built RPM -if [ -n "$SUDO_USER" ] ; then - chown $SUDO_USER %{_rpmdir}/%{_arch}/%{name}-%{version}-%{release}.%{_arch}.rpm + # Except for the default configuration file and DTD, which + # really should be considered for upgrade. + rm -f $dir.rpmsave/{default_config.xml,plc_config.dtd} + fi + done fi %post -chkconfig --add plc -chkconfig plc on +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 +if [ $1 -gt 0 ] ; then + for dir in /var/lib/pgsql/data /etc/planetlab ; do + 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 +fi %preun # 0 = erase, 1 = upgrade if [ $1 -eq 0 ] ; then - chkconfig plc off - chkconfig --del plc + %{_sysconfdir}/init.d/plc stop + if [ -x /sbin/chkconfig ] ; then + /sbin/chkconfig plc off + /sbin/chkconfig --del plc + fi fi %files %defattr(-,root,root,-) -%dir %{_datadir}/plc/fc%{releasever} -%{_datadir}/plc/fc%{releasever}.img -%{_datadir}/plc/data%{releasever} -%{_sysconfdir}/init.d/plc -%{_sysconfdir}/sysconfig/plc +# Host startup script and configuration file +/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 +/usr/bin/plc-config-tty +/usr/bin/db-config +/usr/bin/dns-config +/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 %changelog -* Fri Mar 17 2006 Mark Huang - 0.1-1 -- Initial build. +* 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 + +* 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 + +* 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 +- 'cvs' and 'dev' not required from myplc-native anymore +- cosmetic change in kml output + +* Thu May 08 2008 Thierry Parmentelat - MyPLC-4.2-10 +- defaults for *_IP conf vars now void, expect more accurate /etc/hosts +- gethostbyname uses python rather than perl (hope this shrinks deps) +- doc: reviewed myplc doc - deprecated everything related to myplc-devel +- doc: packaging doc in myplc-native (myplc&PLCAPI) & removed target files from svn +- make sync now works towards vserver-based myplc only + +* Mon May 05 2008 Stephen Soltesz - MyPLC-4.2-9 +- +- added vsys 'pfmount' script to the default netflow slice attributes. +- + +* Thu Apr 24 2008 Thierry Parmentelat - MyPLC-4.2-8 +- plc.d/bootcd step altered for handling legacy bootcd smooth migration +- to new bootcd packaging + +* Wed Apr 23 2008 Thierry Parmentelat - MyPLC-4.2-7 +- changes needed for bootcd 4.2 : new, possible multiple, installation locations, and new rpm name + +* Tue Apr 22 2008 Thierry Parmentelat - MyPLC-4.2-6 +- packaging of mplc-release in myplc-native +- sudoers.php is new to PlanetLabConf (needs nodeconfig-4.2-4) +- resolv file in /etc/resolv.conf, not plc_resolv.conf +- improved sirius script +- remove the 'driver' node-network-setting that was unused, and new 'Multihome' category +- expires more properly set + +* Mon Apr 07 2008 Stephen Soltesz - MyPLC-4.2-4 MyPLC-4.2-5 +- + +* Wed Mar 26 2008 Thierry Parmentelat - MyPLC-4.2-3 MyPLC-4.2-4 +- renew_reminder script moved to support-scripts/ +- gen-aliases script added in support-scripts/ +- sirius initscript moved to plc_sliceinitscripts (formerly inlined in db-config) +- plc-map script : no javascript for googlemap anymore, see new plc-kml script instead +- nodefamily-aware (creates legacy symlink /var/www/html/install-rpms/planetlab) +- new native slice attributes 'capabilities', 'vsys' and 'codemux' +- new setting 'Mom list address' for sending emails to a separate destination +- starts rsyslogd/syslogd as appropriate +- expects nodeconfig package (former PlanetLabConf/ dir from PLCWWW) +- convenience generation of yum.conf in resulting image based on build/mirroring + +* Thu Feb 14 2008 Thierry Parmentelat - myplc-4.2-2 myplc-4.2-3 +- refresh-peer.py removed (duplicate with PLCAPI) +- plc.d/ scripts cleaned up +- sirius initscript updated +- slice auto renewal fixed + +* Fri Aug 31 2007 Marc E. Fiuczynski +- initial build. +%define module_current_branch 4.2