a little nicer wrt pep8
[sfa.git] / sfa.spec
index b778da7..198ab34 100644 (file)
--- a/sfa.spec
+++ b/sfa.spec
@@ -1,10 +1,8 @@
 %define name sfa
-%define version 3.1
-%define taglevel 22
+%define version 5.0
+%define taglevel 0
 
 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
-%global python_sitearch        %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" )
-%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
 
 Name: %{name}
 Version: %{version}
@@ -24,31 +22,34 @@ URL: %{SCMURL}
 Summary: Server-side for SFA, generic implementation derived from PlanetLab
 Group: Applications/System
 BuildRequires: make
-BuildRequires: python-setuptools
 
-# for the registry
-Requires: postgresql >= 8.2, postgresql-server >= 8.2
-Requires: postgresql-python
-Requires: python-psycopg2
-# f8=0.4 - f12=0.5 f14=0.6 f16=0.7
-Requires: python-sqlalchemy
-Requires: python-migrate
 # for uuidgen - used in db password generation
-# on f8 this actually comes with e2fsprogs, go figure
 Requires: util-linux-ng
-# and the SFA libraries of course
+# for the registry
+Requires: postgresql >= 8.2, postgresql-server >= 8.2
+Requires: python3-PyGreSQL
+Requires: python3-psycopg2
+Requires: python3-sqlalchemy
+Requires: python3-migrate
+Requires: python3-tempita
+Requires: python3-decorator
+# and of course the bulk of it
 Requires: sfa-common
 
 %package common
 Summary: Python libraries for SFA, generic implementation derived from PlanetLab
 Group: Applications/System
-Requires: python >= 2.7
-Requires: pyOpenSSL >= 0.7
-Requires: m2crypto
-Requires: python-dateutil
-Requires: python-lxml
-Requires: libxslt-python
-Requires: python-ZSI
+Requires: python3
+Requires: python3-pyOpenSSL
+Requires: python3-m2crypto
+Requires: python3-dateutil
+Requires: python3-lxml
+# %if "%{distro}" == "Fedora" && "%{distrorelease}" <= "27"
+# Requires: python-ZSI
+# %else
+# Requires: python2-zsi
+# %endif
+# Requires: libxslt-python
 Requires: xmlsec1-openssl-devel
 
 %package client
@@ -62,21 +63,6 @@ Summary: the SFA layer around MyPLC
 Group: Applications/System
 Requires: sfa
 
-%package flashpolicy
-Summary: SFA support for flash clients
-Group: Applications/System
-Requires: sfa
-
-%package federica
-Summary: the SFA layer around Federica
-Group: Applications/System
-Requires: sfa
-
-%package nitos
-Summary: the SFA layer around NITOS
-Group: Applications/System
-Requires: sfa
-
 %package iotlab
 Summary: the SFA layer around IotLab
 Group: Applications/System
@@ -113,15 +99,6 @@ sfi.py, together with other utilities.
 This package implements the SFA interface which serves as a layer
 between the existing PlanetLab interfaces and the SFA API.
 
-%description flashpolicy
-This package provides support for adobe flash client applications.
-
-%description federica
-The SFA driver for FEDERICA.
-
-%description nitos
-The SFA driver for NITOS.
-
 %description iotlab
 The SFA driver for IotLab.
 
@@ -150,34 +127,34 @@ make VERSIONTAG="%{version}-%{taglevel}" SCMURL="%{SCMURL}" install DESTDIR="$RP
 rm -rf $RPM_BUILD_ROOT
 
 %files
