Skip to content

Commit

Permalink
* upgrade to mingw/gcc 5.3.0
Browse files Browse the repository at this point in the history
also:
* drop mingw patch for OpenSSL 1.1.0 and local mingw32-make.exe
  replacement, both no longer necessary with new mingw release
* switch to shell scripts and remove all batch files
* fix a determinism bug in nghttp2 packaging
* use constant --prefix in OpenSSL for determinism
* minor adjustments to packaged curl documentation
* reset Windows attributes before packaging for determinism
* enable more log output
* enable -fno-ident for nghttp2 and librtmp
  • Loading branch information
vszakats committed Jan 2, 2016
1 parent 09db494 commit 148da54
Show file tree
Hide file tree
Showing 21 changed files with 578 additions and 503 deletions.
83 changes: 15 additions & 68 deletions appveyor.yml
Expand Up @@ -3,10 +3,12 @@ skip_tags: true
os: Windows Server 2012 R2
clone_depth: 8
clone_folder: C:\w\
build:
verbosity: detailed

environment:
BINTRAY_APIKEY:
secure: FUQVzdqjaAvLYH/yTdL1rdtrVcAheHbK4YUvNNpvArR09vfkkuAk+8ntrg2MRYa2
secure: Awq2bXuEyT0/JC/phuGILqT9hj9sVslq2+btJlFhH89a1xagztNH8h3jTru5rJKd
BINTRAY_USER:
secure: jfLq1ApyVLNouxv07skhrg==
VIRUSTOTAL_APIKEY:
Expand All @@ -25,80 +27,25 @@ install:
- set VER_LIBRTMP=2.3
- set VER_LIBSSH2=1.6.0
- set VER_CURL=7.46.0
- ps: rm alias:curl
- python -m pip --disable-pip-version-check install --upgrade pip
- python -m pip install pefile
# PATH must be reconfigured to use short name for the sh.exe location, otherwise the OpenSSL build process fails
- set PATH=C:\PROGRA~1\Git\usr\bin;%PATH%
### mingw
- ps: curl -fsS https://www.mirrorservice.org/sites/dl.sourceforge.net/pub/sourceforge/m/mi/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.2.0/threads-posix/sjlj/x86_64-5.2.0-release-posix-sjlj-rt_v4-rev0.7z -o mingw.7z
- openssl dgst -sha256 mingw.7z | findstr /i /c:c0536c55a1d12882987afd0a9be377413eaf6cee105e921c949899fa9b308b35
# Will unpack into %APPVEYOR_BUILD_FOLDER%\mingw64
- 7z x -y "-o%APPVEYOR_BUILD_FOLDER%" mingw.7z > nul
# Patch to make GetCurrentFiber() working in x86 mode for OpenSSL 1.1.0
# Ref: https://sourceforge.net/p/mingw-w64/mailman/message/34403784/
- patch -p1 -d "%APPVEYOR_BUILD_FOLDER%\mingw64" < mingw.diff
### zlib
# - curl -fsS -L --proto-redir =https https://github.com/madler/zlib/archive/v%VER_ZLIB%.tar.gz -o zip.tar.gz
# - openssl dgst -sha256 zip.tar.gz | findstr /i /c:e380bd1bdb6447508beaa50efc653fe45f4edc1dafe11a251ae093e0ee97db9a
# - tar -xvf zip.tar.gz > nul 2>&1
# - del zip.tar.gz
# - move zlib-* zlib
### nghttp2
- curl -fsS -L --proto-redir =https https://github.com/tatsuhiro-t/nghttp2/releases/download/v%VER_NGHTTP2%/nghttp2-%VER_NGHTTP2%.tar.bz2 -o nghttp2.tar.bz2
- openssl dgst -sha256 nghttp2.tar.bz2 | findstr /i /c:7ac5624bc744c766bf6b37de31d7c48dfceb648313306311943968bdad77d5bd
- tar -xvf nghttp2.tar.bz2 > nul 2>&1
- del nghttp2.tar.bz2
- move nghttp2-* nghttp2
### openssl
- curl -fsS https://www.openssl.org/source/openssl-%VER_OPENSSL%.tar.gz -o openssl.tar.gz
- openssl dgst -sha256 openssl.tar.gz | findstr /i /c:e23ccafdb75cfcde782da0151731aa2185195ac745eea3846133f2e05c0e0bff
- success tar -xvf openssl.tar.gz > nul 2>&1
- del openssl.tar.gz
- move openssl-* openssl
- sh -c ./mk-openssl-seed.sh
- dos2unix < openssl.diff | patch -p1 -d openssl
### librtmp
# - curl -fsS https://rtmpdump.mplayerhq.hu/download/rtmpdump-%VER_LIBRTMP%.tgz -o librtmp.tar.gz
# - openssl dgst -sha256 librtmp.tar.gz | findstr /i /c:ef38b7a99d82ce6912063d21063aeaf28185341b3df486e24bffce5354224b2c
# - tar -xvf librtmp.tar.gz > nul 2>&1
# - del librtmp.tar.gz
# - move rtmpdump-* librtmp
### libssh2
- curl -fsS -L --proto-redir =https https://github.com/libssh2/libssh2/releases/download/libssh2-%VER_LIBSSH2%/libssh2-%VER_LIBSSH2%.tar.gz -o libssh2.tar.gz
- openssl dgst -sha256 libssh2.tar.gz | findstr /i /c:5a202943a34a1d82a1c31f74094f2453c207bf9936093867f41414968c8e8215
- tar -xvf libssh2.tar.gz > nul 2>&1
- del libssh2.tar.gz
- move libssh2-* libssh2
- dos2unix < libssh2.diff | patch -p1 -d libssh2
### curl
- curl -fsS -L --proto-redir =https https://github.com/bagder/curl/releases/download/curl-%VER_CURL:.=_%/curl-%VER_CURL%.tar.bz2 -o curl.tar.bz2
- openssl dgst -sha256 curl.tar.bz2 | findstr /i /c:b7d726cdd8ed4b6db0fa1b474a3c59ebbbe4dcd4c61ac5e7ade0e0270d3195ad
- tar -xvf curl.tar.bz2 > nul 2>&1
- del curl.tar.bz2
- move curl-* curl
- dos2unix < curl.diff | patch -p1 -d curl
###
- reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-MM-dd /f
- reg add "HKCU\Control Panel\International" /v sShortTime /t REG_SZ /d HH:mm /f
# From https://www.mirrorservice.org/sites/dl.sourceforge.net/pub/sourceforge/m/mi/mingw-w64-dgn/mingw-w64/mingw-w64-bin-x86_64-20150801.7z
- copy /y mingw32-make.exe "%APPVEYOR_BUILD_FOLDER%\mingw64\bin\mingw32-make.exe"
- sh -c ./dl.sh

