1 Star 0 Fork 0

fashioncat / Slicer-OpenSSL

Gitee — Enterprise-level DevOps R&D management platform
Join Gitee
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

overview

This project has two roles:

  • configure, build, archive and automatically upload Release and Debug OpenSSL install trees as release assets
  • organize OpenSSL source archives in a dedicated release

For any given Visual Studio generator, three archives are generated and uploaded to the corresponding GitHub release:

  • OpenSSL_<OPENSSL_VERSION>-install-msvc<MSVC_VERSION>-<bitness>-Debug.tar.gz
  • OpenSSL_<OPENSSL_VERSION>-install-msvc<MSVC_VERSION>-<bitness>-Release.tar.gz
  • OpenSSL_<OPENSSL_VERSION>-install-msvc<MSVC_VERSION>-<bitness>.tar.gz

where

  • <OPENSSL_VERSION> is of the form <major>_<minor>_<patch><letter>
  • <MSVC_VERSION> is a four digit number identifying visual studio
  • <bitness> is either 32 or 64

For example:

  • OpenSSL_1_0_2n-install-msvc1900-64-Debug.tar.gz
  • OpenSSL_1_0_2n-install-msvc1900-64-Release.tar.gz
  • OpenSSL_1_0_2n-install-msvc1900-64.tar.gz

prerequisites

guides

upload a new source archives

  1. Download official OpenSSL archive from https://www.openssl.org/source/
  2. Upload archive in the source release
  3. Update release description

add support for building a new version of OpenSSL

  1. Attempt to configure and build OpenSSL disabling upload (see instructions below)
  2. Two possible scenarios:
  • If it succeeds, publish a new tag associated with the current master branch
  • If it fails, update the CMakeLists.txt and try again

build and upload install tree archives for a specific Visual Studio version

Archives for OpenSSL version associated with the CMake variable OPENSSL_VERSION are built. Inspect the CMakeLists.txt to find out which version is built by default.

  1. Git clone this repository (or download CMakeLists.txt) into a folder such as C:\path\Slicer-OpenSSL
  2. Create a build folder such as C:\path\Slicer-OpenSSL-build
  3. Open Visual Studio terminal for the desired version and architecture
  4. Configure specifying matching Visual Studio generator and architecture as well as PERL_COMMAND, GITHUB_RELEASE_EXECUTABLE and GITHUB_TOKEN options:
    set PERL_COMMAND=C:\StrawberryPerl-x64\perl\bin\perl.exe
    set GITHUB_RELEASE_EXECUTABLE=D:\Support\github-release-venv\Scripts\githubrelease.exe
    set GITHUB_TOKEN=xyz
    
    cd C:\path\Slicer-OpenSSL-build
    cmake.exe ^
      -DPERL_COMMAND=%PERL_COMMAND% ^
      -DGITHUB_RELEASE_EXECUTABLE=%GITHUB_RELEASE_EXECUTABLE% ^
      -DGITHUB_TOKEN=%GITHUB_TOKEN% ^
      -G "Visual Studio 16 2019" ^
      -A x64 ^
      -DUPLOAD_PACKAGES=ON ^
    ../Slicer-OpenSSL
  5. Build Since UPLOAD_PACKAGES is ON, install tree archives are automatically uploaded as assets associated with the release named after the selected OPENSSL_VERSION.
    cmake.exe --build .
  6. Once archives are uploaded, update the release description (see below)

update release description

The following snippet was designed for updating the description of releases organizing install tree archives and it should be executed in bash.

It also expects githubrelease command line tool to be in the PATH.

version=1.1.1g

cd /tmp

#
# download assets
#
githubrelease asset Slicer/Slicer-OpenSSL download ${version}

#
# compute SHA256 and generate release description
#
description_file=/tmp/Slicer-OpenSSL-${version}-release-description.txt
download_url_base=https://github.com/Slicer/Slicer-OpenSSL/releases/download/${version}
IFS=$'\n'
for line in $(sha256sum OpenSSL_${version//./_}*); do
  sha256=$(echo ${line} | cut -f1 -d" ");
  file=$(echo ${line} | cut -f3 -d" ");
  md5sum=$(md5sum ${file} | cut -f1 -d" ")
  file=${file##*/}
  echo -e "* [${file}]($download_url_base/${file})\n  * SHA256: \`${sha256}\`\n  * MD5: \`${md5sum}\`";
done > ${description_file}

cat ${description_file}

#
# Update release description
#
githubrelease release Slicer/Slicer-OpenSSL edit ${version} --body "$(cat ${description_file})"

license

This project is covered by the OSI-approved BSD 3-clause License.

OpenSSL is distributed under the OpenSSL License. For more information about OpenSSL, visit https://www.openssl.org/

Repository Comments ( 0 )

Sign in for post a comment

About

No description expand collapse
BSD-3-Clause
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more
1
https://gitee.com/fashioncat/Slicer-OpenSSL.git
git@gitee.com:fashioncat/Slicer-OpenSSL.git
fashioncat
Slicer-OpenSSL
Slicer-OpenSSL
master

Search

181749 a2d7925e 1850385 181749 9f8568a7 1850385