mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +01:00
Merge pull request #2163 from devinbileck/update-windows-packaging-process
Update windows packaging process
This commit is contained in:
commit
77338c7d32
4 changed files with 201 additions and 37 deletions
|
@ -1,29 +0,0 @@
|
|||
:: Invoke from Bisq home directory
|
||||
:: edit iss file -> AppVersion
|
||||
:: edit -> -BappVersion and -srcfiles
|
||||
|
||||
:: 64 bit build
|
||||
:: Needs Inno Setup 5 or later (http://www.jrsoftware.org/isdl.php)
|
||||
|
||||
cd ../../
|
||||
|
||||
SET version=0.9.1
|
||||
|
||||
:: Private setup
|
||||
::SET outdir=\\VBOXSVR\vm_shared_windows
|
||||
:: Others might use the following
|
||||
SET outdir=.
|
||||
|
||||
call "%JAVA_HOME%\bin\javapackager.exe" -deploy ^
|
||||
-BappVersion="%version%" ^
|
||||
-native exe ^
|
||||
-name Bisq ^
|
||||
-title Bisq ^
|
||||
-vendor Bisq ^
|
||||
-outdir %outdir% ^
|
||||
-appclass bisq.desktop.app.BisqAppMain ^
|
||||
-srcdir %outdir% ^
|
||||
-srcfiles Bisq.jar ^
|
||||
-outfile Bisq ^
|
||||
-Bruntime="%JAVA_HOME%\jre" ^
|
||||
-v
|
|
@ -1,20 +1,26 @@
|
|||
;This file will be executed next to the application bundle image
|
||||
;This file will be executed next to the application bundle image
|
||||
;I.e. current directory will contain folder Bisq with application files
|
||||
;Note: This file must use UTF-8 encoding with BOM
|
||||
;Note: This file must use UTF-8 encoding
|
||||
|
||||
#define SourceDir GetEnv('package_dir') + '\windows'
|
||||
#define AppVersion GetEnv('version')
|
||||
#define FileVersion GetEnv('file_version')
|
||||
#define AppCopyrightYear GetDateTimeString('yyyy', '-', ':')
|
||||
|
||||
[Setup]
|
||||
AppId={{bisq}}
|
||||
AppName=Bisq
|
||||
AppVersion=0.9.1
|
||||
AppVerName=Bisq
|
||||
AppVersion={#AppVersion}
|
||||
AppVerName=Bisq v{#AppVersion}
|
||||
AppPublisher=Bisq
|
||||
AppCopyright=Copyright (C) 2018
|
||||
AppComments={cm:AppComments}
|
||||
AppCopyright=Copyright (C) {#AppCopyrightYear}
|
||||
AppPublisherURL=https://bisq.network
|
||||
AppSupportURL=https://bisq.network
|
||||
;AppUpdatesURL=http://java.com/
|
||||
AppSupportURL=https://bisq.community
|
||||
;AppUpdatesURL=https://github.com/bisq-network/bisq/releases
|
||||
VersionInfoVersion={#FileVersion}
|
||||
VersionInfoDescription=Bisq Setup
|
||||
VersionInfoCopyright=Copyright (C) {#AppCopyrightYear}
|
||||
DefaultDirName={localappdata}\Bisq
|
||||
DisableStartupPrompt=Yes
|
||||
DisableDirPage=Yes
|
||||
|
@ -25,9 +31,9 @@ DisableWelcomePage=Yes
|
|||
DefaultGroupName=Bisq
|
||||
;Optional License
|
||||
LicenseFile=
|
||||
OutputBaseFilename=Bisq
|
||||
;Windows 7 with Service Pack 1 or above
|
||||
MinVersion=0,6.1.7601
|
||||
OutputBaseFilename=Bisq-{#AppVersion}
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
PrivilegesRequired=lowest
|
||||
|
|
117
desktop/package/windows/package.bat
Normal file
117
desktop/package/windows/package.bat
Normal file
|
@ -0,0 +1,117 @@
|
|||
:: Requirements:
|
||||
:: - Inno Setup unicode installed (http://www.jrsoftware.org/isdl.php)
|
||||
:: - OracleJDK 10 installed
|
||||
:: Note: OpenJDK 10 does not have the javapackager util, so must use OracleJDK
|
||||
:: Prior to running this script:
|
||||
:: - Update version below
|
||||
:: - Ensure JAVA_HOME below is pointing to OracleJDK 10 directory
|
||||
|
||||
@echo off
|
||||
|
||||
set version=0.9.1-SNAPSHOT
|
||||
set package_dir=%~dp0..
|
||||
for /F "tokens=1,2,3 delims=.-" %%a in ("%version%") do (
|
||||
set file_version=%%a.%%b.%%c
|
||||
)
|
||||
|
||||
cd %~dp0..\..\..
|
||||
|
||||
if exist "%package_dir%\desktop-%version%-all.jar" (
|
||||
set jar_dir=%package_dir%
|
||||
set jar_file=%package_dir%\desktop-%version%-all.jar
|
||||
set jar_filename=desktop-%version%-all.jar
|
||||
goto PackageJar
|
||||
)
|
||||
|
||||
echo Building application
|
||||
call gradlew.bat :desktop:clean :desktop:build -x test shadowJar
|
||||
if exist "%~dp0..\..\..\desktop\build\libs\desktop-%version%-all.jar" (
|
||||
set jar_dir=%~dp0..\..\..\desktop\build\libs
|
||||
set jar_file=%~dp0..\..\..\desktop\build\libs\desktop-%version%-all.jar
|
||||
set jar_filename=desktop-%version%-all.jar
|
||||
) else (
|
||||
echo No jar file available in %~dp0..\..\..\desktop\build\libs
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
if not exist "%TEMP%\7za920\7za.exe" (
|
||||
echo Downloading 7zip ^(command line version^) to %TEMP% in order to extract the jar
|
||||
powershell -Command "Invoke-WebRequest https://www.7-zip.org/a/7za920.zip -OutFile $env:temp\7za920.zip"
|
||||
powershell -Command "Expand-Archive $env:temp\7za920.zip -DestinationPath $env:temp\7za920 -Force"
|
||||
)
|
||||
|
||||
set tmp_dir=%~dp0..\..\..\desktop\build\libs\tmp
|
||||
echo Extracting jar file to %tmp_dir%
|
||||
if exist "%tmp_dir%" (
|
||||
rmdir /S /Q "%tmp_dir%"
|
||||
)
|
||||
md "%tmp_dir%"
|
||||
"%TEMP%\7za920\7za.exe" x "%jar_file%" -o"%tmp_dir%" -r -y
|
||||
|
||||
echo Deleting problematic module config from extracted jar
|
||||
:: Strip out Java 9 module configuration used in the fontawesomefx library as it causes javapackager to stop
|
||||
:: because of this existing module information, since it is not used as a module.
|
||||
:: Sometimes module-info.class does not exist - TODO check why and if still needed
|
||||
if exist "%tmp_dir%\module-info.class" (
|
||||
del /Q "%tmp_dir%\module-info.class"
|
||||
)
|
||||
|
||||
echo Zipping jar again without module config
|
||||
set jar_file=%package_dir%\%jar_filename%
|
||||
if exist "%jar_file%" (
|
||||
del /Q "%jar_file%"
|
||||
)
|
||||
"%TEMP%\7za920\7za.exe" a -tzip "%jar_file%" "%tmp_dir%\*" -r
|
||||
rmdir /S /Q "%tmp_dir%"
|
||||
|
||||
if exist "%TEMP%\7za920.zip" (
|
||||
echo Removing downloaded files
|
||||
del /Q "%TEMP%\7za920.zip"
|
||||
)
|
||||
|
||||
echo SHA256 before stripping jar file:
|
||||
for /F "delims=" %%h in ('certutil -hashfile "%jar_file%" SHA256 ^| findstr -i -v "SHA256" ^| findstr -i -v "certutil"') do (set hash=%%h)
|
||||
echo %hash%
|
||||
|
||||
echo Making deterministic jar by stripping out parameters and comments that contain dates
|
||||
:: Jar file created from https://github.com/ManfredKarrer/tools
|
||||
:: TODO Is this step still necessary? Since we are using preserveFileTimestamps and reproducibleFileOrder in build.gradle
|
||||
java -jar "%CD%\desktop\package\tools-1.0.jar" "%jar_file%"
|
||||
|
||||
echo SHA256 after stripping jar file:
|
||||
for /F "delims=" %%h in ('certutil -hashfile "%jar_file%" SHA256 ^| findstr -i -v "SHA256" ^| findstr -i -v "certutil"') do (set hash=%%h)
|
||||
echo %hash%
|
||||
echo %hash% > "%package_dir%\%jar_filename%.txt"
|
||||
|
||||
:PackageJar
|
||||
if exist "%package_dir%\windows\Bisq-%version%.exe" (
|
||||
del /Q "%package_dir%\windows\Bisq-%version%.exe"
|
||||
)
|
||||
|
||||
cd desktop
|
||||
|
||||
echo Generating packaged executable
|
||||
call "%JAVA_HOME%\bin\javapackager.exe" -deploy ^
|
||||
-native exe ^
|
||||
-name Bisq ^
|
||||
-title Bisq ^
|
||||
-vendor Bisq ^
|
||||
-outdir "%package_dir%\windows" ^
|
||||
-appclass bisq.desktop.app.BisqAppMain ^
|
||||
-srcdir "%package_dir%" ^
|
||||
-srcfiles %jar_filename% ^
|
||||
-outfile Bisq ^
|
||||
-v
|
||||
|
||||
if not exist "%package_dir%\windows\Bisq-%version%.exe" (
|
||||
echo No exe file found at %package_dir%\windows\Bisq-%version%.exe
|
||||
exit /B 2
|
||||
)
|
||||
|
||||
echo SHA256 of %package_dir%\windows\Bisq-%version%.exe:
|
||||
for /F "delims=" %%h in ('certutil -hashfile "%package_dir%\windows\Bisq-%version%.exe" SHA256 ^| findstr -i -v "SHA256" ^| findstr -i -v "certutil"') do (set hash=%%h)
|
||||
echo %hash%
|
||||
echo %hash% > "%package_dir%\windows\Bisq-%version%.exe.txt"
|
||||
|
||||
echo Done!
|
||||
pause
|
70
desktop/package/windows/release.bat
Normal file
70
desktop/package/windows/release.bat
Normal file
|
@ -0,0 +1,70 @@
|
|||
:: Requirements:
|
||||
:: - GPG installed (https://gpg4win.org/get-gpg4win.html)
|
||||
:: - GPG key has been created
|
||||
:: Prior to running this script:
|
||||
:: - Update version below
|
||||
|
||||
@echo off
|
||||
|
||||
set version=0.9.1-SNAPSHOT
|
||||
set release_dir=%~dp0..\..\..\releases\%version%
|
||||
set package_dir=%~dp0..
|
||||
|
||||
set dmg=Bisq-%version%.dmg
|
||||
set deb=Bisq-%version%.deb
|
||||
set exe=Bisq-%version%.exe
|
||||
|
||||
set /P gpg_user="Enter email address used for gpg signing: "
|
||||
|
||||
echo Creating release directory
|
||||
if exist "%release_dir%" (
|
||||
rmdir /S /Q "%release_dir%"
|
||||
)
|
||||
md "%release_dir%"
|
||||
|
||||
echo Copying files to release folder
|
||||
:: sig key mkarrer
|
||||
xcopy /Y "%~dp0..\F379A1C6.asc" "%release_dir%"
|
||||
:: sig key cbeams
|
||||
xcopy /Y "%~dp0..\5BC5ED73.asc" "%release_dir%"
|
||||
:: sig key Christoph Atteneder
|
||||
xcopy /Y "%~dp0..\29CDFD3B.asc" "%release_dir%"
|
||||
:: signing key
|
||||
xcopy /Y "%~dp0..\signingkey.asc" "%release_dir%"
|
||||
if exist "%package_dir%\macosx\%dmg%" (
|
||||
xcopy /Y "%package_dir%\macosx\%dmg%" "%release_dir%"
|
||||
xcopy /Y "%package_dir%\macosx\%dmg%.txt" "%release_dir%"
|
||||
)
|
||||
if exist "%package_dir%\linux\%deb%" (
|
||||
xcopy /Y "%package_dir%\linux\%deb%" "%release_dir%"
|
||||
xcopy /Y "%package_dir%\linux\%deb%.txt" "%release_dir%"
|
||||
)
|
||||
if exist "%package_dir%\windows\%exe%" (
|
||||
xcopy /Y "%package_dir%\windows\%exe%" "%release_dir%"
|
||||
xcopy /Y "%package_dir%\windows\%exe%.txt" "%release_dir%"
|
||||
)
|
||||
|
||||
echo Creating signatures
|
||||
if exist "%release_dir%\%dmg%" (
|
||||
gpg --digest-algo SHA256 --local-user %gpg_user% --output "%release_dir%\%dmg%.asc" --detach-sig --armor "%release_dir%\%dmg%"
|
||||
)
|
||||
if exist "%release_dir%\%deb%" (
|
||||
gpg --digest-algo SHA256 --local-user %gpg_user% --output "%release_dir%\%deb%.asc" --detach-sig --armor "%release_dir%\%deb%"
|
||||
)
|
||||
if exist "%release_dir%\%exe%" (
|
||||
gpg --digest-algo SHA256 --local-user %gpg_user% --output "%release_dir%\%exe%.asc" --detach-sig --armor "%release_dir%\%exe%"
|
||||
)
|
||||
|
||||
echo Verifying signatures
|
||||
if exist "%release_dir%\%dmg%" (
|
||||
gpg --digest-algo SHA256 --verify "%release_dir%\%dmg%.asc"
|
||||
)
|
||||
if exist "%release_dir%\%deb%" (
|
||||
gpg --digest-algo SHA256 --verify "%release_dir%\%deb%.asc"
|
||||
)
|
||||
if exist "%release_dir%\%exe%" (
|
||||
gpg --digest-algo SHA256 --verify "%release_dir%\%exe%.asc"
|
||||
)
|
||||
|
||||
echo Done!
|
||||
pause
|
Loading…
Add table
Reference in a new issue