requires php-xml
[plcapi.git] / plcapi.spec
index 714943e..5f3ce9d 100644 (file)
@@ -1,6 +1,6 @@
 %define name plcapi
 %define version 5.3
-%define taglevel 1
+%define taglevel 11
 
 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
 
@@ -26,14 +26,19 @@ Requires: httpd mod_ssl
 Requires: Django
 Requires: postgresql >= 8.2, postgresql-server >= 8.2
 # We use set everywhere
-Requires: python >= 2.4
+Requires: python >= 2.7
 Requires: postgresql-python
 Requires: python-psycopg2
 Requires: python-pycurl
 # 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
@@ -48,17 +53,21 @@ Requires: memcached python-memcached
 # 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
-# for building the wsdl interface we used to require PyXML
-# but this has gone with f20 so turning this off for now
-BuildRequires: php-devel 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
@@ -93,12 +102,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/
@@ -120,15 +123,19 @@ install -D -m 644 wsdl/plcapi.wsdl $RPM_BUILD_ROOT/var/www/html/wsdl/plcapi.wsdl
 #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
 
-# Install ratelimit log
+# 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
 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,-)
@@ -136,18 +143,60 @@ rm -rf $RPM_BUILD_ROOT
 #%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*
+/var/log/plcapi.log
 /var/log/plc_api_ratelimit.log
 
 
 %changelog
+* 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