Setting tag plcapi-5.4-2
[plcapi.git] / plcapi.spec
index d836d8d..0ad725d 100644 (file)
@@ -1,5 +1,5 @@
 %define name plcapi
-%define version 5.2
+%define version 5.4
 %define taglevel 2
 
 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
@@ -21,42 +21,48 @@ URL: %{SCMURL}
 Provides: PLCAPI
 Obsoletes: PLCAPI
 
-# We use set everywhere
-Requires: python >= 2.4
+# requirement to mod_python or mod_wsgi: deferred to myplc
+Requires: httpd mod_ssl
+# f29 does not come with an rpm for that; use pip instead
+# Requires: Django
 Requires: postgresql >= 8.2, postgresql-server >= 8.2
+# We use set everywhere
+Requires: python >= 2.7
 Requires: postgresql-python
 Requires: python-psycopg2
 Requires: python-pycurl
-Requires: httpd
-# requirement to mod_python or mod_wsgi: deferred to myplc
-Requires: mod_ssl
+# used in GPG.py as a replacement to PyXML's Canonicalize
+Requires: python-lxml
+# Fedora had support for SOAPpy up to fedora20
+# https://lists.fedoraproject.org/pipermail/devel/2014-June/199730.html
+# https://lists.fedoraproject.org/pipermail/devel/2014-June/200379.html
+%if ("%{distro}" == "Fedora" && %{distrorelease} <= 20) || ("%{distro}" != "Fedora")
 Requires: SOAPpy
-Requires: python-simplejson
+%endif
+#Requires: python-simplejson
 # for the RebootNodeWithPCU method
 Requires: pcucontrol >= 1.0-6
-# for OMF integration
-Requires: pyaspects >= 0.4
-Requires: python-twisted-words
-Requires: python-twisted-web
-# ldap
-Requires: python-ldap
 # for memcache
-Requires: python-memcached
-Requires: memcached
-Requires: Django
+Requires: memcached python-memcached
 ### avoid having yum complain about updates, as stuff is moving around
 # plc.d/api
 Conflicts: MyPLC <= 4.3
 
-# We use psycopg2
-#
-# but we don't need to rebuild it as we depend on distro's packages - baris
-# BuildRequires: postgresql-devel
+####################
+# obsolete
+####################
+# standard xmlrpc.so that ships with PHP does not marshal NULL
+# prior to May 2017 we used to ship our own brew of xmlrpc but
+# that does not build anymore on f25
+# So bottom line is:
+# * don't use fedora's php-xmlrpc (no support for marshalling NULL)
+# * don't use our own that is way too old
+# * instead - thank you Ciro - we pull it as a git subtree from
+# https://github.com/gggeek/phpxmlrpc.git
+# that stuff requires the following though
+Requires: php-xml
+####################
 
-# Standard xmlrpc.so that ships with PHP does not marshal NULL
-BuildRequires: php-devel PyXML python-simplejson
-Obsoletes: php-xmlrpc
-Provides: php-xmlrpc
 
 # PostgreSQL and SOAPpy are necessary to run the API server, but not
 # plcsh. Since the only supported method of running the server is via
@@ -78,8 +84,8 @@ through Apache mod_python.
 # python-pycurl and python-psycopg2 avail. from fedora 5
 # we used to ship our own version of psycopg2 and pycurl, for fedora4
 # starting with 4.3, support for these two modules is taken out
-# 
-# Build __init__.py metafiles and PHP API. 
+#
+# Build __init__.py metafiles and PHP API.
 %{__make} %{?_smp_mflags}
 %{__make} -C wsdl
 
@@ -91,12 +97,6 @@ rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT/%{_bindir}
 ln -s %{_datadir}/plc_api/plcsh $RPM_BUILD_ROOT/%{_bindir}/plcsh
 
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/php.d
-cat > $RPM_BUILD_ROOT/%{_sysconfdir}/php.d/xmlrpc.ini <<EOF
-; Enable xmlrpc extension module
-extension=xmlrpc.so
-EOF
-
 # Install initscripts
 echo "* Installing initscripts"
 find plc.d | cpio -p -d -u ${RPM_BUILD_ROOT}/etc/
