From: unknown <mark.ros...@gmail.com> --- Documentation/development/compiling.md | 12 +----------- common/basicframe.cpp | 3 +++ common/kicad_curl/kicad_curl.cpp | 26 ++++++++++++++++++++++++++ common/kicad_curl/kicad_curl_easy.cpp | 26 +++++++++++++------------- include/kicad_curl/kicad_curl.h | 7 +++++++ include/kicad_curl/kicad_curl_easy.h | 6 +++--- pcbnew/github/CMakeLists.txt | 2 -- pcbnew/github/github_getliblist.cpp | 5 +++-- pcbnew/github/github_plugin.cpp | 3 ++- 9 files changed, 58 insertions(+), 32 deletions(-)
diff --git a/Documentation/development/compiling.md b/Documentation/development/compiling.md index 11e8af4..de0e3ed 100644 --- a/Documentation/development/compiling.md +++ b/Documentation/development/compiling.md @@ -78,14 +78,6 @@ specific patches required to build a working Boost library. These patches can b [patches folder][] in the KiCad source. These patches are named by the platform name they should be applied against. -## OpenSSL Secure Socket Layer Library ## {#openssl} - -The [OpenSSL][] library is only required when the KiCad build is configured with the Github plugin -enabled. See the [KiCad Build Configuration Options](#build_opts)` section for more information. -Please note that KiCad will download and build version 1.0.1e of OpenSSL by default. You should -probably use the version of OpenSSL installed on your system as it will most likely be more up to -date and contain the latest security fixes. - ## GLEW OpenGL Extension Wrangler Library ## {#glew} The [OpenGL Extension Wrangler][GLEW] is an OpenGL helper library used by the KiCad graphics @@ -274,7 +266,7 @@ the following commands: mingw-w64-x86_64-boost \ mingw-w64-x86_64-cairo \ mingw-w64-x86_64-glew \ - mingw-w64-x86_64-openssl \ + mingw-w64-x86_64-curl \ mingw-w64-x86_64-wxPython \ mingw-w64-x86_64-wxWidgets cd kicad-source @@ -286,7 +278,6 @@ the following commands: -DCMAKE_PREFIX_PATH=/mingw64 \ -DCMAKE_INSTALL_PREFIX=/mingw64 \ -DDEFAULT_INSTALL_PATH=/mingw64 \ - -DOPENSSL_ROOT_DIR=/mingw64 \ -DKICAD_SKIP_BOOST=ON \ -DKICAD_SCRIPTING=ON \ -DKICAD_SCRIPTING_MODULES=ON \ @@ -383,7 +374,6 @@ Boost patches in the KiCad source [patch folder][]. [wxWidgets]: http://wxwidgets.org/ [patches folder]: http://bazaar.launchpad.net/~kicad-product-committers/kicad/product/files/head:/patches/ [Boost]: http://www.boost.org/ -[OpenSSL]: https://www.openssl.org/ [GLEW]: http://glew.sourceforge.net/ [GLUT]: https://www.opengl.org/resources/libraries/glut/ [Cairo]: http://cairographics.org/ diff --git a/common/basicframe.cpp b/common/basicframe.cpp index 05af429..e39a5b2 100644 --- a/common/basicframe.cpp +++ b/common/basicframe.cpp @@ -28,6 +28,7 @@ * @brief EDA_BASE_FRAME class implementation. */ +#include <kicad_curl/kicad_curl.h> /* Include before any wx file */ #include <wx/aboutdlg.h> #include <wx/fontdlg.h> #include <wx/clipbrd.h> @@ -573,6 +574,8 @@ void EDA_BASE_FRAME::CopyVersionInfoToClipboard( wxCommandEvent& event ) << ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) << ( BOOST_VERSION % 100 ) << wxT( "\n" ); + msg_version << KICAD_CURL::GetSimpleVersion() << wxT( "\n" ); + msg_version << wxT( " USE_WX_GRAPHICS_CONTEXT=" ); #ifdef USE_WX_GRAPHICS_CONTEXT msg_version << wxT( "ON\n" ); diff --git a/common/kicad_curl/kicad_curl.cpp b/common/kicad_curl/kicad_curl.cpp index 7424eec..0df2528 100644 --- a/common/kicad_curl/kicad_curl.cpp +++ b/common/kicad_curl/kicad_curl.cpp @@ -51,4 +51,30 @@ std::string KICAD_CURL::GetVersion() } +std::string KICAD_CURL::GetSimpleVersion() +{ + curl_version_info_data *info = curl_version_info(CURLVERSION_NOW); + + std::string res; + + if( info->version ) + { + res += "libcurl version: " + std::string(info->version); + } + + res += " ("; + if( info->features & CURL_VERSION_SSL ) + { + res += "with SSL - "; + res += std::string(info->ssl_version); + } + else + { + res += "without SSL"; + } + res += ")"; + + return res; +} + bool KICAD_CURL::m_initialized = false; \ No newline at end of file diff --git a/common/kicad_curl/kicad_curl_easy.cpp b/common/kicad_curl/kicad_curl_easy.cpp index 71a410d..4dadf04 100644 --- a/common/kicad_curl/kicad_curl_easy.cpp +++ b/common/kicad_curl/kicad_curl_easy.cpp @@ -43,8 +43,8 @@ KICAD_CURL_EASY::KICAD_CURL_EASY() THROW_IO_ERROR( "Unable to initialize CURL session" ); } - m_Buffer.payload = (char*)malloc( 1 ); - m_Buffer.size = 0; + m_Buffer.Payload = (char*)malloc( 1 ); + m_Buffer.Size = 0; curl_easy_setopt( m_CURL, CURLOPT_WRITEFUNCTION, write_callback ); curl_easy_setopt( m_CURL, CURLOPT_WRITEDATA, (void *)&m_Buffer ); @@ -53,7 +53,7 @@ KICAD_CURL_EASY::KICAD_CURL_EASY() KICAD_CURL_EASY::~KICAD_CURL_EASY() { - free(m_Buffer.payload); + free(m_Buffer.Payload); curl_easy_cleanup(m_CURL); } @@ -110,27 +110,27 @@ static size_t write_callback( void *contents, size_t size, size_t nmemb, void *u struct KICAD_EASY_CURL_BUFFER *p = ( struct KICAD_EASY_CURL_BUFFER * ) userp; /* expand buffer */ - p->payload = (char *) realloc( p->payload, p->size + realsize + 1 ); + p->Payload = (char *) realloc( p->Payload, p->Size + realsize + 1 ); /* check buffer */ - if ( p->payload == NULL ) + if ( p->Payload == NULL ) { wxLogError( wxT( "Failed to expand buffer in curl_callback" ) ); /* free buffer */ - free( p->payload ); + free( p->Payload ); return -1; } /* copy contents to buffer */ - memcpy( &(p->payload[p->size]), contents, realsize ); + memcpy( &(p->Payload[p->Size]), contents, realsize ); /* set new buffer size */ - p->size += realsize; + p->Size += realsize; /* ensure null termination */ - p->payload[p->size] = 0; + p->Payload[p->Size] = 0; /* return size */ return realsize; @@ -144,11 +144,11 @@ void KICAD_CURL_EASY::Perform() curl_easy_setopt( m_CURL, CURLOPT_HTTPHEADER, m_headers ); } - if( m_Buffer.size > 0 ) + if( m_Buffer.Size > 0 ) { - free( m_Buffer.payload ); - m_Buffer.payload = (char*)malloc( 1 ); - m_Buffer.size = 0; + free( m_Buffer.Payload ); + m_Buffer.Payload = (char*)malloc( 1 ); + m_Buffer.Size = 0; } CURLcode res = curl_easy_perform( m_CURL ); diff --git a/include/kicad_curl/kicad_curl.h b/include/kicad_curl/kicad_curl.h index 3639400..ef49f92 100644 --- a/include/kicad_curl/kicad_curl.h +++ b/include/kicad_curl/kicad_curl.h @@ -75,6 +75,13 @@ public: */ static std::string GetVersion(); + /** + * Function GetSimpleVersion + * Reports back curl version only and SSL library support + * + * @return std::string - Generated version string + */ + static std::string GetSimpleVersion(); private: static bool m_initialized; }; diff --git a/include/kicad_curl/kicad_curl_easy.h b/include/kicad_curl/kicad_curl_easy.h index a87c3d0..2273e48 100644 --- a/include/kicad_curl/kicad_curl_easy.h +++ b/include/kicad_curl/kicad_curl_easy.h @@ -52,8 +52,8 @@ */ struct KICAD_EASY_CURL_BUFFER { - char* payload; - size_t size; + char* Payload; + size_t Size; }; @@ -142,7 +142,7 @@ public: * @param aArg is the argument being passed to CURL, ensure it is the right type per manual * @return CURLcode - CURL error code, will return CURLE_OK unless a problem was encountered */ - template <typename T> CURLcode SetOption( CURLoption aOption, T aArg ) + template <typename T> CURLcode SetOption( CURLoption aOption, T aArg ) { return curl_easy_setopt( m_CURL, aOption, aArg ); } diff --git a/pcbnew/github/CMakeLists.txt b/pcbnew/github/CMakeLists.txt index bb37ebf..c6615e4 100644 --- a/pcbnew/github/CMakeLists.txt +++ b/pcbnew/github/CMakeLists.txt @@ -32,8 +32,6 @@ set( GITHUB_PLUGIN_SRCS add_library( github_plugin STATIC ${GITHUB_PLUGIN_SRCS} ) -# No, you don't get github without boost and openssl. Boost_LIBRARIES now moved up -# into CMakeLists.txt for pcbnew and cvpcb: target_link_libraries( github_plugin common ) diff --git a/pcbnew/github/github_getliblist.cpp b/pcbnew/github/github_getliblist.cpp index 4802013..90d015b 100644 --- a/pcbnew/github/github_getliblist.cpp +++ b/pcbnew/github/github_getliblist.cpp @@ -209,7 +209,7 @@ bool GITHUB_GETLIBLIST::repoURL2listURL( const wxString& aRepoURL, bool GITHUB_GETLIBLIST::remoteGetJSON( const std::string& aFullURLCommand, wxString* aMsgError ) { KICAD_CURL_EASY kcurl; - + wxLogDebug( wxT( "Attempting to download: " ) + aFullURLCommand ); kcurl.SetURL(aFullURLCommand); @@ -220,7 +220,8 @@ bool GITHUB_GETLIBLIST::remoteGetJSON( const std::string& aFullURLCommand, wxStr try { kcurl.Perform(); - m_image.assign(kcurl.GetBuffer()->payload, kcurl.GetBuffer()->size); + m_image.reserve( kcurl.GetBuffer()->Size ); + m_image.assign( kcurl.GetBuffer()->Payload, kcurl.GetBuffer()->Size ); return true; } catch( const IO_ERROR& ioe ) diff --git a/pcbnew/github/github_plugin.cpp b/pcbnew/github/github_plugin.cpp index 0039734..df02141 100644 --- a/pcbnew/github/github_plugin.cpp +++ b/pcbnew/github/github_plugin.cpp @@ -538,7 +538,8 @@ void GITHUB_PLUGIN::remoteGetZip( const wxString& aRepoURL ) throw( IO_ERROR ) try { kcurl.Perform(); - m_zip_image.assign(kcurl.GetBuffer()->payload, kcurl.GetBuffer()->size); + m_zip_image.reserve( kcurl.GetBuffer()->Size ); + m_zip_image.assign( kcurl.GetBuffer()->Payload, kcurl.GetBuffer()->Size ); } catch( const IO_ERROR& ioe ) {
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp