Setting tag myplc-5.3-5
[myplc.git] / myplc.spec
index be3a43b..5567fcb 100644 (file)
@@ -1,6 +1,6 @@
 %define name myplc
-%define version 5.1
-%define taglevel 6
+%define version 5.3
+%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)" )
@@ -20,14 +20,71 @@ URL: %{SCMURL}
 
 %define nodefamily %{pldistro}-%{distroname}-%{_arch}
 
-####################### myplc
+
+####################### myplc - mostly a meta-package
 Summary: PlanetLab Central (PLC) Portable Installation
 Group: Applications/Systems
 
-# as much as possible, requires should go in the subpackages specfile
+# planetlab stuff
+Requires: myplc-docs
+Requires: myplc-release
+Requires: myplc-core
+Requires: createrepo
+Requires: bootmanager
+Requires: bootcd-%{nodefamily}
+Requires: bootcd-initscripts
+Requires: nodeimage-%{nodefamily}
+Requires: nodeconfig
+Requires: nodeyum
+Requires: www-register-wizard
+
+
+# starting with f16 we depend on this new rpm
+%if "%{distro}" == "Fedora" && %{distrorelease} >= 16
+Requires: rpm-sign
+%endif
+
+
+%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-core
+# Warning: it appears that Requires should come here
+# BEFORE the %description thingy
+
+%package core
+
+Summary: core contents of myplc with API + db + www UI
+
+# as much as possible, requires should have gone
+# with the individual packages, but well
+Requires: myplc-config
+Requires: plcapi
+Requires: plewww
+
+# this technically is a plcapi dependency
+# but it's simpler here for chosing which
+%if "%{distro}" == "Fedora" && %{distrorelease} >= 29
+Requires: python2-mod_wsgi
+%else
+Requires: mod_wsgi
+%endif
+
+# this technically is a plewww dependency
+# starting with f27 we depend on this new rpm
+%if "%{distro}" == "Fedora" && %{distrorelease} >= 27
+Requires: php-fpm
+%endif
+
 Requires: redhat-lsb
 Requires: bzip2
-Requires: tar 
+Requires: tar
 Requires: less
 Requires: sendmail
 Requires: sendmail-cf
@@ -37,9 +94,8 @@ Requires: php-pgsql
 Requires: curl
 Requires: rsync
 Requires: python-devel
-Requires: yum
-Requires: PyXML
-Requires: createrepo
+Requires: dnf
+#Requires: PyXML
 Requires: cpio
 Requires: wget
 Requires: php
@@ -52,34 +108,13 @@ 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-%{nodefamily}
-Requires: bootcd-initscripts
-Requires: PLCWWW
-Requires: www-register-wizard
-Requires: nodeconfig
-Requires: nodeyum
-Requires: PLCAPI
-Requires: nodeimage-%{nodefamily}
-Requires: myplc-docs
-Requires: myplc-release
-Requires: myplc-config
 
-%define debug_package %{nil}
 
-%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.
+%description core
+The core of myplc is about its API + database + web interface.
+Installing this will not require any node-oriented
+package, like bootcd, nodeimage, or bootmanager.
 
 ####################### myplc-config
 
@@ -93,6 +128,7 @@ Requires: python
 This package provides the Python module to configure MyPLC.
 
 
+
 %prep
 %setup -q
 
@@ -112,10 +148,10 @@ 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 
+# 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 -D -m 755 systemd/plc-ctl ${RPM_BUILD_ROOT}/usr/bin/plc-ctl
+install -D -m 644 systemd/plc.service ${RPM_BUILD_ROOT}/usr/lib/systemd/system/plc.service
 
 # Install initscripts
 echo "* Installing plc.d initscripts"
@@ -190,10 +226,12 @@ if [ $1 -gt 0 ] ; then
 fi
 
 %post
-if [ -x /sbin/chkconfig ] ; then
-    /sbin/chkconfig --add plc
-    /sbin/chkconfig plc on
-fi
+systemctl enable plc
+
+%if "%{distro}" == "Fedora" && %{distrorelease} >= 27
+systemctl enable php-fpm
+systemctl start  php-fpm
+%endif
 
 %triggerpostun -- %{name}
 # 0 = erase, 1 = upgrade
