View Issue Details

IDProjectCategoryView StatusLast Update
0002354Slicer4Core: Extensionspublic2017-06-07 23:27
Reporterlassoan Assigned Tojcfr  
PrioritynormalSeveritytweakReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002354: Extension manager does not load images from https servers and progress bar never reaches 100%
Description

The extension manager cannot download images using https protocol: the loading is just never completed (the progress bar does not go beyond a certain percenage) and the affected images doesn't appear.

We use a hosting service that uses https only, so it would be nice if this could be fixed.

As a workaround we've uploaded our images to the Slicer wiki and use that simple http URL now. If providing https support is difficult then for the short term a similar workaround should be applied to the icons and screenshots of the carma and FacetedVisualizer extensions as well.

TagsNo tags attached.

Relationships

related to 0002355 closedjcfr Build and package openssl ? 

Activities

jcfr

jcfr

2012-07-25 15:45

administrator   ~0005237

Last edited: 2012-07-25 18:09

This problem happen because the nightly package are not built with openssl support. Issue 0002355 captures the problem.

We could also be smarter about detecting the protocol and add a link to a dummy image instead.

jcfr

jcfr

2013-07-19 18:45

administrator   ~0009156

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

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

jcfr

jcfr

2017-06-07 23:27

administrator   ~0014633

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:31 lassoan New Issue
2012-07-25 15:31 lassoan Status new => assigned
2012-07-25 15:31 lassoan Assigned To => jcfr
2012-07-25 15:42 jcfr Relationship added parent of 0002355
2012-07-25 15:42 jcfr Target Version => Slicer 4.3.0
2012-07-25 15:43 jcfr Relationship deleted parent of 0002355
2012-07-25 15:43 jcfr Relationship added related to 0002355
2012-07-25 15:45 jcfr Note Added: 0005237
2012-07-25 15:45 jcfr Status assigned => acknowledged
2012-07-25 18:09 jcfr Note Edited: 0005237
2013-07-19 18:45 jcfr Note Added: 0009156
2013-07-19 18:45 jcfr Status acknowledged => resolved
2013-07-19 18:45 jcfr Fixed in Version => Slicer 4.3.0
2013-07-19 18:45 jcfr Resolution open => fixed
2014-03-06 04:56 jcfr Note Added: 0010811
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: 0014633