build_script:
- set PATH=%APPVEYOR_BUILD_FOLDER%\mingw64\bin;%PATH%
- set _MAK=%APPVEYOR_BUILD_FOLDER%\mingw64\bin\mingw32-make.exe
- set CPU=win32
- mk-nghttp2.bat %VER_NGHTTP2% %CPU%
- mk-openssl.bat %VER_OPENSSL% %CPU%
# - mk-librtmp.bat %VER_LIBRTMP% %CPU%
- mk-libssh2.bat %VER_LIBSSH2% %CPU%
- mk-curl.bat %VER_CURL% %CPU%
- sh -c "./mk-nghttp2.sh %VER_NGHTTP2% %CPU%"
- sh -c "./mk-openssl.sh %VER_OPENSSL% %CPU%"
# - sh -c "./mk-librtmp.sh %VER_LIBRTMP% %CPU%"
- sh -c "./mk-libssh2.sh %VER_LIBSSH2% %CPU%"
- sh -c "./mk-curl.sh %VER_CURL% %CPU%"
- set CPU=win64
- mk-nghttp2.bat %VER_NGHTTP2% %CPU%
- mk-openssl.bat %VER_OPENSSL% %CPU%
# - mk-librtmp.bat %VER_LIBRTMP% %CPU%
- mk-libssh2.bat %VER_LIBSSH2% %CPU%
- mk-curl.bat %VER_CURL% %CPU%
- sh -c "./mk-nghttp2.sh %VER_NGHTTP2% %CPU%"
- sh -c "./mk-openssl.sh %VER_OPENSSL% %CPU%"
# - sh -c "./mk-librtmp.sh %VER_LIBRTMP% %CPU%"
- sh -c "./mk-libssh2.sh %VER_LIBSSH2% %CPU%"
- sh -c "./mk-curl.sh %VER_CURL% %CPU%"
- type hashes.txt

build:
verbosity: detailed
65 changes: 65 additions & 0 deletions dl.sh
@@ -0,0 +1,65 @@
#!/bin/sh -x

# Copyright 2015-2016 Viktor Szakats (vszakats.net/harbour)

# - Requires Git for Windows or busybox to run on Windows
# - Requires VER_* envvars

