%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}
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
+# 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
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
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.
rm -rf $RPM_BUILD_ROOT
%files
-/etc/init.d/sfa
-/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
%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
/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
* 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
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
* 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