View Issue Details

IDProjectCategoryView StatusLast Update
0002998Slicer4Core: Building (CMake, Superbuild)public2017-06-07 23:27
Reporterjcfr Assigned Tojcfr  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product VersionSlicer 4.2.2-1 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002998: Integrate OpenSSL
Description

It should be possible to make sure of SSL capabilities from either python or Qt.

TagsNo tags attached.

Relationships

duplicate of 0002355 closedjcfr Build and package openssl ? 
related to 0003236 closedjcfr Build curl with OpenSSL support 
related to 0001718 closedjcfr SSL / HTTPS Issues with Python Interactor and QT - Windows 7 

Activities

jcfr

jcfr

2013-07-15 13:58

administrator   ~0009055

Last edited: 2013-07-15 13:59

Just pushed a "near complete" topic that should address the issue: https://github.com/jcfr/Slicer/tree/2998-ssl-support

jcfr

jcfr

2013-07-19 18:36

administrator   ~0009154

Last edited: 2013-07-19 18:45

Fixed in r22220
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22220

Note: To enable OpenSSL support, configure setting Slicer_USE_PYTHONQT_WITH_OPENSSL option to ON. Next week, the option will be ON by default, time to
(1) send an email on the devel list,
(2) update Qt build instruction on the wiki,
(3) eventually upload already compiled Qt build tree on http://packages.kitware.com, and
(4) let windows developer know they should build Qt with openssl support.

jcfr

jcfr

2017-06-07 23:27

administrator   ~0014631

Fix committed to 2145-support-for-installing-extension-from-file branch.

Related Changesets

Slicer: 2145-support-for-installing-extension-from-file 897bf9e6

2013-07-19 22:16:35

jcfr

Details Diff
ENH: Add SSL support

Having the application interacting with services or downloading resources
served over https protocol is now required. More particularly,
it became necessary to access resources stored on Github (extension
manager - issue 0002354) or to download python packages from pip server
at run time.

The CMake option "Slicer_USE_PYTHONQT_WITH_OPENSSL" allowing to enable or
disable OpenSSL support has been introduced is set to OFF by default.

Building OpenSSL
================

On Windows, since Perl is required, OpenSSL binaries have been
generated and uploaded on kitware packages server. See [1]

The project allowing to re-generate the Windows OpenSSL archive is currently
hosted here [2].

On unix-like system, OpenSSL is built has part of the Superbuild. To ensure
is can be built in parallel, a patch is also applied [3].

Finally, since python is built with OpenSSL support, the python launcher
is now configured on all platform so that python can properly load the built
OpenSSL shared library when it is used to build project like numpy.

[1] http://packages.kitware.com/packages/application/view?applicationId=20
[2] https://gist.github.com/jcfr/6030240
[3] https://raw.github.com/Alexpux/Qt-builds/master/patches/openssl/openssl-1.0.1-parallel-build.patch

OpenSSL support in Qt, python, curl
===================================

Practically, it means that library like Qt, python, curl need to be
built with OpenSSL support.

This commit only address OpenSSL support for Python and Qt.

Curl support is not yet enabled.

For Qt OpenSSL support, Qt has to be built with the flags:
-openssl
-I /path/to/OpenSSL/include
-L /path/to/OpenSSL/lib

On unix-like system, available binaries are already OpenSSL ready, Qt
has to be explicitly built only on windows. On windows, Qt will have to
be built.

Certificates
============

In case X.509v3 certificates are available on the system where Slicer is
executed, a certificate bundle "Slicer.crt" is also provided. The set of
scripts allowing to generate the bundle are provided by BLFS
(Beyond Linux From Scratch).
More details in Base/QTCore/Resources/Certs/README

Application integration
=======================

The Slicer core application will load the Slicer.crt bundle if needed.

qSlicerExtensionsInstallWidget now derives from a re-usable widget
named qSlicerWebWidget.

qSlicerSslTest has been added to check that "https" connection can
be established using Qt library.

