Some checks failed
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_windows/pipeline/head This commit looks good
BlockStorage/repertory/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
### Issues * \#1 \[bug\] Unable to mount S3 due to 'item_not_found' exception * \#2 Require bucket name for S3 mounts * \#3 \[bug\] File size is not being updated in S3 mount * \#4 Upgrade to libfuse-3.x.x * \#5 Switch to renterd for Sia support * \#6 Switch to cpp-httplib to further reduce dependencies * \#7 Remove global_data and calculate used disk space per provider * \#8 Switch to libcurl for S3 mount support ### Changes from v1.x.x * Added read-only encrypt provider * Pass-through mount point that transparently encrypts source data using `XChaCha20-Poly1305` * Added S3 encryption support via `XChaCha20-Poly1305` * Added replay protection to remote mounts * Added support base64 writes in remote FUSE * Created static linked Linux binaries for `amd64` and `aarch64` using `musl-libc` * Removed legacy Sia renter support * Removed Skynet support * Fixed multiple remote mount WinFSP API issues on \*NIX servers * Implemented chunked read and write * Writes for non-cached files are performed in chunks of 8Mib * Removed `repertory-ui` support * Removed `FreeBSD` support * Switched to `libsodium` over `CryptoPP` * Switched to `XChaCha20-Poly1305` for remote mounts * Updated `GoogleTest` to v1.14.0 * Updated `JSON for Modern C++` to v3.11.2 * Updated `OpenSSL` to v1.1.1w * Updated `RocksDB` to v8.5.3 * Updated `WinFSP` to 2023 * Updated `boost` to v1.78.0 * Updated `cURL` to v8.3.0 * Updated `zlib` to v1.3 * Use `upload_manager` for all providers * Adds a delay to uploads to prevent excessive API calls * Supports re-upload after mount restart for incomplete uploads * NOTE: Uploads for all providers are full file (no resume support) * Multipart upload support is planned for S3 Reviewed-on: #9
116 lines
4.1 KiB
Batchfile
116 lines
4.1 KiB
Batchfile
@echo off
|
|
setlocal
|
|
setlocal enabledelayedexpansion
|
|
|
|
set SIGNING_FOLDER=%1
|
|
set BINARY_FOLDER=%2
|
|
set SOURCE_FOLDER=%3
|
|
set OUTPUT_FOLDER=%4
|
|
|
|
set PATH=%~dp0%..\bin;!PATH!
|
|
|
|
if "%SIGNING_FOLDER%" == "" (
|
|
call :EXIT_SCRIPT "'SIGNING_FOLDER' is not set (arg1)"
|
|
)
|
|
|
|
if "%BINARY_FOLDER%" == "" (
|
|
call :EXIT_SCRIPT "'BINARY_FOLDER' is not set (arg2)"
|
|
)
|
|
|
|
if "%SOURCE_FOLDER%" == "" (
|
|
call :EXIT_SCRIPT "'SOURCE_FOLDER' is not set (arg3)"
|
|
)
|
|
|
|
if "%OUTPUT_FOLDER%" == "" (
|
|
call :EXIT_SCRIPT "'OUTPUT_FOLDER' is not set (arg4)"
|
|
)
|
|
|
|
call :NORMALIZE "%SIGNING_FOLDER%"
|
|
set SIGNING_FOLDER=%RETVAL%
|
|
|
|
call :NORMALIZE "%BINARY_FOLDER%"
|
|
set BINARY_FOLDER=%RETVAL%
|
|
|
|
call :NORMALIZE "%SOURCE_FOLDER%"
|
|
set SOURCE_FOLDER=%RETVAL%
|
|
|
|
set BUILD_ARCH=Win64
|
|
set OPENSSL_BIN="c:\OpenSSL-%BUILD_ARCH%\bin\openssl.exe"
|
|
if NOT EXIST %OPENSSL_BIN% (
|
|
set OPENSSL_BIN="c:\Program Files\OpenSSL-%BUILD_ARCH%\bin\openssl.exe"
|
|
set REPERTORY_OPENSSL_ROOT="c:\Program Files\OpenSSL-%BUILD_ARCH%"
|
|
)
|
|
|
|
pushd "%SOURCE_FOLDER%"
|
|
for /F "tokens=*" %%f in ('git rev-parse --short HEAD') do (set GIT_REV=%%f)
|
|
for /F "tokens=*" %%f in ('git branch --show-current') do (set GIT_BRANCH=%%f)
|
|
for /F "tokens=*" %%f in ('grep set(REPERTORY_MAJOR .\CMakeLists.txt ^| sed "s/)//g" ^| awk "{print $2}"') do (set REPERTORY_VERSION=%%f)
|
|
for /F "tokens=*" %%f in ('grep set(REPERTORY_MINOR .\CMakeLists.txt ^| sed "s/)//g" ^| awk "{print $2}"') do (set REPERTORY_VERSION=%REPERTORY_VERSION%.%%f)
|
|
for /F "tokens=*" %%f in ('grep set(REPERTORY_REV .\CMakeLists.txt ^| sed "s/)//g" ^| awk "{print $2}"') do (set REPERTORY_VERSION=%REPERTORY_VERSION%.%%f)
|
|
for /F "tokens=*" %%f in ('grep set(REPERTORY_RELEASE_ITER .\CMakeLists.txt ^| sed "s/)//g" ^| awk "{print $2}"') do (set REPERTORY_VERSION=%REPERTORY_VERSION%-%%f)
|
|
popd
|
|
|
|
if "%GIT_BRANCH%" == "development" (
|
|
set RELEASE_FOLDER=nightly
|
|
) else (
|
|
set RELEASE_FOLDER=%REPERTORY_RELEASE_ITER%
|
|
)
|
|
|
|
call :NORMALIZE "%OUTPUT_FOLDER%\!RELEASE_FOLDER!"
|
|
set OUTPUT_FOLDER=%RETVAL%
|
|
|
|
set OUT_FILE=repertory_%REPERTORY_VERSION%_%GIT_REV%_windows_amd64.zip
|
|
set OUT_ZIP=%BINARY_FOLDER%\%OUT_FILE%
|
|
set FILE_LIST=repertory.exe repertory.exe.sha256 repertory.exe.sig winfsp-x64.dll winfsp-x64.dll.sha256 winfsp-x64.dll.sig cacert.pem cacert.pem.sha256 cacert.pem.sig
|
|
|
|
pushd "%BINARY_FOLDER%"
|
|
call :CLEANUP
|
|
|
|
call :CREATE_HASH "%BINARY_FOLDER%\repertory.exe"
|
|
call :CREATE_HASH "%BINARY_FOLDER%\winfsp-x64.dll"
|
|
call :CREATE_HASH "%BINARY_FOLDER%\cacert.pem"
|
|
|
|
(7za u "%OUT_FILE%" %FILE_LIST%) || (7z u "%OUT_FILE%" %FILE_LIST%) || (call :EXIT_SCRIPT "Create repertory zip failed")
|
|
|
|
call :CREATE_HASH "%OUT_FILE%"
|
|
|
|
copy /y "%OUT_ZIP%" "%OUTPUT_FOLDER%" || call :EXIT_SCRIPT "Copy %OUT_ZIP% to %OUTPUT_FOLDER% failed"
|
|
copy /y "%OUT_ZIP%.sha256" "%OUTPUT_FOLDER%" || call :EXIT_SCRIPT "Copy %OUT_ZIP%.sha256 to %OUTPUT_FOLDER% failed"
|
|
copy /y "%OUT_ZIP%.sig" "%OUTPUT_FOLDER%" || call :EXIT_SCRIPT "Copy %OUT_ZIP%.sig to %OUTPUT_FOLDER% failed"
|
|
|
|
call :CLEANUP
|
|
popd
|
|
goto :END
|
|
|
|
:CREATE_HASH
|
|
call :NORMALIZE %1
|
|
set HASH_FILE=%RETVAL%
|
|
|
|
(%OPENSSL_BIN% dgst -sha256 -sign "%SIGNING_FOLDER%\blockstorage_dev_private.pem" -out "%HASH_FILE%.sig" "%HASH_FILE%") || (call :EXIT_SCRIPT "Create %HASH_FILE% signature failed")
|
|
(%OPENSSL_BIN% dgst -sha256 -verify "%SIGNING_FOLDER%\blockstorage_dev_public.pem" -signature "%HASH_FILE%.sig" "%HASH_FILE%") || (call :EXIT_SCRIPT "Verify %HASH_FILE% signature failed")
|
|
((certutil -hashfile "%HASH_FILE%" SHA256 | sed -e "1d" -e "$d" -e "s/\ //g") > "%HASH_FILE%.sha256") || (call :EXIT_SCRIPT "Create %HASH_FILE% sha-256 failed")
|
|
EXIT /B
|
|
|
|
:CLEANUP
|
|
del /q "%OUT_ZIP%" 1>NUL 2>&1
|
|
del /q "%OUT_ZIP%.sha256" 1>NUL 2>&1
|
|
del /q "%OUT_ZIP%.sig" 1>NUL 2>&1
|
|
del /q "%BINARY_FOLDER%\cacert.pem.sha256" 1>NUL 2>&1
|
|
del /q "%BINARY_FOLDER%\cacert.pem.sig" 1>NUL 2>&1
|
|
del /q "%BINARY_FOLDER%\repertory.exe.sha256" 1>NUL 2>&1
|
|
del /q "%BINARY_FOLDER%\repertory.exe.sig" 1>NUL 2>&1
|
|
del /q "%BINARY_FOLDER%\winfsp-x64.dll.sha256" 1>NUL 2>&1
|
|
del /q "%BINARY_FOLDER%\winfsp-x64.dll.sig" 1>NUL 2>&1
|
|
EXIT /B
|
|
|
|
:NORMALIZE
|
|
SET RETVAL=%~f1
|
|
exit /B
|
|
|
|
:EXIT_SCRIPT
|
|
echo %1
|
|
exit 1
|
|
|
|
:END
|
|
echo Done
|