View Issue Details

IDProjectCategoryView StatusLast Update
0002355Slicer4Core: Base Codepublic2017-06-07 23:27
Reporterjcfr Assigned Tojcfr  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002355: Build and package openssl ?
Description

Investigate how openssl could be build in a cross platform fashion so that Qt could support for example"https" protocole

TagsNo tags attached.

Relationships

has duplicate 0002998 closedjcfr Integrate OpenSSL 
related to 0002354 closedjcfr Extension manager does not load images from https servers and progress bar never reaches 100% 

Activities

jcfr

jcfr

2013-07-15 13:58

administrator   ~0009056

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   ~0009155

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

2014-03-06 04:56

administrator   ~0010810

Closing resolved issues that have not been updated in more than 3 months

jcfr

jcfr

2017-06-07 23:27

administrator   ~0014632

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

Issue History

Date Modified Username Field Change
2012-07-25 15:42 jcfr New Issue
2012-07-25 15:42 jcfr Status new => assigned
2012-07-25 15:42 jcfr Assigned To => pieper
2012-07-25 15:42 jcfr Target Version => Slicer 4.3.0
2012-07-25 15:42 jcfr Relationship added child of 0002354
2012-07-25 15:43 jcfr Relationship deleted child of 0002354
2012-07-25 15:43 jcfr Relationship added related to 0002354
2013-03-06 18:04 jcfr Assigned To pieper => jcfr
2013-03-06 18:05 jcfr Relationship added has duplicate 0002998
2013-07-15 13:58 jcfr Note Added: 0009056
2013-07-15 13:59 jcfr Note Edited: 0009056
2013-07-19 18:36 jcfr Note Added: 0009155
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: 0009155
2014-03-06 04:56 jcfr Note Added: 0010810
2014-03-06 04:58 jcfr Status resolved => closed
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: 0014632