Fixes 0002998
Fixes 0002355
Fixes 0002354

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22220 3bd1e089-480b-0410-8dfb-8563597acbee
add - Base/QTCore/Resources/Certs/README Diff File
add - Base/QTCore/Resources/Certs/Slicer.crt Diff File
add - Base/QTCore/Resources/Certs/make-ca.sh Diff File
add - Base/QTCore/Resources/Certs/make-cert.pl Diff File
add - Base/QTCore/Resources/Certs/remove-expired-certs.sh Diff File
mod - Base/QTCore/Resources/qSlicerBaseQTCore.qrc Diff File
mod - Base/QTCore/Testing/Cxx/CMakeLists.txt Diff File
add - Base/QTCore/Testing/Cxx/qSlicerSslTest.cxx Diff File
mod - Base/QTCore/qSlicerCoreApplication.cxx Diff File
mod - Base/QTCore/qSlicerCoreApplication.h Diff File
mod - Base/QTGUI/CMakeLists.txt Diff File
mod - Base/QTGUI/qSlicerExtensionsInstallWidget.cxx Diff File
mod - Base/QTGUI/qSlicerExtensionsInstallWidget.h Diff File
add - Base/QTGUI/qSlicerWebWidget.cxx Diff File
add - Base/QTGUI/qSlicerWebWidget.h Diff File
mod - CMake/SlicerBlockCTKAppLauncherSettings.cmake Diff File
add - CMake/SlicerBlockInstallOpenSSL.cmake Diff File
mod - CMake/SlicerCPack.cmake Diff File
mod - CMake/SlicerCPackBundleFixup.cmake.in Diff File
mod - CMakeLists.txt Diff File
mod - SuperBuild.cmake Diff File
add - SuperBuild/External_OpenSSL.cmake Diff File
mod - SuperBuild/External_python.cmake Diff File
add - SuperBuild/OpenSSL-1.0.1-parallel-build.patch Diff File
add - SuperBuild/OpenSSL_patch_and_configure_step.cmake.in Diff File
mod - SuperBuild/python_customPythonLauncherSettings.ini.in Diff File

Slicer: 2145-support-for-installing-extension-from-file 0cb14166

2013-07-22 10:59:46

jcfr

Details Diff
COMP: Fix build error occurring when OpenSSL support is disabled

While commit r22220 added SSL support ensuring the CMake option
"Slicer_USE_PYTHONQT_WITH_OPENSSL" was disabled by default. Not all OpenSSL
related code was properly excluded, this commit ensures Slicer can be
compiled with OpenSSL support disabled.

Discussion: http://slicer-devel.65872.n3.nabble.com/Windows-build-fails-due-to-missing-QSslSocket-class-tt4029446.html

See issue 0002998 and 0002355

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22226 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/Testing/Cxx/CMakeLists.txt Diff File
mod - Base/QTCore/qSlicerCoreApplication.cxx Diff File
mod - Base/QTGUI/qSlicerWebWidget.cxx Diff File
mod - Base/QTGUI/qSlicerWebWidget.h Diff File
mod - CMake/vtkSlicerConfigure.h.in Diff File

Issue History

Date Modified Username Field Change
2013-03-06 18:04 jcfr New Issue
2013-03-06 18:04 jcfr Status new => assigned
2013-03-06 18:04 jcfr Assigned To => jcfr
2013-03-06 18:05 jcfr Target Version => Slicer 4.3.0
2013-03-06 18:05 jcfr Relationship added duplicate of 0002355
2013-07-15 13:58 jcfr Note Added: 0009055
2013-07-15 13:59 jcfr Note Edited: 0009055
2013-07-19 18:36 jcfr Note Added: 0009154
2013-07-19 18:36 jcfr Status assigned => resolved
2013-07-19 18:36 jcfr Fixed in Version => Slicer 4.3.0
2013-07-19 18:36 jcfr Resolution open => fixed
2013-07-19 18:45 jcfr Note Edited: 0009154
2013-07-19 18:48 jcfr Relationship added related to 0003236
2013-08-30 18:43 jcfr Relationship added related to 0001718
2013-12-04 12:50 jcfr Status resolved => closed
2017-06-07 23:27 jcfr Changeset attached => Slicer 2145-support-for-installing-extension-from-file 0cb14166
2017-06-07 23:27 jcfr Changeset attached => Slicer 2145-support-for-installing-extension-from-file 897bf9e6
2017-06-07 23:27 jcfr Note Added: 0014631