@@ -207,27 +245,27 @@ if [ $1 -gt 0 ] ; then
            fi
        fi
     done
-fi    
+fi
 
 %preun
 # 0 = erase, 1 = upgrade
 if [ $1 -eq 0 ] ; then
     %{_sysconfdir}/init.d/plc stop
-    if [ -x /sbin/chkconfig ] ; then
-        /sbin/chkconfig plc off
-       /sbin/chkconfig --del plc
-    fi
+    systemctl disable plc
 fi
 
+
 %files
+/usr/share/myplc/bashrc
+
+%files core
 %defattr(-,root,root,-)
-# Host startup script and configuration file
-/etc/init.d/plc
+/usr/lib/systemd/system/plc.service
+/usr/bin/plc-ctl
 /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
@@ -245,7 +283,7 @@ fi
 /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,-)
@@ -254,6 +292,47 @@ fi
 
 
 %changelog
+* Mon Jan 07 2019 Thierry Parmentelat <thierry.parmentelat@inria.fr> - myplc-5.3-5
+- last version suitable for f27/f29 with python2
+- packaging is split up, one more rpm named 'myplc-core' is produced,
+- that covers the infrastructure side only (without bootcds and nodeimages and all node-oriented material)
+- no more init file, one systemd service only, that leverages new /usr/bin/plc-ctl
+- more robust config for httpd and php-fpm and php
+
+* Sun Jul 16 2017 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.3-4
+- takes care of creating plcapi log file
+
+* Wed Feb 18 2015 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.3-3
+- tweaked renew_reminder for federation
+
+* Fri Mar 21 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.3-2
+- tweaks in check-hrns.py
+- do not require PyXML any more
+
+* Tue Dec 10 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.3-1
+- review check-hrns for plcapi-5.3
+- add PLC_HRN_ROOT in usual plc-config-tty's settings
+
+* Thu Oct 10 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.2-5
+- reduce the scope of check-hrns.py script, now that the SFA layer handles this natively
+- add an rpm-sign dependency on feedora>=16
+
+* Fri Jun 28 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.2-4
+- drop PLC_OMF_XMPP_{USER,PASSWORD} from config
+
+* Tue Apr 23 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.2-3
+- plc.d/gpg now does not rm /dev/random but preserves it
+- this is because libvirt won't let us run mknod
+
+* Wed Apr 10 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.2-2
+- fix typo in check-hrns - used to print 'host' while dealing with persons
+
+* Thu Mar 07 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.2-1
+- supports httpd config for either mod_python (preferred) or mod_wsgi
+- requires mod_wsgi on f18 only, otherwise mod_python
+- supports httpd config for apache 2.4 (f18)
+- new config variable PLC_FLAVOUR_VIRT_MAP to set 'virt' from fcdistro
+
 * Wed Dec 19 2012 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - myplc-5.1-6
 - bugfix in check-vsys-defaults.py
 
@@ -523,22 +602,22 @@ fi
 - figures in doc package
 
 * Fri May 09 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - MyPLC-4.2-11
-- no more doc packaged outside of myplc-docs - doc/ cleaned up 
+- 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 <thierry.parmentelat@sophia.inria.fr> - 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) 
+- 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 
+- make sync now works towards vserver-based myplc only
 
 * Mon May 05 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - MyPLC-4.2-9
-- 
+-
 - added vsys 'pfmount' script to the default netflow slice attributes.
-- 
+-
 
 * Thu Apr 24 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - MyPLC-4.2-8
 - plc.d/bootcd step altered for handling legacy bootcd smooth migration
@@ -553,10 +632,10 @@ fi
 - 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 
+- expires more properly set
 
 * Mon Apr 07 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - MyPLC-4.2-4 MyPLC-4.2-5
-- 
+-
 
 * Wed Mar 26 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - MyPLC-4.2-3 MyPLC-4.2-4
 - renew_reminder script moved to support-scripts/