-/usr/lib/systemd/system/*.service
+/lib/systemd/system/*.service
 %{_bindir}/sfa-start.py*
 %{_bindir}/sfaadmin.py*
 %{_bindir}/sfaadmin
 %{_bindir}/keyconvert.py*
 %{_bindir}/sfa-config-tty
 %{_bindir}/sfa-config
-%{_bindir}/sfa-db-init.sh
+%{_bindir}/sfa-setup.sh
 %config /etc/sfa/default_config.xml
 %config (noreplace) /etc/sfa/aggregates.xml
 %config (noreplace) /etc/sfa/registries.xml
 %config (noreplace) /etc/sfa/api_versions.xml
 /usr/share/sfa/migrations
 /usr/share/sfa/examples
-/var/www/html/wsdl/*.wsdl
 
 %files common
-%{python_sitelib}/sfa/__init__.py*
-%{python_sitelib}/sfa/trust
-%{python_sitelib}/sfa/storage
-%{python_sitelib}/sfa/util
-%{python_sitelib}/sfa/server
-%{python_sitelib}/sfa/methods
-%{python_sitelib}/sfa/generic
-%{python_sitelib}/sfa/managers
-%{python_sitelib}/sfa/importer
-%{python_sitelib}/sfa/rspecs
-%{python_sitelib}/sfa/client
+%{python3_sitelib}/sfa/__init__.py*
+%{python3_sitelib}/sfa/__pycache__/__init__*.pyc
+%{python3_sitelib}/sfa/trust
+%{python3_sitelib}/sfa/storage
+%{python3_sitelib}/sfa/util
+%{python3_sitelib}/sfa/server
+%{python3_sitelib}/sfa/methods
+%{python3_sitelib}/sfa/generic
+%{python3_sitelib}/sfa/managers
+%{python3_sitelib}/sfa/importer
+%{python3_sitelib}/sfa/rspecs
+%{python3_sitelib}/sfa/client
 
 %files client
 %config (noreplace) /etc/sfa/sfi_config
@@ -192,8 +169,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files plc
 %defattr(-,root,root)
-%{python_sitelib}/sfa/planetlab
-%{python_sitelib}/sfa/openstack
+%{python3_sitelib}/sfa/planetlab
 /etc/sfa/pl.rng
 /etc/sfa/credential.xsd
 /etc/sfa/top.xsd
@@ -202,57 +178,71 @@ rm -rf $RPM_BUILD_ROOT
 /etc/sfa/protogeni-rspec-common.xsd
 /etc/sfa/topology
 
-%files flashpolicy
-%{_bindir}/sfa_flashpolicy.py*
-/etc/sfa/sfa_flashpolicy_config.xml
-
-%files federica
-%{python_sitelib}/sfa/federica
-
-%files nitos
-%{python_sitelib}/sfa/nitos
-
 %files iotlab
-%{python_sitelib}/sfa/iotlab
+%{python3_sitelib}/sfa/iotlab
 
 %files dummy
-%{python_sitelib}/sfa/dummy
+%{python3_sitelib}/sfa/dummy
 
 %files sfatables
 /etc/sfatables/*
 %{_bindir}/sfatables
-%{python_sitelib}/sfatables
+%{python3_sitelib}/sfatables
 
 %files tests
 %{_datadir}/sfa/tests
 
-### sfa installs the 'sfa' service
+# arbitrary choice here, subject to manual tweaks if needed
+# this is in line with default_config.xml
+# no need to enable sfa-db, will be activated as a dependency
 %post
-chkconfig --add sfa
+systemctl enable sfa-aggregate
+systemctl enable sfa-registry
+true
 
 %preun
 if [ "$1" = 0 ] ; then
-  /sbin/service sfa stop || :
-  /sbin/chkconfig --del sfa || :
+    for service in sfa-aggregate sfa-registry sfa-db; do
+        systemctl is-enabled $service && systemctl disable $service
+        systemctl is-active $service && systemctl stop $service
+    done
 fi
+true
 
 %postun
-[ "$1" -ge "1" ] && { service sfa dbdump ; service sfa restart ; }
-
-#### sfa-cm installs the 'sfa-cm' service
-#%post cm
-#chkconfig --add sfa-cm
-#
-#%preun cm
-#if [ "$1" = 0 ] ; then
-#   /sbin/service sfa-cm stop || :
-#   /sbin/chkconfig --del sfa-cm || :
-#fi
-#
-#%postun cm
-#[ "$1" -ge "1" ] && service sfa-cm restart || :
+if [ "$1" -ge "1" ] ; then
+    for service in sfa-db sfa-registry sfa-aggregate; do
+        systemctl is-active $service && systemctl restart $service
+    done
+fi
+true
 
 %changelog
+* Fri Mar 29 2019 Thierry Parmentelat <thierry.parmentelat@inria.fr> - sfa-5.0-0
+- ported to python3 - no other change
+
+* Mon Jan 07 2019 Thierry <Parmentelat> - sfa-4.0-2
+- have shebangs mention python2 since it is what this version runs on
+- use rpm names in python2-something for expressing dependencies
+- remove build dependency to python-setuptools
+- Handle C-BAS hrn format with "\" (Loic)
+- sfa-start does not daemonize anymore (this is handled by systemd)
+- a little nicer logs when troubleshooting auth issues
+- use systemctl in Makefile when syncing
+
+* Wed May 30 2018 Thierry <Parmentelat> - sfa-4.0-1
+- systemd service files install in /lib instead of /usr/lib for ubuntus
+- removed all features relating to slice manager
+- removed all features relating to component manager
+
+* Mon May 28 2018 Thierry <Parmentelat> - sfa-4.0-0
+- expose geni_api_versions as https://
+- avoid publishing non-relevant entries in GetVersion
+- fixes in the IoT-lab driver (thanks Loic)
+- reviewed logging policy, less awkward and more reliable; /var/log/sfa{,-import}.log should now be alive and time rotate
+- rewrote init-style startup script into systemd-native services: sfa-aggregate and sfa-registry, that both depend on sfa-db
+- huge cleanup, removed everything related to init.d; debian; flash-policy; max aggregate; federica, openstack/nova and nitos drivers
+
 * Fri Mar 16 2018 Thierry <Parmentelat> - sfa-3.1-22
 - pl: tweaks for exposing country / city on nodes from site tags if set
 - pl: tweaks for exposing hardware_types on nodes from node tag 'hardware_type' if set
@@ -828,7 +818,7 @@ fi
 * Fri Jun 10 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - sfa-1.0-23
 - includes a change on passphrases that was intended in 1.0-22
 
-* Thu Jun 6 2011 Tony Mack <tmack@cs.princeton.edu> - sfa-1.0-22
+* Mon Jun 6 2011 Tony Mack <tmack@cs.princeton.edu> - sfa-1.0-22
 - Added support for ProtoGENI RSpec v2
 
 * Wed Mar 16 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - sfa-1.0-21
@@ -956,7 +946,7 @@ fi
   the api handler on every new server request, making it easier to access the
   cache and use in more general ways.
 
-* Thu May 11 2010 Tony Mack <tmack@cs.princeton.edu> - sfa-0.9-11
+* Tue May 11 2010 Tony Mack <tmack@cs.princeton.edu> - sfa-0.9-11
 - SfaServer now uses a pool of threads to handle requests concurrently
 - sfa.util.rspec no longer used to process/manage rspecs (deprecated). This is now handled by sfa.plc.network and is not backwards compatible
 - PIs can now get a slice credential for any slice at their site without having to be a member of the slice
@@ -1075,7 +1065,7 @@ fi
 * Sat May 30 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - geniwrapper-0.2-2
 - bugfixes - still a work in progress
 
-* Fri May 18 2009 Baris Metin <tmetin@sophia.inria.fr>
+* Mon May 18 2009 Baris Metin <tmetin@sophia.inria.fr>
 - initial package