@@ -112,10 +112,16 @@ chmod 444 ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d/*
 echo "* Installing wsdl"
 install -D -m 644 wsdl/plcapi.wsdl $RPM_BUILD_ROOT/var/www/html/wsdl/plcapi.wsdl
 
-# Install omf_slicemgr.py
-install -D -m 755 omf/omf_slicemgr.py $RPM_BUILD_ROOT/usr/bin/omf_slicemgr.py
-install -D -m 755 omf/reset_xmpp_pubsub_nodes.py $RPM_BUILD_ROOT/usr/bin/reset_xmpp_pubsub_nodes.py
-mkdir -p $RPM_BUILD_ROOT/var/log/omf
+## Thierry - June 2013 - omfv6 does not require xmpp pubsub nodes management any more
+## Install omf_slicemgr.py
+#install -D -m 755 omf/omf_slicemgr.py $RPM_BUILD_ROOT/usr/bin/omf_slicemgr.py
+#install -D -m 755 omf/reset_xmpp_pubsub_nodes.py $RPM_BUILD_ROOT/usr/bin/reset_xmpp_pubsub_nodes.py
+#mkdir -p $RPM_BUILD_ROOT/var/log/omf
+
+# Create log file for plcapi
+mkdir -p $RPM_BUILD_ROOT/var/log
+touch $RPM_BUILD_ROOT/var/log/plcapi.log
+chown apache:apache $RPM_BUILD_ROOT/var/log/plcapi.log
 
 # Install ratelimit log
 touch $RPM_BUILD_ROOT/var/log/plc_api_ratelimit.log
@@ -124,26 +130,118 @@ chown apache:apache $RPM_BUILD_ROOT/var/log/plc_api_ratelimit.log
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%define php_extension_dir %(php-config --extension-dir)
+###%define php_extension_dir %(php-config --extension-dir)
 
 %files
 %defattr(-,root,root,-)
 %dir %{_datadir}/plc_api
-%dir /var/log/omf/
+#%dir /var/log/omf/
 %{_datadir}/plc_api/*
 %{_bindir}/plcsh
-%{php_extension_dir}/xmlrpc.so
-%{_sysconfdir}/php.d/xmlrpc.ini
 %config (noreplace) %{_datadir}/plc_api/PLC/Accessors/Accessors_site.py
 /etc/plc.d
 /etc/planetlab/db-config.d
 /var/www/html/wsdl/plcapi.wsdl
-/usr/bin/omf_slicemgr.py*
-/usr/bin/reset_xmpp_pubsub_nodes.py*
+#/usr/bin/omf_slicemgr.py*
+#/usr/bin/reset_xmpp_pubsub_nodes.py*
+/var/log/plcapi.log
 /var/log/plc_api_ratelimit.log
 
 
 %changelog
+* Mon Jan 07 2019 Thierry Parmentelat <thierry.parmentelat@inria.fr> - plcapi-5.4-2
+- last version based on python2, runs on f27 and f29
+- removed dependency to aspects, and so to rate limits
+- remove dependency to the Django rpm that is no longer available in f29
+- remove deps to python-twisted
+- use systemctl rather than service to manage postgresql
+
+* Wed May 16 2018 Thierry <Parmentelat> - plcapi-5.4-1
+- define accessor for site tag disabled_registration (used in plewww-5.2-9)
+- set disable_existing_loggers = False in logging config, that otherwise voids sfa logs
+
+* Sun Jul 16 2017 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.4-0
+- embed phpxmlrpc as a git subtree from github (OK with fedora24 and 25, probably sooner too)
+- logs in /var/log/plcapi.log
+- context managers for most open files
+
+* Wed Feb 08 2017 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-11
+- mostly issued for the R2lab deployment
+- *** major
+- * dots allowed in login_base and slice name
+- * new lease filter 'day'
+- *** minor
+- * more explicit message in case of overlapping resas
+- * bugfix: escaping unicode in xml
+- * GetLeases allowed to anonymous callers
+- *** miscell
+- * use plain json library
+
+* Sun Jul 10 2016 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-10
+- GetBootMedium with systemd-debug option : add kernel arg systemd.log_target=console
+
+* Fri Jun 26 2015 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-9
+- new bootstate 'upgrade' is like reinstall but leaves slices intact
+
+* Fri Apr 24 2015 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-8
+- GetBootMedium now keeps logs of created bootCD's in /var/tmp/bootmedium
+
+* Fri Apr 03 2015 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-7
+- reviewed logging strategy, no more direct print but use log instead
+
+* Wed Feb 18 2015 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-6
+- extensions for the ipv6 feature
+- DeleteSliceTag can be run with the 'node' auth
+- xmlrpc-epi-php.c has has a tweak for f21/php-5.6
+- also SOAPpy is not present in f21 anymore, so drop that dep. with f>=21
+
+* Tue Aug 19 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-5
+- allow GetSlices to filter on tags as well
+
+* Tue Aug 19 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-4
+- enable filtering on tags (like hrn) with GetPersons and GetSites
+
+* Mon Jun 02 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-3
+- provide more context in messages from AddPersonToSlice and DeletePersonFromSlice
+
+* Fri Mar 21 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-2
+- don't use PyXML that is deprecated in f20, use lxml instead
+- higher max size for login_base (32 vs 20) and slice name (64 vs 32)
+
+* Tue Dec 10 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.3-1
+- create accessor 'hrn' for site as well
+- create accessors 'sfa_created' for site/slice/person
+- AddSite() and AddSlice() set respectively Site HRN and Slice HRN.
+- UpdatePerson() updates Person HRN according to updated email.
+- UpdateSite() updates Site HRN according to updated login_base.
+- Fix AddPersonToSite().
+- GetPeerData() ignores Sites/Slices/Persons that have tag sfa_created=='True'
+- RefreshPeer() manages Site*Person and Person*Role relationships.
+
+* Thu Oct 10 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-10
+- provide a slicename_to_hrn function
+
+* Fri Sep 20 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-9
+- add an hrn accessor for slice so the SFA code can keep track of the federation-wide name of the slice
+
+* Wed Aug 28 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-8
+- fix for wsgi-based deployments, each thread has its own api()
+
+* Fri Jun 28 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-7
+- also cleanup omf-slicemgr initscript
+
+* Fri Jun 28 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-6
+- tear down omf-related aspects as this is no longer needed with omfv6
+
+* Thu Jun 27 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-5
+- also expose 'expires' in ResolveSlices
+
+* Wed Jun 26 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-4
+- drop GetSliceSshKeys, new RetrieveSlicePersonKeys and RetrieveSliceSliverKeys
+
+* Wed May 29 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-3
+- enable netconfig aspects if PLC_NETCONFIG_ENABLED
+
 * Wed Apr 24 2013 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.2-2
 - use SFA code for computing hrn's when available
 
@@ -304,8 +402,8 @@ rm -rf $RPM_BUILD_ROOT
 - use hrn in pubsub groups
 
 * Tue Jul 13 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - plcapi-5.0-13
-- Add timestamps to Nodes, PCUs and Interfaces to make concrete statements about a node's configuration state.
-- OMF fixes
+- Add timestamps to Nodes, PCUs and Interfaces to make concrete statements about a node's configuration state.
+- OMF fixes
 
 * Mon Jun 28 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - PLCAPI-5.0-12
 - automatically set vsys tag for omf controlled slices
@@ -506,18 +604,18 @@ rm -rf $RPM_BUILD_ROOT
 
 * Fri May 09 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-4.2-7
 - no more doc packaged outside of myplc-docs - doc/ cleaned up
-- enhancements in doc on filters 
+- enhancements in doc on filters
 - bootcd-aware GetBootMedium merged from onelab
 
 * Thu May 08 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-4.2-6
 - checkpoint while the new myplc-docs package is underway
 - bugfix: GetSlivers & conf files
-- doc: removed target files 
+- doc: removed target files
 
 * Wed Apr 23 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - PLCAPI-4.2-5
 - Removed conditions on the persons, site, and nodes indexes.  previsouly only
 - the non-deleted fields were index, resulting in massivly slow queries.
-- 
+-
 
 * Wed Mar 26 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-4.2-3 PLCAPI-4.2-4
 - plcsh: better handling of options when running as a shell script
@@ -525,7 +623,7 @@ rm -rf $RPM_BUILD_ROOT
 - tweaks for accepted args in GetPCUTypes and BootNotifyOwners
 
 * Thu Feb 14 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-4.2-2 PLCAPI-4.2-3
-- GetBootMedium support for build.sh full options, incl. serial & console_spec 
+- GetBootMedium support for build.sh full options, incl. serial & console_spec
 - GetBootMedium simpler, cleaner and safer use of tmpdirs in (dated from bootcustom.sh)
 
 * Fri Feb 01 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-4.2-1 PLCAPI-4.2-2
@@ -536,7 +634,7 @@ rm -rf $RPM_BUILD_ROOT
 - plcsh adds its own path to sys.path
 - fix so GetNodes can be called from a Node
 
-* Fri Oct 27 2006 Mark Huang <mlhuang@CS.Princeton.EDU> - 
+* Fri Oct 27 2006 Mark Huang <mlhuang@CS.Princeton.EDU> -
 - Initial build.
 
 %define module_current_branch 4.3