# Quit if any of the lines fail
set -e

# mingw
# curl -fsS -o pack.bin 'https://www.mirrorservice.org/sites/dl.sourceforge.net/pub/sourceforge/m/mi/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.3.0/threads-posix/sjlj/x86_64-5.3.0-release-posix-sjlj-rt_v4-rev0.7z'
curl -fsS -o pack.bin -L 'https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.3.0/threads-posix/sjlj/x86_64-5.3.0-release-posix-sjlj-rt_v4-rev0.7z'
openssl dgst -sha256 pack.bin | grep -q ec28b6640ad4f183be7afcd6e9c5eabb24b89729ca3fec7618755555b5d70c19
# Will unpack into "./mingw64"
7z x -y pack.bin > /dev/null
rm pack.bin

# zlib
# curl -fsS -o pack.tar.gz -L --proto-redir =https "https://github.com/madler/zlib/archive/v${VER_ZLIB}.tar.gz"
# openssl dgst -sha256 pack.tar.gz | grep -q e380bd1bdb6447508beaa50efc653fe45f4edc1dafe11a251ae093e0ee97db9a
# tar -xvf pack.tar.gz > /dev/null 2>&1
# rm pack.tar.gz
# mv zlib-* zlib

# nghttp2
curl -fsS -o pack.tar.bz2 -L --proto-redir =https "https://github.com/tatsuhiro-t/nghttp2/releases/download/v${VER_NGHTTP2}/nghttp2-${VER_NGHTTP2}.tar.bz2"
openssl dgst -sha256 pack.tar.bz2 | grep -q 7ac5624bc744c766bf6b37de31d7c48dfceb648313306311943968bdad77d5bd
tar -xvf pack.tar.bz2 > /dev/null 2>&1
rm pack.tar.bz2
mv nghttp2-* nghttp2

# openssl
curl -fsS -o pack.tar.gz "https://www.openssl.org/source/openssl-${VER_OPENSSL}.tar.gz"
openssl dgst -sha256 pack.tar.gz | grep -q e23ccafdb75cfcde782da0151731aa2185195ac745eea3846133f2e05c0e0bff
tar -xvf pack.tar.gz > /dev/null 2>&1 || true
rm pack.tar.gz
mv openssl-* openssl

# Create a fixed seed based on the timestamp of the OpenSSL source package
sed -e "s/-frandom-seed=__RANDOM_SEED__/-frandom-seed=$(stat -c %Y openssl/CHANGES)/g" -i openssl.diff
dos2unix < openssl.diff | patch -p1 -d openssl

# librtmp
# curl -fsS -o pack.tar.gz "https://rtmpdump.mplayerhq.hu/download/rtmpdump-${VER_LIBRTMP}.tgz"
# openssl dgst -sha256 pack.tar.gz | grep -q ef38b7a99d82ce6912063d21063aeaf28185341b3df486e24bffce5354224b2c
# tar -xvf pack.tar.gz > /dev/null 2>&1
# rm pack.tar.gz
# mv rtmpdump-* librtmp

# libssh2
curl -fsS -o pack.tar.gz -L --proto-redir =https "https://github.com/libssh2/libssh2/releases/download/libssh2-${VER_LIBSSH2}/libssh2-${VER_LIBSSH2}.tar.gz"
openssl dgst -sha256 pack.tar.gz | grep -q 5a202943a34a1d82a1c31f74094f2453c207bf9936093867f41414968c8e8215
tar -xvf pack.tar.gz > /dev/null 2>&1
rm pack.tar.gz
mv libssh2-* libssh2
dos2unix < libssh2.diff | patch -p1 -d libssh2

# curl
curl -fsS -o pack.tar.bz2 -L --proto-redir =https "https://github.com/bagder/curl/releases/download/curl-$(echo "${VER_CURL}" | sed -e 's|\.|_|g')/curl-${VER_CURL}.tar.bz2"
openssl dgst -sha256 pack.tar.bz2 | grep -q b7d726cdd8ed4b6db0fa1b474a3c59ebbbe4dcd4c61ac5e7ade0e0270d3195ad
tar -xvf pack.tar.bz2 > /dev/null 2>&1
rm pack.tar.bz2
mv curl-* curl
dos2unix < curl.diff | patch -p1 -d curl
21 changes: 0 additions & 21 deletions mingw.diff

This file was deleted.

Binary file removed mingw32-make.exe
Binary file not shown.
108 changes: 0 additions & 108 deletions mk-curl.bat

This file was deleted.

0 comments on commit 148da54

Please sign in to comment.