From 2ce807c9c810eebe358c395eaf1f125f0d69c8ea Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 7 May 2020 14:41:00 +0200 Subject: [PATCH 01/77] Upgrade JavaFX to v14 Update the gradle dependency to JavaFX 14. This brings to Bisq the latest JavaFX fixes and improvements, especially in the areas of UI performance, memory management and security. JavaFX can be upgraded independently of the JDK used to build the application, so this change is modular and does not affect other parts of the build process. Related / likely related to: #350 #2135 #2509 #3128 #3307 #3308 #3343 #3430 #3657 #3677 #3683 #3686 #3786 #3787 #3892 #3917 #3918 #3936 --- build.gradle | 2 +- desktop/src/main/java/bisq/desktop/app/BisqAppMain.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index be8e7f8b3c..cc1b310802 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ configure(subprojects) { httpcoreVersion = '4.4.13' ioVersion = '2.6' jacksonVersion = '2.8.10' - javafxVersion = '11.0.2' + javafxVersion = '14' javaxAnnotationVersion = '1.2' jcsvVersion = '1.4.0' jetbrainsAnnotationsVersion = '13.0' diff --git a/desktop/src/main/java/bisq/desktop/app/BisqAppMain.java b/desktop/src/main/java/bisq/desktop/app/BisqAppMain.java index d02c6e11c6..25053004ba 100644 --- a/desktop/src/main/java/bisq/desktop/app/BisqAppMain.java +++ b/desktop/src/main/java/bisq/desktop/app/BisqAppMain.java @@ -129,5 +129,10 @@ public class BisqAppMain extends BisqExecutable { @Override protected void onApplicationStarted() { super.onApplicationStarted(); + + // Relevant to have this in the logs, for support cases + // This can only be called after JavaFX is initialized, otherwise the version logged will be null + // Therefore, calling this as part of onApplicationStarted() + log.info("Using JavaFX {}", System.getProperty("javafx.version")); } } From 1109bafae08b71d496503c3bc5bc8cc48f4704fe Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 7 May 2020 18:28:54 +0200 Subject: [PATCH 02/77] Upgrade buildserver config to OpenJDK 14 Use java 14 to build the necessary artifacts. This is the most recent version which brings support for JavaFX 14, as well as a newer packager tool to build native applications. --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 88266e89f4..444027cb0e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: java jdk: - - openjdk10 - - openjdk12 + - openjdk14 cache: directories: From 77134a97b77657af6e2d12bddc42bd7a158c2724 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 7 May 2020 18:48:18 +0200 Subject: [PATCH 03/77] Upgrade to Gradle 6.3 Use Gradle 6.3, which adds support for Java 14. --- gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 58694 bytes gradle/wrapper/gradle-wrapper.properties | 4 ++-- gradlew | 29 ++++++++++------------- gradlew.bat | 3 +++ 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..490fda8577df6c95960ba7077c43220e5bb2c0d9 100644 GIT binary patch delta 22806 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 Z!$zsDgoO%|(a?lZ=Qe6kxv{^r{{!uYR<-~D delta 19980 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 Z5H)%VJiSWIAOn$sbP+#;Q{V4m{s)AkOUM8K diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37cc5daee1..302eb64ee9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip -distributionSha256Sum=abc10bcedb58806e8654210f96031db541bcd2d6fc3161e81cb0572d6a15e821 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionSha256Sum=0f316a67b971b7b571dac7215dcf2591a30994b3450e0629925ffcfe2c68cc5c zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 83f2acfdc3..2fe81a7d95 100755 --- a/gradlew +++ b/gradlew @@ -154,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -175,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 9618d8d960..62bd9b9cce 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" From e6920c179c6fab49e0c28ac6ab45836f9f17beea Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 7 May 2020 19:03:00 +0200 Subject: [PATCH 04/77] Upgrade to Lombok 1.18.12 Use Lombok v1.18.12, which adds support for Java 14. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index cc1b310802..66cce2e205 100644 --- a/build.gradle +++ b/build.gradle @@ -61,7 +61,7 @@ configure(subprojects) { langVersion = '3.8' logbackVersion = '1.1.11' loggingVersion = '1.2' - lombokVersion = '1.18.2' + lombokVersion = '1.18.12' mockitoVersion = '3.0.0' netlayerVersion = '0.6.8' protobufVersion = '3.10.0' From 2bc85d75532152337c9c9c075035db49840b61ad Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 7 May 2020 19:31:41 +0200 Subject: [PATCH 05/77] Upgrade to Mockito 3.3.0 Use Mockito 3.3.0, which fixes some bugs that caused valid tests to fail in the Java 14 environment. --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 66cce2e205..d5bc9cdbed 100644 --- a/build.gradle +++ b/build.gradle @@ -62,7 +62,7 @@ configure(subprojects) { logbackVersion = '1.1.11' loggingVersion = '1.2' lombokVersion = '1.18.12' - mockitoVersion = '3.0.0' + mockitoVersion = '3.3.0' netlayerVersion = '0.6.8' protobufVersion = '3.10.0' protocVersion = protobufVersion @@ -497,7 +497,7 @@ configure(project(':pricenode')) { test { useJUnitPlatform() - + // Disabled by default, since spot provider tests include connections to external API endpoints // Can be enabled by adding -Dtest.pricenode.includeSpotProviderTests=true to the gradle command: // ./gradlew test -Dtest.pricenode.includeSpotProviderTests=true From 7a73fea6229f1788902e826a78a5e5e375acd774 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 7 May 2020 19:52:02 +0200 Subject: [PATCH 06/77] Fix UnnecessaryStubbingException in test Remove duplicate call to a stubbed method. This caused an UnnecessaryStubbingException with Mockito's strict validation settings. --- core/src/test/java/bisq/core/payment/ReceiptValidatorTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/test/java/bisq/core/payment/ReceiptValidatorTest.java b/core/src/test/java/bisq/core/payment/ReceiptValidatorTest.java index 4be13530a6..12dbe054b9 100644 --- a/core/src/test/java/bisq/core/payment/ReceiptValidatorTest.java +++ b/core/src/test/java/bisq/core/payment/ReceiptValidatorTest.java @@ -167,7 +167,6 @@ public class ReceiptValidatorTest { when(predicates.isEqualPaymentMethods(offer, account)).thenReturn(true); when(predicates.isMatchingCountryCodes(offer, account)).thenReturn(true); when(predicates.isMatchingSepaOffer(offer, account)).thenReturn(false); - when(predicates.isMatchingSepaOffer(offer, account)).thenReturn(false); when(predicates.isMatchingSepaInstant(offer, account)).thenReturn(false); when(predicates.isOfferRequireSameOrSpecificBank(offer, account)).thenReturn(false); From e55594d1e37a273166a32265ecdbec46c36962ee Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 16 Sep 2020 11:35:33 +0200 Subject: [PATCH 07/77] Fix FeeReceiverSelectorTest Split test into sub-tests in order to avoid mockito UnnecessaryStubbingExceptions. These exceptions occurred because of 3 ambiguous uses of "when().thenReturn()" in the same test. These calls were ambiguous, because the when() argument was identical and mockito did not check the thenReturn() arguments, which would have differentiated the calls. Splitting this test method into 4 test methods achieved this call differentiation. --- .../bisq/core/util/FeeReceiverSelectorTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/core/src/test/java/bisq/core/util/FeeReceiverSelectorTest.java b/core/src/test/java/bisq/core/util/FeeReceiverSelectorTest.java index ce2f3f6f83..bf6ddc5a8b 100644 --- a/core/src/test/java/bisq/core/util/FeeReceiverSelectorTest.java +++ b/core/src/test/java/bisq/core/util/FeeReceiverSelectorTest.java @@ -67,17 +67,32 @@ public class FeeReceiverSelectorTest { } @Test - public void testGetAddress_noValidReceivers() { + public void testGetAddress_noValidReceivers_nullFilter() { when(daoFacade.getParamValue(Param.RECIPIENT_BTC_ADDRESS)).thenReturn("default"); when(filterManager.getFilter()).thenReturn(null); assertEquals("default", FeeReceiverSelector.getAddress(daoFacade, filterManager)); + } + + @Test + public void testGetAddress_noValidReceivers_filterWithNullList() { + when(daoFacade.getParamValue(Param.RECIPIENT_BTC_ADDRESS)).thenReturn("default"); when(filterManager.getFilter()).thenReturn(filterWithReceivers(null)); assertEquals("default", FeeReceiverSelector.getAddress(daoFacade, filterManager)); + } + + @Test + public void testGetAddress_noValidReceivers_filterWithEmptyList() { + when(daoFacade.getParamValue(Param.RECIPIENT_BTC_ADDRESS)).thenReturn("default"); when(filterManager.getFilter()).thenReturn(filterWithReceivers(List.of())); assertEquals("default", FeeReceiverSelector.getAddress(daoFacade, filterManager)); + } + + @Test + public void testGetAddress_noValidReceivers_filterWithIllFormedList() { + when(daoFacade.getParamValue(Param.RECIPIENT_BTC_ADDRESS)).thenReturn("default"); when(filterManager.getFilter()).thenReturn(filterWithReceivers(List.of("ill-formed"))); assertEquals("default", FeeReceiverSelector.getAddress(daoFacade, filterManager)); From 51e0de8116a4505306d239188affab70a5659f00 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 16 Sep 2020 16:24:37 +0200 Subject: [PATCH 08/77] Upgrade JavaFX to v15 Upgrade JavaFX to most recent release. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d5bc9cdbed..f453c572ae 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ configure(subprojects) { httpcoreVersion = '4.4.13' ioVersion = '2.6' jacksonVersion = '2.8.10' - javafxVersion = '14' + javafxVersion = '15' javaxAnnotationVersion = '1.2' jcsvVersion = '1.4.0' jetbrainsAnnotationsVersion = '13.0' From dc9288cf1d9818353e29065d7aba869a78ae6399 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 01:59:51 +0200 Subject: [PATCH 09/77] Upgraded Gradle to v6.6.1 Upgraded Gradle to the latest version, which has better module-info support for the imported gradle dependencies. --- gradle/README.md | 23 +++++++++++++++++++++++ gradle/wrapper/gradle-wrapper.jar | Bin 58694 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 4 ++-- gradlew | 2 ++ gradlew.bat | 22 ++++------------------ 5 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 gradle/README.md diff --git a/gradle/README.md b/gradle/README.md new file mode 100644 index 0000000000..68ce5e68d0 --- /dev/null +++ b/gradle/README.md @@ -0,0 +1,23 @@ +# How to upgrade the Gradle version + +Visit the [Gradle website](https://gradle.org/releases/) and decide the: +* desired version +* desired distribution type +* what is the sha256 for the version and type chosen + +Adjust the following command with tha arguments above and execute it twice: + + + ./gradlew wrapper --gradle-version 6.6.1 \ + --distribution-type all \ + --gradle-distribution-sha256-sum 11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5 + + +The first execution should automatically update `bisq/gradle/wrapper/gradle-wrapper.properties` + +The second execution should update: +* `bisq/gradle/wrapper/gradle-wrapper.jar` +* `bisq/gradlew` +* `bisq/gradlew.bat` + +The four updated files are ready to be committed. diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 490fda8577df6c95960ba7077c43220e5bb2c0d9..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 6763 zcmY*d1yoeux`&}Vq&vkKkdST|x*Texk(LmoVTd`>NXyV2GNg!rf(VL8i*$EN2vQ>@ z;N#D`_q}`1+H37!e0#5N@4e1G>wMk)I9~^G>X1a_WjI_~vbb1S(*#&p%2+6`3073w z_+8Wx5fspSazTIgyF^r`bS;8?ttUY=Y16txqx|`pNOoTEXlylV?ZsN$4tQ-aeaKtq;EDcj#ufS~X5l)PmBL0VS*h=y3Li+qdct?J z?FcClysNWmO;%pTGK&0{S_(f?(9-*~A4I!CEfl8GR%`}qg?-86`CE5zW!0SOyaivY zkiRhoaHaER6Q_#*#;TWTrMbR`wnw-+IwyT}G_Z5l`tjySt-xO`<&)UUZwX2Ld8F2m zJ}lBiid@DLwV|>iW$We*nVYK+pYM|g16_-dViOg5hU z12mN~ZOI~wq~?bH6`?&%QPx%Oem!8RCQF5u9v+db?p1llbB#50c|OX|hdmiW_zca5{dg}^%gRxH=Km$u-rHFt@BQoXyPF};v=|*+6LX_Q1Y@ANn^PO4 z8{Xd0jfmXY$+tS+ht-;FSvu*NayB}Le*;qjG0~GLdCcZt9hQ=Dcqm541h&P^*D7i2 zjQ1ZvD?d3pgWVZdWc#a84*b5Ug{Xb{ik?j8PLoKC_(~YEpM62*aJ zZB#?v!EsJzb+SY~8IZPc8i~QVIN*M`%-1ETmPh0svA|IPHGIpgN@1qrI#oURd&D}1 zF8N(b&f*)U4Fd80nXK%cU2Emg0pB0^m`EgvMy#1s@#h$vR3GT$D6K~OnEevY$Zcb2 zIb>0NtmvAkM0D?hm}!5>U>Qes7^o^c#NE-n)>XTTVmjteT9K^(tHp=Zzz1w_flA|~ zJ0H}!3el>5^;y10E)!Y1>Op4dG)A)7Y3S6d2no-@=MzeZ5i)~sZsGN*i-)FKKR=Bi zzQ&hs&&pO$H^lv*kT7RA7`a|7p6GFN_L3_fhIU#8DJ1hvC<<9A^cqF~VEnAFgM&+q zg+)k+_0Qcf((-Uu00#@J9UsL(E(^dHjHnH0{#vQhPpQ4oH#+7P$1&FbGb&~z(hud; zAKP_|Vx8}>GS3(XDxUnr&d=K}MhgXRQMjVF=V=*LH4d2CwoPHm%98k(anO zghFb8!+a$LLTnfl?&lm+_^PCKn(ca2pi`pejdpjz{n+MsTLN{K=AH=yY`~uDm%U{q z2}NKP5w;NsN(#5HLg%cJ(poQ3N65e8qm6EftpfXeNEGifO_>^X@Y29U=2@qbrSFrd zfBaDE)JHFldA-+{_o3Dqos*)sV3Xn`rY8b*k>Rbi-eC| zpfe^n98UXiOG)*>T?vL~0NR5`C#0%Y#1|3z(&WfOx&rKU;7jS~=@hugEh*Fyr}fPo z!XQZo*P-fF<}iY7xkS5?e9nT$eirrUe=*hI-CYH57gH%e9pJ*(KoGcF;E?WZVlj3$ z7l=}8n{I^qvV8#M6-MHVX$Qt?fY@}hzT6>#QBeu=+mauXCT_q1-HmZyLlGX;!vsTu zI7iJ`TWclD4iFuqD~=->b^zt}iBAxC`9q{*ji;*+Ph+V{J49vq?^9q*yp;rjY*{I-{Gt0%d zTiy!pm_VGzoU5|)XV~n>5_ST@HTu;v_e0E`OyRud=!bFM_S9CdL^>`;^l}nK?;Cq9 zRK;E?&*SarbtgiVxp~~9JnF_ij(8H@TVKh^e7J0jBw31ol={81U4^ukdX0_TM|x|i zl5OP$8u;(Gi3h6>xkiD7Wy*nt#re;7mm7F(P87)8wU3z&;Kc(S036U_ohj`%p*)wo6}D2 zeZ3&DO?9d{htW)K)Pqg6rPlo=rQ=Y7Hjcfyh@8ome6|>ToCG+T1g&Y9JmxOB4_wy7 zJQ~|aY%zpZv$Qp-9{(vh$BDWgR`Iyt7CC#rd|{t{-Khd-FBxnP(OmdYz(*ekZV7FF zWV--er8{4n*Igw#Ur(xh+zuwb%7+5`#WEKJ6!(kwgSWn6lI<=ERgZ@tSMf2{uK@Vg zQs=Sz$mK`pMXK*W;Fb=iknKVUxOg^l36nPdt5n7ww51_dDqK0hHrvVT$a6hT3HJnl zl*6bA8qMt4M!_|gy_LZx)1{tKG4Ds3j3*D)wMUFAE$#Z`1r~q)BD#tO_3@u^*ZK%nC&H3J&@pURa>!uFIF8%q&HQ!s%+$UbX!4#tNYy{ zOXwqy^wWxvkNp7^ttJ9bO`26!LUqlB*(7U{vI=yWw9w*z5~$>98&0$D9A;H&TnPA# zKS=GXbsm*y?_I~+o?l-C(&U{w_nb|e^eC$dg2_)YY2ppYUJ4s>FVT1%cfHzY7T3VU`AT)B(R0KLNc3xCgz4?5q1U$Lt zTeZgFkQo>Ir6p;xpkOcw+gVDSa`)FRD~r?w>+TM5w2VlDP-GV~;Fc9~l^=Xc>uBTM zGcaQCHksB6Ek66eb^B%3$OGH$7m>E_eEYOat8C^=lbLndFwvy^jN)s$;x7=_&VqM0 z)qh1eoVt$$jxT;4xBmPb@3>8}u-+xMZ^BmH#=*}-%meeP8^%2O94X^O_&3*9UgDL7 zfrx*sV6Z?O#~brr2O!H?(0L}gVd1nTG2K>Fftpp%tb2Yp)kEkty>2?E1x4ZZAa2yEy%$ZPAr)QDu$9QNE zEC5TT>PtPN=7AdP?u7SLC*5EkRJ zl#Upm0R!}e4+v;*sXaEKrG%oqEEG*_e6(XLRWP%^9mM1$MI~s-E<^ZU&>Tei*z+XE znhPt~fk3dITK0b?2LnwfN24#eq|HgcyQ-7PHuUaD?26psv@Ym*!pJS+?AA9B_E?n1 zC&Q$V^fk0*S3Z=2F6^WB@cZB9`7N~Z#I?K#%X7BW1XV)mtBf<(IHY8s*fI;!F4e)Lb_W~@ABb8s?okINXd+#3WRE!S1KPcc zcXQU5mb&=FT6A3!7mFlUOl&t2e8RbXTQGa(n6>?qWb58052^*dSN^MX{Lg3PFO?u^ZWO>iX2n z&_0*yk>OcQ_no}qv%J`WoB(XK@!t8%r!Y19`XJYa9A!+h>5t~eYg(URV*4tGe>8lh zL`QdkCea7tNX0hr(-!vhg2!r10M?z$=gtcET91mh(=Z3u2qE^_-V#4wy}=MSWM6 zN)$Ti$%`C%{86x}1cLJs$La2TQbEW8{ER5Ea6S1e5P|b2H^B9hM$xK0)2gL{kV_Oe z$NO!$JRd0FDZ`YEd$RrB19q2`MdP4GZp`ftrOgvvx1NcwISw)}3!kZ7=3ro|dvEbp z>GUqv(0ed6HPIbcF68iC?4)ZIm4$Mr z3sqf?cNLlWlH51kB9XP`**K5TZa*;(R(Zrv8Idfik`#zD`;E+Ka$Rb zYPb5B>s{JedE{N{cd18Q0I8#6?kFHVxNAinWuW+X=U255(w^1_KJ6i===p84SD^V` z@Y`zS+9J)bKMhHS@LiJ}kd4IlSX(P4<_vV)&Jix8y@xeTu zT<`r)^stb`(D%Gc%>6sbP4TvXo^nfHrS@{eL5RO);7Y%KS8#wBW1hV9vCw%aD8@TO z00NCh5{6hs=oJyL6z{e0~+gkQ2=~-gz{xZU{b5)(@Hu z_{tSNci^2YzLJ$qvu|tnfPCcp{QgPMG613G^)|FK_+`xkQ$)Cdj?qCt?@5?jxqIq zsNk^RD_~!vsz5a!@>$Ey0xdyYG$L8}9RUwRsn$xZPJY(mXdsTXZ+K%CKx5_;vX~PB zKDM6ESa2pEjO`xEc|r+%wo=RU3Rw~BZ`&b?c?X+a{bOPEmNjmOkpHJFowo8z+J=3v zUsPjEQ+v{nXlE|TP#+ULN+x_0vUDMQ>@#W5zXDY0!?^d$eZ;bvmtqe89Ch#aoL#pb z5(p!UY<6ki*lz`QF=vM;?8+S)MwJt^CJ)DqAaP5TA>8x@8)S*V{J5N2h*liJ_(4XI zJ7>B_anG<@ukh#^#^5}^$r55WbEit%0d|i+9U>?NDTpLKbPQDaN|P=oW{n<={_$8QSXw4705QhFIzu(+d3!#shwBQWjhmS~@>&~sTvNjg@Yv;aq;@NyU zo6_JCG4JtWSDwcmpq97ICoyg{mzi7uzveaH{%u(tH&xkDy@JTELRWfcl~?Q#!%1?r z%kRp84ag<`BYk(Eu^7y#3tC>DT7Z2JtVlB zSqFb90fjWXLjry7wK)aoC$H*VFK|Pt`4xH7Me?D4XKLz!(T4SmLSKsyF&5vL-VB$B z-S_Z=jis)*R53@dmKinH^lUyvy_uL8-ty5K@jgSURj>LWOfJ&IULSpMmFyT69~|5F zDceR**3Sk7sky_uocH`;=Sgu#tm&T~6y~6FW12EEvgv|eTprAC8?&Yu*NZlpTxRy;j}R3;Wpz*}{( zCB^@YkMeG~xFT$Sxag(_J<}Ryu z?BUxXtHno{(eWQf=&ko|uP3^q?m=VUT+H$Yeu`TJN}3#J+qx9a&fTp!3$s*|n)hZU^_cb&f5L6l@oe=8nO8xnx zg^}S6%?8fdcbjB9)Vl6ls0BB%RUY>HaT*sjiNhJ{6tcZz-~voBVa1uS{66^fwZxDf_)^1+yAwZZu%|& zvLyK8_V(uxrz0*P8cK`ZXOog^YEsvt8shJ*zoka7dn%@+QCEKM=WTVw<{GKzB6G>& zQh%>SpGI%-*HgUTMIKC^!WgF=f??tKXvRn+O$%E@FnbIyy)(FOf`Y^!=gJ9|C@)Pp zhr)R)FBXLh{<4$rtHy;v9pQq{vEcwmeZ0^0JT5wO+qJupCBjhBNwD2L)J0}=VSNu~ z)GMoh0U<-XRFwAx8z=1h+R9n(u#$&O@3=Y*u6B)gr zfT1ar6|0emj&_^Zb58p)OdIz&&j*HJ^tX&!y=3E4eP;l?=JK8|0YMkdI`Rmy`lDT(7NIh$Fu}1}~dm zmVS);Fd@a$`4`WWOc>|%QmElI`&1*|ZA~8aV%(MG|7&hoSYkI-xPL#d!idRlYxM#X zV3z+bCHy-C3+q)_EY(er9;k}*Hg;h`36#Ti18Gr%92}^=c}kSSBon9@d@CJH;-hjW z6+n&x|DwtuV~Ja+IVBBJki3OMN(89FsRy8O#s8!GQ}UqPn}3#@S%;L!Q2NslP>9Jb zt%H-I@^9!p^INKDPKNq94F!={{)^tZP2tH56DZpLR%)?jy_L$HC`tdlj8|b9&Zw0c zGtf)7n~nuF;6jcfn4(1a&oY5_eNiMnyr_kB7E18H<8S&`VY+@OHy?f!`5Xk4?uU|@ zlLdA9p*;KfD2_4~l*POa&>K&s*Nk#oam$ONKEy$v{7gn_!!ZlUXvI_Mzx7EUawf%Xe-AQ&Z?Plx)vN{Mn?W&&Y~ zZ>73r8I=ACKT5Zh>eiB2VFF>7-&o?Pm=y@!%JQSHl=DA4N7Ue(-4+$h27 z{~cg=BPqSPmBL@M-OK?21=ZhBE)?0CFlf9p^&1z;_6DsCq<#}bvEF1%H~61x#T!QL otvP{aMo?!%vNyX00o9D5TGw?z*JCKwQ9hLL1|`1A_&!*0g52tF~2P!f~PV(V$TtZL60C#cgWnoi?=OEkswem1mI#|2FOA;$mq|Kx7smHc9 z+0UN1&?PJ*0|oJENg}~7m@18Fo+&6T91d*OjHpJx;y?2ooYwS$ z(^a=)yLhPO$lygDEAAVzxtjL(3Q{X5_Op%XQ&-*_#?u+aot620E;6Ca=Z9d0^74c@ zf|68(@Dx^7Y!G&1u3UDpwC^R7^U%>k$=e;)-JGoVE29pAje3btKTI5N@ke}2T8+=n zH12}&>G@~zYMiJ^R(8yqN{T&m`Nl~Dnsp6RWYqm?;10J_$#l|oE}16{q;;~*uz3e8 zH=}vIbbq5};;h|d)Y}N^s#s|G>MSaQMeCqHL&)wbjcJshlOoN{LAUOPICtlst|{UJ zG*8XZ?R9lXW$Sr_XxFm>_u`|?uu{gKhZbF&l(r;DYm9^O*L||5j9y8shqBG;%8tuX zBc{}frEv860D+yqz@L9KWc}({OHxjJ(t^m^iD8cw`kSO>Or3V z9lu$=i6uUlBJSSG*Xux2MfBU-{amdk0?WxvGn7RRJoPAvMW_~GiqT4;dE`LO=-QdP zghEq#I;+D%;aB$^EwI~|1KsU|V1$i?pxYmj0eDW12-`YhQegUY1rHT;B&_NaHR%Pr z#rvZr@^z^ry^#v^B`*5+7TYv&1~v(Mfp_c``qEGF)f=h@8%396Q3_klQ9Q4kn*xX zOF|vX5ayS9?+40a9JQ`%S;M$#t*fQ>%StO%rIc)@T>@VZe^pWJ1z#l*TE(Z&lD*>M zc=@a1(a*eHo87GE;x zf3~VxMC8OKd}x^cC{O@nV>DIx?eh@%1zV9AyO37QNJv>(X?mX%JSh5U=82D3-0|mh zmS7T|_c`Y&aEvKuyx0RB(Sum?=?nv}yz&;fD48lrL=ql-c}DT$w-y6a-)z;j6@PWT zBn0O>hjAcM3biUMR8KFe`SQb*M8o$t?p;4oZz35*#f6ck6<)lc^@c6eD;!)u1z0_8 zc8o0oEG9^%lj-)WFu#swRG0+RwwwAxV@vz0*7TGfs+^nW88^~dcnK2XV!rR3(WShG zYZjnZ3**z(*ycM;gIQ$@yG<1}yxz;F8RY6)D!_^8d}6a{pL4|MrT$Ymc_Gj`*84p1 zszm%}pUB2pH=cN-^4oh7*buDe{U1%2g7>o0v6O}B@s=To5c9U^o zlX*AC=6uz0@h$isZ|djX@QKO~yDfWjt|I|gzFD|VPg8%=c0F%&j5|&QE_;4(#y#Ac zjd-Kqlp_oF6b)qgUZE~FzMjW|pW*7C| z<^Sp0UZCdI?exwCnD&(5%xG0Is;tby35YjM%3!AMER zm#bHe4I%I5;YGh{J$whFV;Yp^tc0JnYQL`Kpwwvcm}9Q9wC{_r__#G3=zr0CuA$i3 z*Ftdb3jqUb@vrT@`Nc)*u=E+%4>dfxJ_M}>7JkO`)nBDPGdZ$o%;X6c`AgbsKqOEn z@4vkgAzbv`Q4UGLyc<<6%nfVI4uE|ISFB=@DSPodEpRc0nC2FOj3`xus-MR_@k2qN zk<4z+sPgUT-i*v6Y!x64BkyCPMs|lXGu8o`$C;0P=E69^ZiiY=Cc3-h68-siTXn_W zGbnfW<*sbz*H#I;{p4Y!)`oP~D-AP!Epk~%&XcGwZ|W_dYh3wCeiY(rlpA*9KbD*) zLU*!J3>S)W*F>Yw>D{&73ujK~LYtFrjk>?@PSJ{(GtQc#k8V*Hdf#VfEJ+W2Sf4fv zo8aPT@|{EJa#P8sKVa0R)^^SXPP!+6KhZVcW+06o<+EWiEmVrc>0{E$WI`QhowL9z zo}oc@g_o}SNgLL#-5HeDJbcA!`6hA-9a#%?aH#|jdiTCetczm&tUiri*TI>h!mhAY z8mlLL&3r5~Vh$3deUc20jU=AryK}M@{13I#4+B9#muI^(>%@U`C3!D3Ne5MmGQy*I z2XSjPL?$~0Di!ej{o&l#=Hz{S_qq$rrB>f9PExas$<&lotNls{N7|OpH*;8C0)ABN4U~JIa^zlV1@2#o@%*0&&mi*Z67Q|y3WuW6+!Mn^I9cweE z*}XAg-GM62WoGbbIR;I5#F){~2Cy;Ln%HJjgdMMf^|ro78yj0@N+{+`gt2`iiVvMQ z<~0~I(EIpij4%UN+>8G{jGB2XB4BeYaXSOh?e!)8&)yUJTnfic(306)GDe z;Ghy6+_zuHuwc#_RZCMSXpdofa!V@ddC_d^K*x))adV9HgZh1cuiIb&OtZFwHu2~9 zL&Q!U))dKU2UQtZ?t&1tj>MWI&he8Q)IcTqrXTzA8FxzYT{1nhQcl`=OuXh>4cC4g z3^tmpes^qP#%-$g`?L)6f!$of4zqrsdAAZHnO98W_`|*y8|wyjG4QJUV$%7Ks!zd4 z+~aY_SKV=WLT0G!nv)tPOQSsEfVfSrDS8pCLm~;vx#Kq|{D?-yfMPI$1TtIldaPH} zddFEo-Qah2dL5Qkg8c(4In-jn8Lo=ZJ*rratG6PU;-l9M${S?Vu5}hsbIKOaMa{53 z43Uw3Q~jrVbR%E8uF)@RC_5T4_reaXUYH&`u3S>YhYU9i)K8E{$ARU`+q~X+!ZjLg z;dT#uI?0*Eed_r0HF_k03qIL?2mkcaFcP)l zWOPs$d~QJ|sOF%mIE~41lQYkcGRgVQ9yg}sn%x95*YGIJ6O5v3E%#1TQ<>}R+s|bu zqHf{x?vBeZ4ubr0$eS^M79k+2#>%xH);eN~MnQAc*mAXX;##jghhXMs;&p-D*{%5twXN9r@uBI`+&R`MKt9i}`+G$f?i z==}Y4o~GsEiM=)AAV0@?ccA2KxIG%z!k_!PfO5Y<0l}zGRT(pOIcf7p4QH zsr{3l5bHpi_g1WMMyyaiicwqYxNS<lHx_@F_#cjA8-W2%SgX|9NoE?}_ylxebwK zL7PZy1e_@#>7Fes?)2b|n#5h@QK7osPVP0<>}Ya|A6aoz8Vw-1#LE`xuFdD{r5s%^dn zS5I$0al0f=KlJ==9TmZk?&$qZ`?6k7)pMmM3|jl#2K5L0yz)FlX&h-Xa(nAUsG;ij zB0>F8UH$_->Lw#U=+MH?;?y&j!z7#Y2W#vSC6zxHdZ{wD;PtKfpN_OhoedSi*QP%8 zD6Jp1w!+kzvTfmeL;l22;zVA4g~9;R=X1Kd#47q}Z6QAS@s~{-oE zlv2^@;Nrpd3(je!8&%D3AEU8Vw)`E6KDAK6U4Mm~P1V(*L0)z?EO)<07tmmzctZ7m zt!V!f4n|fuZeFl@VoNXTpyEe5Zo-l!Y!0SgzKbap$M6 zK?$hK+h~02lXQc+A_H`;M&=L4uf1N1E4Ea&1_Gz?aH5ScA;G7opYuVJ-V3^I>M+jr zob!*ZCC(#S7=3H;>swexRW=R>&p=)4bbd?S=(`OT%;&6hA%PDqlCjcc*&w3wj{6U| zkQ`^3+&-R^uUWX$Z+~wH56B#lIcw@D%0k9qelfAE&*CBX_YHr1=jE#a$CeolQl(aZ zw7jcU2VVx+LJVI@hZP;|JuItxGzKmxl^=<(QK?woOb=(tBR+->Kp@~^J6HgH0;Gb! zYvTS9lEiU>*H2-H4=iAcP)3w`|JmM<9#yaKe7#Ha-GWDNNuAJ^QFQsK!^GEe>_UEObpXw*8TQ%M+wJx5TyMNMUvsV!{ zP~vAlFt_)EjP#iU?#K>i$aXe`#9OAnLGzTAhiF_cj}44`A#*$wArLZHz@+tr=NOhV z!E=`p^yOPb=RyYa7<(9*j}3)Y|CAe@oQ9dhX#Y}SHb+pJ6mo#!fUCAk$Fbqvss69x zFEg4{M}$Kp@(QzM+?gS+qzyJzSBB+&M2w&Y>ndlOGz6$&B>TWe;TT;SaT2|SVE9vR zUu+mS1n7<+X=#!!X|tLlMN-#xitW$gY=buA45e@6YRN0)YF(^#3HkU3zlEqK1WuC7 zd|Y4@2wEVSfjVY~#Y>sCBchvsZzGJzCr#SW* zB)-W79R~!%fj_iI7$1(hriPDzXeV_3JnVxe`=QoJ3D2_+OxRV zuuLyH#5N#1*nK6wF!b9ixn;5IS!J$_ZPV4AS#am@HPIzosr}gffbd!dA7^ISC|ljK zaIrV?>8mQCweN^@U$H-3v3<=|3XiRkLR#Srkx81GJ(q^KbA%PTNJl`{fErZfEeM;X8U5+N{i}5s;n5xzfVF9@_Si?6!`}L`3Jn+lSZa=X_1X z%tDu3HHg^M02i`tB2n%b()-BF_W^YLc2|0SpPWZN29aAZ&Y9!{*v55*#H@~b>QlMT zO--Cjczq%C5Sb_>*=-|HoxZ29}yRAoV=$h8go{XRB7 z70A~Zk1MJUH>1tHbxN58Uo-d9|HssWddZshEzXcy4K&XW>qi!|ep{X`w&B*lzuXk2 zc3Csht8JmPwSs0x{CZA^>Ea6vqGuv@(+^+>0dH*D6CIVFJ|kZY;l@{b#OC2;6ukY1 z{)Hq`PGfYS=PC!i);>l;*iUgrLRjgvKKp$*XFNkLCVpjif5VL#uHV?}rz^1OUp{8J zv&gY=R&5-aN=IK6q;@g@^MEjxT|YSY|MX{cx43QNhyNcTD9YxuQ}DbE2k%G{C2A% z^2{wqtCZC-TX9yZzh}xx#&%u5_yzSEs-4T|C$pCU^exX@IDQwClyo5F@jl_pA6>Lg zTaXO1$uN>mB4<BU%PB~yHzBhvIW`e)@;ix=~7`*mAwDeF|-t()O2fS80a{h!&( z-)YQ$p8UW&WI!M<_080ldy13ke}1s>@L2zo`n%=_x={QZyaPl`34khC{wrsuo`W(T z-pGMR4}sJf3c&m)11O*4uf+%?|9l3rF}VDyYAh{xatrHx5}jTw0mnbE(J3ZTPK09LaMpfK|r ztHF}_#>%&&AoE5Hz?lzUrQFW=K{pcX@E3bfu%WJP_io^ zHZKM0`>Wi+0L20Y&@j&c((?E#>4BYjbr8NUfQe@U3>M@-DSkIN96){(oLpc4o%!Eb zWQ(F8*-wA*F<`$a2;vUD!M4R0pyAMe@fJWHK?+DNaf3P{Zmd61jKK6F1yHxd0HTe( zu@09sK>cxlQ5Mj^QUCyk0d$yhQ{hi%1b$(-LBG>)4VCp}iW`JiKDgO5h-Coz zSN*jf0mQ2Ups7w^znc>NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From f8dfcc95021ee24528657f487cf562ac82af0018 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 08:16:22 +0200 Subject: [PATCH 10/77] Codacy: Fix md styling Fix styling to match Codacy rules. --- gradle/README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/gradle/README.md b/gradle/README.md index 68ce5e68d0..5c324d903c 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -1,23 +1,22 @@ # How to upgrade the Gradle version Visit the [Gradle website](https://gradle.org/releases/) and decide the: -* desired version -* desired distribution type -* what is the sha256 for the version and type chosen + * desired version + * desired distribution type + * what is the sha256 for the version and type chosen Adjust the following command with tha arguments above and execute it twice: - ./gradlew wrapper --gradle-version 6.6.1 \ --distribution-type all \ --gradle-distribution-sha256-sum 11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5 +The first execution should automatically update: + * `bisq/gradle/wrapper/gradle-wrapper.properties` -The first execution should automatically update `bisq/gradle/wrapper/gradle-wrapper.properties` - -The second execution should update: -* `bisq/gradle/wrapper/gradle-wrapper.jar` -* `bisq/gradlew` -* `bisq/gradlew.bat` +The second execution should then update: + * `bisq/gradle/wrapper/gradle-wrapper.jar` + * `bisq/gradlew` + * `bisq/gradlew.bat` The four updated files are ready to be committed. From 9cc77850e444fd63d57e1e799931adfd63477462 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 08:40:59 +0200 Subject: [PATCH 11/77] Codacy: Fix md styling, part 2 Fix styling to match Codacy rules. --- gradle/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle/README.md b/gradle/README.md index 5c324d903c..f35aafee6c 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -1,9 +1,9 @@ # How to upgrade the Gradle version Visit the [Gradle website](https://gradle.org/releases/) and decide the: - * desired version - * desired distribution type - * what is the sha256 for the version and type chosen +* desired version +* desired distribution type +* what is the sha256 for the version and type chosen Adjust the following command with tha arguments above and execute it twice: @@ -12,11 +12,11 @@ Adjust the following command with tha arguments above and execute it twice: --gradle-distribution-sha256-sum 11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5 The first execution should automatically update: - * `bisq/gradle/wrapper/gradle-wrapper.properties` +* `bisq/gradle/wrapper/gradle-wrapper.properties` The second execution should then update: - * `bisq/gradle/wrapper/gradle-wrapper.jar` - * `bisq/gradlew` - * `bisq/gradlew.bat` +* `bisq/gradle/wrapper/gradle-wrapper.jar` +* `bisq/gradlew` +* `bisq/gradlew.bat` The four updated files are ready to be committed. From 24296fae5961365e7d06748fa7b7be15cdaeed35 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 08:52:07 +0200 Subject: [PATCH 12/77] Codacy: Fix md styling, part 3 Fix styling to match Codacy rules. --- gradle/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle/README.md b/gradle/README.md index f35aafee6c..7461862337 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -1,9 +1,9 @@ # How to upgrade the Gradle version Visit the [Gradle website](https://gradle.org/releases/) and decide the: -* desired version -* desired distribution type -* what is the sha256 for the version and type chosen +* desired version +* desired distribution type +* what is the sha256 for the version and type chosen Adjust the following command with tha arguments above and execute it twice: @@ -12,11 +12,11 @@ Adjust the following command with tha arguments above and execute it twice: --gradle-distribution-sha256-sum 11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5 The first execution should automatically update: -* `bisq/gradle/wrapper/gradle-wrapper.properties` +* `bisq/gradle/wrapper/gradle-wrapper.properties` The second execution should then update: -* `bisq/gradle/wrapper/gradle-wrapper.jar` -* `bisq/gradlew` -* `bisq/gradlew.bat` + - `bisq/gradle/wrapper/gradle-wrapper.jar` + - `bisq/gradlew` + - `bisq/gradlew.bat` The four updated files are ready to be committed. From b877c9f9739dbddb3bc6c476a6c187277bb5cf0b Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 09:05:40 +0200 Subject: [PATCH 13/77] Codacy: Fix md styling, part 4 Fix styling to match Codacy rules. --- gradle/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gradle/README.md b/gradle/README.md index 7461862337..f158329525 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -1,9 +1,9 @@ # How to upgrade the Gradle version Visit the [Gradle website](https://gradle.org/releases/) and decide the: -* desired version -* desired distribution type -* what is the sha256 for the version and type chosen +* desired version +* desired distribution type +* what is the sha256 for the version and type chosen Adjust the following command with tha arguments above and execute it twice: @@ -15,8 +15,8 @@ The first execution should automatically update: * `bisq/gradle/wrapper/gradle-wrapper.properties` The second execution should then update: - - `bisq/gradle/wrapper/gradle-wrapper.jar` - - `bisq/gradlew` - - `bisq/gradlew.bat` +* `bisq/gradle/wrapper/gradle-wrapper.jar` +* `bisq/gradlew` +* `bisq/gradlew.bat` The four updated files are ready to be committed. From c82d76e8ea774201916a79eb965ae13499011830 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 10:39:56 +0200 Subject: [PATCH 14/77] Codacy: Fix md styling, part 5 Fix styling to match Codacy rules. --- gradle/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle/README.md b/gradle/README.md index f158329525..34e569cbe0 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -1,9 +1,9 @@ # How to upgrade the Gradle version Visit the [Gradle website](https://gradle.org/releases/) and decide the: -* desired version -* desired distribution type -* what is the sha256 for the version and type chosen + - desired version + - desired distribution type + - what is the sha256 for the version and type chosen Adjust the following command with tha arguments above and execute it twice: @@ -12,11 +12,11 @@ Adjust the following command with tha arguments above and execute it twice: --gradle-distribution-sha256-sum 11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5 The first execution should automatically update: -* `bisq/gradle/wrapper/gradle-wrapper.properties` + - `bisq/gradle/wrapper/gradle-wrapper.properties` The second execution should then update: -* `bisq/gradle/wrapper/gradle-wrapper.jar` -* `bisq/gradlew` -* `bisq/gradlew.bat` + - `bisq/gradle/wrapper/gradle-wrapper.jar` + - `bisq/gradlew` + - `bisq/gradlew.bat` The four updated files are ready to be committed. From 4322e7275b405d3be94319fc3f4659d98feec8c5 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 17 Sep 2020 11:10:35 +0200 Subject: [PATCH 15/77] Upgrade apache-commons-lang3 to v11 to avoid jdeps issue Updated the commons-lang3 version to the latest one, to avoid the existence of multiple versions used by different projects. Before, v3.8 was used in most projects and v3.9 was brought as a transitive dependency in pricenode. So both were used by different projects. With this commit, all projects use v3.11, since it is explicitly defined in build.gradle. This resolves an exception thrown by jdeps when trying to list the module dependencies of the desktop-vXYZ-SNAPSHOT-all.jar. --- build.gradle | 2 +- gradle/witness/gradle-witness.gradle | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index f453c572ae..4e712a4670 100644 --- a/build.gradle +++ b/build.gradle @@ -58,7 +58,7 @@ configure(subprojects) { jupiterVersion = '5.3.2' kotlinVersion = '1.3.41' knowmXchangeVersion = '4.4.2' - langVersion = '3.8' + langVersion = '3.11' logbackVersion = '1.1.11' loggingVersion = '1.2' lombokVersion = '1.18.12' diff --git a/gradle/witness/gradle-witness.gradle b/gradle/witness/gradle-witness.gradle index 1e6db53567..60d4981eb8 100644 --- a/gradle/witness/gradle-witness.gradle +++ b/gradle/witness/gradle-witness.gradle @@ -54,6 +54,7 @@ dependencyVerification { 'de.jensd:fontawesomefx-commons:5539bb3335ecb822dbf928546f57766eeb9f1516cc1417a064b5709629612149', 'de.jensd:fontawesomefx-materialdesignfont:dbad8dfdd1c85e298d5bbae25b2399aec9e85064db57b2427d10f3815aa98752', 'de.jensd:fontawesomefx:73bacc991a0a6f5cf0f911767c8db161e0949dbca61e8371eb4342e3da96887b', + 'io.github.microutils:kotlin-logging:4992504fd3c6ecdf9ed10874b9508e758bb908af9e9d7af19a61e9afb6b7e27a', 'io.grpc:grpc-api:a269094009588213ab5386a6fb92426b8056a130b2653d3b4e59e971f2f1ef08', 'io.grpc:grpc-context:f4c8f878c320f6fb56c1c14692618f6df8253314b556176e32727afbc5921a73', 'io.grpc:grpc-core:d67fa113fd9cc45a02710f9c41dda9c15191448c14e9e96fcc21839a41345d4c', @@ -71,7 +72,7 @@ dependencyVerification { 'network.bisq.btcd-cli4j:btcd-cli4j-core:203156fc63dc1202774de9818e4f21149549f79b25d356b08bb0c784be40c0e8', 'network.bisq.btcd-cli4j:btcd-cli4j-daemon:0a2783a851add6e3d8ae899ade48c041b250bfac64b6a4c5f6380ebcdbbe6848', 'org.apache.commons:commons-compress:5f2df1e467825e4cac5996d44890c4201c000b43c0b23cffc0782d28a0beb9b0', - 'org.apache.commons:commons-lang3:9375aad1000cdd5bd3068e832de9802094fac1f145655251e141d5d0072fab9a', + 'org.apache.commons:commons-lang3:4ee380259c068d1dbe9e84ab52186f2acd65de067ec09beff731fca1697fdb16', 'org.apache.httpcomponents:httpclient:bc5f065aba5dd815ee559dd24d9bcb797fb102ff9cfa036f5091ebc529bd3b93', 'org.apache.httpcomponents:httpcore:e06e89d40943245fcfa39ec537cdbfce3762aecde8f9c597780d2b00c2b43424', 'org.bitcoinj:orchid:f836325cfa0466a011cb755c9b0fee6368487a2352eb45f4306ad9e4c18de080', From aae99703ebc9ffada761767525b422a52b3c76b0 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Fri, 18 Sep 2020 06:43:12 +0200 Subject: [PATCH 16/77] Codacy: Fix md styling, part 5 Fix styling to match Codacy rules. --- gradle/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gradle/README.md b/gradle/README.md index 34e569cbe0..b6b4a57c47 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -1,6 +1,7 @@ # How to upgrade the Gradle version Visit the [Gradle website](https://gradle.org/releases/) and decide the: + - desired version - desired distribution type - what is the sha256 for the version and type chosen @@ -12,9 +13,11 @@ Adjust the following command with tha arguments above and execute it twice: --gradle-distribution-sha256-sum 11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5 The first execution should automatically update: + - `bisq/gradle/wrapper/gradle-wrapper.properties` The second execution should then update: + - `bisq/gradle/wrapper/gradle-wrapper.jar` - `bisq/gradlew` - `bisq/gradlew.bat` From ef680f9ba6947efc669f130f0d5725be1124a435 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sat, 19 Sep 2020 07:50:50 +0200 Subject: [PATCH 17/77] Codacy: Test tag to skip check Try out optional tag to check how it affects codacy behavior. [skip ci] --- gradle/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/README.md b/gradle/README.md index b6b4a57c47..4d88406b08 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -4,7 +4,7 @@ Visit the [Gradle website](https://gradle.org/releases/) and decide the: - desired version - desired distribution type - - what is the sha256 for the version and type chosen + - what is the sha256 for the version and type chosen above Adjust the following command with tha arguments above and execute it twice: From b9164e6e829d078969889453699ee336959d17b1 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sat, 19 Sep 2020 20:48:28 +0200 Subject: [PATCH 18/77] Include version in bisq-desktop jar manifest Include the application version number in the jar manifest. This makes it easier later on, in the packaging process, to programmatically retrieve the build version from a reliable source. --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index bbca28788e..bdd51843e0 100644 --- a/build.gradle +++ b/build.gradle @@ -378,6 +378,10 @@ configure(project(':desktop')) { version = '1.3.9-SNAPSHOT' + jar.manifest.attributes( + "Implementation-Title": project.name, + "Implementation-Version": version) + mainClassName = 'bisq.desktop.app.BisqAppMain' tasks.withType(AbstractArchiveTask) { From 150599cc31469f535f0ded84ab83d90260c7c347 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Tue, 22 Sep 2020 18:18:28 +0200 Subject: [PATCH 19/77] Integrate jpackage to build platform-specific binaries Extend the gradle script with tasks that use jpackage to generate Bisq binaries. The kind of binaries generated depend on the OS where this is executed. The packaging of binaries can be started by calling: ./gradlew --console=plain packageInstallers from the root project folder. --- build.gradle | 6 + desktop/package/package.gradle | 283 +++++++++++++++++++++++++++++++++ 2 files changed, 289 insertions(+) create mode 100644 desktop/package/package.gradle diff --git a/build.gradle b/build.gradle index bdd51843e0..0bd6a692f0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,8 @@ +import java.time.LocalDateTime +import org.apache.tools.ant.taskdefs.condition.Os + +import static groovy.io.FileType.* + buildscript { repositories { jcenter() @@ -375,6 +380,7 @@ configure(project(':desktop')) { apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'witness' apply from: '../gradle/witness/gradle-witness.gradle' + apply from: 'package/package.gradle' version = '1.3.9-SNAPSHOT' diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle new file mode 100644 index 0000000000..0260264795 --- /dev/null +++ b/desktop/package/package.gradle @@ -0,0 +1,283 @@ +import java.time.LocalDateTime +import org.apache.tools.ant.taskdefs.condition.Os + +import static groovy.io.FileType.* + + +task jpackageSanityChecks { + description 'Interactive sanity checks on the version of the code that will be packaged' + + doLast { + executeCmd("git --no-pager log -5 --oneline") + ant.input(message: "Above you see the current HEAD and its recent history.\n" + + "Is this the right commit for packaging? (y=continue, n=abort)", + addproperty: "sanity-check-1", + validargs: "y,n") + if (ant.properties['sanity-check-1'] == 'n') { + ant.fail('Aborting') + } + + executeCmd("git status --short --branch") + ant.input(message: "Above you see any local changes that are not in the remote branch.\n" + + "If you have any local changes, please abort, get them merged, get the latest branch and try again.\n" + + "Continue with packaging? (y=continue, n=abort)", + addproperty: "sanity-check-2", + validargs: "y,n") + if (ant.properties['sanity-check-2'] == 'n') { + ant.fail('Aborting') + } + + // TODO Evtl check programmatically in gradle (i.e. fail if below v11) + executeCmd("java --version") + ant.input(message: "Above you see the installed java version, which will be used to compile and build Bisq.\n" + + "Is this java version ok for that? (y=continue, n=abort)", + addproperty: "sanity-check-3", + validargs: "y,n") + if (ant.properties['sanity-check-3'] == 'n') { + ant.fail('Aborting') + } + } +} + +task getJpackageJDKDownloadURL { + description 'Find out which JDK will be used for jpackage and prepare to download it' + dependsOn 'jpackageSanityChecks' + + doLast { + // The build directory will be deleted next time the clean task runs + // Therefore, we can use it to store any temp files (separate JDK for jpackage, etc) and resulting build artefacts + // We create a temp folder in the build directory which holds all jpackage-related artefacts (not just the final installers) + String tempRootDirName = 'temp-' + LocalDateTime.now().getNano() + File tempRootDir = new File(project.buildDir, tempRootDirName) + tempRootDir.mkdirs() + ext.tempRootDir = tempRootDir + println "Created temp root folder " + tempRootDir + + File binariesFolderPath = new File(tempRootDir, "binaries") + binariesFolderPath.mkdirs(); + ext.binariesFolderPath = binariesFolderPath + + def apiEndpointLatestRelease = 'https://api.github.com/repos/AdoptOpenJDK/openjdk15-binaries/releases/latest' + def apiEndpointLatestReleaseJSON = new groovy.json.JsonSlurper().parseText(apiEndpointLatestRelease.toURL().text) + def latestReleaseTag = apiEndpointLatestReleaseJSON.tag_name + println "Latest AdoptOpenJDK release is ${latestReleaseTag}" + + // AdoptOpenJDK only offer the latest release version for download (but none of the previous ones) + // This means we cannot hardcode a download URL for a specific version, because it will likely not work + // when the next release is out + // Therefore, we always query the latest version and download it (to use its jpackage) + + // TODO Extend script logic to alternatively allow a local (separate, v14+) JDK for jpackage + // TODO Another option is to use the local JDK for everything: build jars and use jpackage (but then it has to be v14+) + + // See details of latest release available + // See https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/latest for binaries available + // https://adoptopenjdk.net/releases.html?variant=openjdk15&jvmVariant=hotspot + + def latestReleaseAssetsEndpoint = "https://api.github.com/repos/AdoptOpenJDK/openjdk15-binaries/releases/tags/${latestReleaseTag}" + def latestReleaseAssetsJSON = new groovy.json.JsonSlurper().parseText(latestReleaseAssetsEndpoint.toURL().text) + def latestReleaseAssets = latestReleaseAssetsJSON.assets.findAll { + // We could generate installers for other platforms as well, but for now just x64 + it.name.contains('OpenJDK15U-jdk_x64_') && + // They distribute the JDK archive as zip for windows, tar.gz for mac/linux + ( it.name.endsWith('tar.gz') || it.name.endsWith('zip') ) + } + + def latestReleaseAssetsMap = [ + linux: latestReleaseAssets.find {it.name.contains('linux')}.browser_download_url, + mac: latestReleaseAssets.find {it.name.contains('mac')}.browser_download_url, + windows: latestReleaseAssets.find {it.name.contains('windows')}.browser_download_url + ] + + // Ensure we got the 3 we want + assert latestReleaseAssets.size() == 3 + assert latestReleaseAssetsMap['linux'] != null + assert latestReleaseAssetsMap['mac'] != null + assert latestReleaseAssetsMap['windows'] != null + + String downloadURL + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + downloadURL = latestReleaseAssetsMap['windows'] + } else if (Os.isFamily(Os.FAMILY_MAC)) { + downloadURL = latestReleaseAssetsMap['mac'] + } else { + downloadURL = latestReleaseAssetsMap['linux'] + } + + // The download URL can be manually overwritten here, if necessary + // downloadURL = 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz'; + + ext.downloadURL = downloadURL + } +} + +task packageGetJpackagePath { + description 'Retrieve JDK for jpackage and extract it' + dependsOn 'getJpackageJDKDownloadURL' + + doLast { + // Folder where the jpackage JDK archive will be downloaded and extracted + String jdkForJpackageDirName = "jpackage-jdk" + File jdkForJpackageDir = new File(getJpackageJDKDownloadURL.property("tempRootDir"), jdkForJpackageDirName) + jdkForJpackageDir.mkdirs(); + + String archiveURL = getJpackageJDKDownloadURL.property('downloadURL') + String archiveFileName = archiveURL.tokenize('/').last() + File jdkArchiveFile = new File(jdkForJpackageDir, archiveFileName) + String jpackageBinaryFileName + + ext.downloadJpackageJDKArchive(archiveURL, jdkArchiveFile) + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + ext.extractJpackageJDKArchiveZip(jdkArchiveFile, jdkForJpackageDir) + jpackageBinaryFileName = 'jpackage.exe' + } else { + ext.extractJpackageJDKArchiveTarGz(jdkArchiveFile, jdkForJpackageDir) + jpackageBinaryFileName = 'jpackage' + } + + // Find jpackage in the newly extracted JDK + // Don't rely on hardcoded paths to reach it, because the path depends on the version and platform + jdkForJpackageDir.traverse(type: FILES, nameFilter: jpackageBinaryFileName) { + println 'Using jpackage binary from ' + it + ext.jpackageFilePath = it.path + } + } + + ext.downloadJpackageJDKArchive = {String archiveURL, File jdkArchiveFile -> + println "Downloading ${archiveURL}" + ant.get(src: archiveURL, dest: jdkArchiveFile) + println 'Download saved to ' + jdkArchiveFile + } + + ext.extractJpackageJDKArchiveTarGz = {File jdkArchiveFile, File separateJdkForJpackageDir -> + println "Extracting tar.gz ${jdkArchiveFile}" + // Gradle's tar extraction preserves permissions (crucial for jpackage to function correctly) + copy { + from tarTree(resources.gzip(jdkArchiveFile)) + into separateJdkForJpackageDir + } + println "Extracted to ${separateJdkForJpackageDir}" + } + + ext.extractJpackageJDKArchiveZip = {File jdkArchiveFile, File separateJdkForJpackageDir -> + println "Extracting zip ${jdkArchiveFile}..." + ant.unzip(src: jdkArchiveFile, dest: separateJdkForJpackageDir) + println "Extracted to ${separateJdkForJpackageDir}" + } +} + +task packageInstallers { + description 'Call jpackage to prepare platform-specific binaries for this platform' + dependsOn 'packageGetJpackagePath' + // We need :clean and :shadowJar to make sure we have a fresh, current jar for the installers + dependsOn ':clean' + dependsOn ':desktop:shadowJar' + + doLast { + String jPackageFilePath = "${packageGetJpackagePath.property('jpackageFilePath')}" + String licenseFilePath = "${rootProject.projectDir}/LICENSE" + File binariesFolderPath = file(getJpackageJDKDownloadURL.property('binariesFolderPath')) + + // ALL contents of this folder will be included in the resulting installers + // However, the fat jar is the only one we need + // Therefore, this location should point to a folder that ONLY contains the fat jar + // If later we will need to include other non-jar resources, we can do that by adding --resource-dir to the jpackage opts + String fatJarFolderPath = "${project(':desktop').buildDir}/libs" + String mainJarName = file(fatJarFolderPath).list()[0] + + // TODO For non-modular applications: use jlink to create a custom runtime containing only the modules required + + // See jpackager argument documentation: + // https://docs.oracle.com/en/java/javase/15/docs/specs/man/jpackage.html + + // For mac, valid versions are one to three integers separated by dot + // TODO Special handling for mac? Or always remove -SNAPSHOT suffix? + String appVersion = '1.1.1' + println "Packaging Bisq version ${appVersion}" + + String commonOpts = + // Generic options + " --dest \"${binariesFolderPath}\"" + + " --name bisq-pr4242-test" + + " --description \"A decentralized bitcoin exchange network.\"" + + " --app-version ${appVersion}" + + " --copyright \"© 2020 Bisq\"" + + " --vendor Bisq" + + // Options for creating the application image + " --input ${fatJarFolderPath}" + + // Options for creating the application launcher + " --main-jar ${mainJarName}" + + " --main-class bisq.desktop.app.BisqAppMain" + + " --java-options -Xss1280k" + + " --java-options -XX:MaxRAM=4g" + + " --java-options -Djava.net.preferIPv4Stack=true" + + // Options for creating the application package + " --license-file \"${licenseFilePath}\"" ; + + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + String windowsOpts = + " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + " --win-per-user-install" + + " --win-menu" + + " --win-shortcut" // TODO Seems to not work, no shortcuts created + + // TODO How does the current package/windows/Bisq.iss play into this? + + // TODO Do msi or exe? Or both? For pros and cons see https://stackoverflow.com/a/1925819 + executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") + executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type msi") + } else if (Os.isFamily(Os.FAMILY_MAC)) { + // TODO Include signing args, like --mac-sign / -mac-signing-keychain / --mac-signing-key-user-name + String macOpts = + " --icon ${project(':desktop').projectDir}/package/macosx/Bisq.icns" + " --mac-package-name Bisq-PR-4242" + + " --mac-package-identifier Bisq-PR-4242-ID" + + // TODO Do dmg or pkg? Or both? + executeCmd(jPackageFilePath + commonOpts + macOpts + " --type pkg") + executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") + } else { + String linuxOpts = + " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + " --linux-package-name bisq-build-test" + + " --linux-app-release ${appVersion}" + + " --linux-menu-group Network" + + " --linux-shortcut" + + executeCmd(jPackageFilePath + commonOpts + linuxOpts + + " --linux-deb-maintainer contact@bisq.network" + + " --type deb") + executeCmd(jPackageFilePath + commonOpts + linuxOpts + + " --linux-rpm-license-type AGPLv3" + // https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses + " --type rpm") + } + + println "The binaries are ready:" + binariesFolderPath.traverse { + println it.path + } + } +} + +def executeCmd(String cmd) { + String shell + String shellArg + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + shell = 'cmd' + shellArg = '/c' + } else { + shell = 'bash' + shellArg = '-c' + } + + println "Executing command:\n${cmd}\n" + // See "Executing External Processes" section of + // http://docs.groovy-lang.org/next/html/documentation/ + def commands = [shell, shellArg, cmd] + def process = commands.execute(null, project.rootDir) + if (process.waitFor() == 0) { + println "Command output (stdout):\n${process.text}" + } else { + println "Command output (stderr):\n${process.err.text}" + } +} From 50f5d9b2c33d8e78501d1429e57e921c36e898e8 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 23 Sep 2020 18:18:04 +0200 Subject: [PATCH 20/77] Update jfoenix to latest v9.0.10 Update jfoenix to attempt to fix JavaFX NPEs. --- build.gradle | 2 +- gradle/witness/gradle-witness.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0bd6a692f0..8f0d016de1 100644 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ configure(subprojects) { javaxAnnotationVersion = '1.2' jcsvVersion = '1.4.0' jetbrainsAnnotationsVersion = '13.0' - jfoenixVersion = '9.0.6' + jfoenixVersion = '9.0.10' joptVersion = '5.0.4' jsonsimpleVersion = '1.1.1' junitVersion = '4.12' diff --git a/gradle/witness/gradle-witness.gradle b/gradle/witness/gradle-witness.gradle index 60d4981eb8..ccffe93a15 100644 --- a/gradle/witness/gradle-witness.gradle +++ b/gradle/witness/gradle-witness.gradle @@ -42,7 +42,7 @@ dependencyVerification { 'com.google.zxing:core:11aae8fd974ab25faa8208be50468eb12349cd239e93e7c797377fa13e381729', 'com.google.zxing:javase:0ec23e2ec12664ddd6347c8920ad647bb3b9da290f897a88516014b56cc77eb9', 'com.googlecode.jcsv:jcsv:73ca7d715e90c8d2c2635cc284543b038245a34f70790660ed590e157b8714a2', - 'com.jfoenix:jfoenix:4739e37a05e67c3bc9d5b391a1b93717b5a48fa872992616b0964d3f827f8fe6', + 'com.jfoenix:jfoenix:8060235fec5eb49617ec8d81d379e8c945f6cc722d0645e97190045100de2084', 'com.lambdaworks:scrypt:9a82d218099fb14c10c0e86e7eefeebd8c104de920acdc47b8b4b7a686fb73b4', 'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f', 'com.nativelibs4java:bridj:101bcd9b6637e6bc16e56deb3daefba62b1f5e8e9e37e1b3e56e3b5860d659cf', From d8d337167887001969bd5e24f5f7ee086745e960 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sat, 26 Sep 2020 12:02:15 +0200 Subject: [PATCH 21/77] Fix JDK v15 installer download URL Fix the logic used to determine the JDK 15 assets and download links. Pre-releases are now excluded, as well as openj9 binaries. The resulting assets are final releases of hotspot builds. --- desktop/package/package.gradle | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 0260264795..98ca461451 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -57,9 +57,16 @@ task getJpackageJDKDownloadURL { binariesFolderPath.mkdirs(); ext.binariesFolderPath = binariesFolderPath - def apiEndpointLatestRelease = 'https://api.github.com/repos/AdoptOpenJDK/openjdk15-binaries/releases/latest' - def apiEndpointLatestReleaseJSON = new groovy.json.JsonSlurper().parseText(apiEndpointLatestRelease.toURL().text) - def latestReleaseTag = apiEndpointLatestReleaseJSON.tag_name + def apiEndpointLatestReleases = 'https://api.github.com/repos/AdoptOpenJDK/openjdk15-binaries/releases' + def apiEndpointLatestReleasesJSON = new groovy.json.JsonSlurper().parseText(apiEndpointLatestReleases.toURL().text) + def finalHotspotReleases = apiEndpointLatestReleasesJSON.findAll { + // Filter out the pre-releases (nightly builds) + (it.prerelease == false) && + // Filter our openj9 builds (for now stick to the hotspot ones) + (! it.body.contains('openj9')) + } + def latestReleaseJSON = finalHotspotReleases.first() + def latestReleaseTag = latestReleaseJSON.tag_name println "Latest AdoptOpenJDK release is ${latestReleaseTag}" // AdoptOpenJDK only offer the latest release version for download (but none of the previous ones) @@ -169,8 +176,8 @@ task packageGetJpackagePath { task packageInstallers { description 'Call jpackage to prepare platform-specific binaries for this platform' dependsOn 'packageGetJpackagePath' - // We need :clean and :shadowJar to make sure we have a fresh, current jar for the installers - dependsOn ':clean' + // Clean all previous artefacts and create a fresh shadowJar for the installers + dependsOn rootProject.clean dependsOn ':desktop:shadowJar' doLast { From ce5d4ee051de284c5a6dd248b1ea3658a0841c0e Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sat, 26 Sep 2020 15:31:50 +0200 Subject: [PATCH 22/77] Add support for jdk11 runtime-image Update jpackage arguments such that a specific java version is packaged in the installers (in this case, v11). --- desktop/package/package.gradle | 154 +++++++++++++++++---------------- 1 file changed, 80 insertions(+), 74 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 98ca461451..c4753a791d 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -39,7 +39,7 @@ task jpackageSanityChecks { } } -task getJpackageJDKDownloadURL { +task getJavaBinariesDownloadURLs { description 'Find out which JDK will be used for jpackage and prepare to download it' dependsOn 'jpackageSanityChecks' @@ -57,88 +57,89 @@ task getJpackageJDKDownloadURL { binariesFolderPath.mkdirs(); ext.binariesFolderPath = binariesFolderPath - def apiEndpointLatestReleases = 'https://api.github.com/repos/AdoptOpenJDK/openjdk15-binaries/releases' - def apiEndpointLatestReleasesJSON = new groovy.json.JsonSlurper().parseText(apiEndpointLatestReleases.toURL().text) - def finalHotspotReleases = apiEndpointLatestReleasesJSON.findAll { - // Filter out the pre-releases (nightly builds) - (it.prerelease == false) && - // Filter our openj9 builds (for now stick to the hotspot ones) - (! it.body.contains('openj9')) - } - def latestReleaseJSON = finalHotspotReleases.first() - def latestReleaseTag = latestReleaseJSON.tag_name - println "Latest AdoptOpenJDK release is ${latestReleaseTag}" - - // AdoptOpenJDK only offer the latest release version for download (but none of the previous ones) - // This means we cannot hardcode a download URL for a specific version, because it will likely not work - // when the next release is out - // Therefore, we always query the latest version and download it (to use its jpackage) - // TODO Extend script logic to alternatively allow a local (separate, v14+) JDK for jpackage // TODO Another option is to use the local JDK for everything: build jars and use jpackage (but then it has to be v14+) - // See details of latest release available - // See https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/latest for binaries available - // https://adoptopenjdk.net/releases.html?variant=openjdk15&jvmVariant=hotspot + // It seems only the latest version of each JDK is available for download + // Therefore, if at any future AdoptOpenJDK release these download links won't work, simply update them + // See https://adoptopenjdk.net/releases.html?variant=openjdk15&jvmVariant=hotspot for latest download URLs + // The links must be for: x64 + JDK + zip (for windows) or tar.gz (for mac/linux) + Map jdk15DownloadURLs = [ +// 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_linux_hotspot_15_36.tar.gz', +// 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_mac_hotspot_15_36.tar.gz', +// 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_windows_hotspot_15_36.zip' - def latestReleaseAssetsEndpoint = "https://api.github.com/repos/AdoptOpenJDK/openjdk15-binaries/releases/tags/${latestReleaseTag}" - def latestReleaseAssetsJSON = new groovy.json.JsonSlurper().parseText(latestReleaseAssetsEndpoint.toURL().text) - def latestReleaseAssets = latestReleaseAssetsJSON.assets.findAll { - // We could generate installers for other platforms as well, but for now just x64 - it.name.contains('OpenJDK15U-jdk_x64_') && - // They distribute the JDK archive as zip for windows, tar.gz for mac/linux - ( it.name.endsWith('tar.gz') || it.name.endsWith('zip') ) - } - - def latestReleaseAssetsMap = [ - linux: latestReleaseAssets.find {it.name.contains('linux')}.browser_download_url, - mac: latestReleaseAssets.find {it.name.contains('mac')}.browser_download_url, - windows: latestReleaseAssets.find {it.name.contains('windows')}.browser_download_url + // TODO For some reason, using "--runtime-image jdk-11" does NOT work with a v15 jpackage, but works with v14 + // v14 + 'linux' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz', + 'mac' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz', + 'windows' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_windows_hotspot_14.0.2_12.zip' ] - // Ensure we got the 3 we want - assert latestReleaseAssets.size() == 3 - assert latestReleaseAssetsMap['linux'] != null - assert latestReleaseAssetsMap['mac'] != null - assert latestReleaseAssetsMap['windows'] != null + // https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot + // The links must be for: x64 + JDK + zip (for windows) or tar.gz (for mac/linux) + Map jdk11DownloadURLs = [ + 'linux' : 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.8_10.tar.gz', + 'mac' : 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.tar.gz', + 'windows' : 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_windows_hotspot_11.0.8_10.zip' + ] - String downloadURL + String osKey if (Os.isFamily(Os.FAMILY_WINDOWS)) { - downloadURL = latestReleaseAssetsMap['windows'] + osKey = 'windows' } else if (Os.isFamily(Os.FAMILY_MAC)) { - downloadURL = latestReleaseAssetsMap['mac'] + osKey = 'mac' } else { - downloadURL = latestReleaseAssetsMap['linux'] + osKey = 'linux' } - // The download URL can be manually overwritten here, if necessary - // downloadURL = 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz'; + ext.jdk15DownloadURL = jdk15DownloadURLs[osKey] + ext.jdk11DownloadURL = jdk11DownloadURLs[osKey] - ext.downloadURL = downloadURL + // The download URLs can be manually overwritten here, if necessary + // ext.jdk15DownloadURL = ... + // ext.jdk11DownloadURL = ... } } -task packageGetJpackagePath { - description 'Retrieve JDK for jpackage and extract it' - dependsOn 'getJpackageJDKDownloadURL' +task retrieveAndExtractJavaBinaries { + description 'Retrieve necessary Java binaries and extract them' + dependsOn 'getJavaBinariesDownloadURLs' doLast { + File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") + // Folder where the jpackage JDK archive will be downloaded and extracted - String jdkForJpackageDirName = "jpackage-jdk" - File jdkForJpackageDir = new File(getJpackageJDKDownloadURL.property("tempRootDir"), jdkForJpackageDirName) + String jdkForJpackageDirName = "jdk-jpackage" + File jdkForJpackageDir = new File(tempRootDir, jdkForJpackageDirName) jdkForJpackageDir.mkdirs(); - String archiveURL = getJpackageJDKDownloadURL.property('downloadURL') - String archiveFileName = archiveURL.tokenize('/').last() - File jdkArchiveFile = new File(jdkForJpackageDir, archiveFileName) - String jpackageBinaryFileName + // Folder where the app-runtime JDK (v11) archive will be downloaded and extracted + String jdkForAppRuntimeDirName = "jdk-app-runtime" + File jdkForAppRuntimeDir = new File(tempRootDir, jdkForAppRuntimeDirName) + jdkForAppRuntimeDir.mkdirs(); - ext.downloadJpackageJDKArchive(archiveURL, jdkArchiveFile) + String jdkForJpackageArchiveURL = getJavaBinariesDownloadURLs.property('jdk15DownloadURL') + String jdkForJpackageArchiveFileName = jdkForJpackageArchiveURL.tokenize('/').last() + File jdkForJpackageFile = new File(jdkForJpackageDir, jdkForJpackageArchiveFileName) + + String jdkForAppRuntimeArchiveURL = getJavaBinariesDownloadURLs.property('jdk11DownloadURL') + String jdkForAppRuntimeArchiveFileName = jdkForAppRuntimeArchiveURL.tokenize('/').last() + File jdkForAppRuntimeFile = new File(jdkForAppRuntimeDir, jdkForAppRuntimeArchiveFileName) + + // Download necessary JDK binaries + ext.downloadArchive(jdkForJpackageArchiveURL, jdkForJpackageFile) + ext.downloadArchive(jdkForAppRuntimeArchiveURL, jdkForAppRuntimeFile) + + // Extract them + String jpackageBinaryFileName if (Os.isFamily(Os.FAMILY_WINDOWS)) { - ext.extractJpackageJDKArchiveZip(jdkArchiveFile, jdkForJpackageDir) + ext.extractArchiveZip(jdkForJpackageFile, jdkForJpackageDir) + ext.extractArchiveZip(jdkForAppRuntimeFile, jdkForAppRuntimeDir) jpackageBinaryFileName = 'jpackage.exe' } else { - ext.extractJpackageJDKArchiveTarGz(jdkArchiveFile, jdkForJpackageDir) + ext.extractArchiveTarGz(jdkForJpackageFile, jdkForJpackageDir) + ext.extractArchiveTarGz(jdkForAppRuntimeFile, jdkForAppRuntimeDir) jpackageBinaryFileName = 'jpackage' } @@ -148,42 +149,46 @@ task packageGetJpackagePath { println 'Using jpackage binary from ' + it ext.jpackageFilePath = it.path } + + // After the JDK was extracted, find the path to the extracted folder (the app runtime JDK folder) + jdkForAppRuntimeDir.traverse(type: DIRECTORIES, maxDepth: 0) {ext.jdkForAppRuntimePath = it.path } } - ext.downloadJpackageJDKArchive = {String archiveURL, File jdkArchiveFile -> + ext.downloadArchive = {String archiveURL, File destinationArchiveFile -> println "Downloading ${archiveURL}" - ant.get(src: archiveURL, dest: jdkArchiveFile) - println 'Download saved to ' + jdkArchiveFile + ant.get(src: archiveURL, dest: destinationArchiveFile) + println 'Download saved to ' + destinationArchiveFile } - ext.extractJpackageJDKArchiveTarGz = {File jdkArchiveFile, File separateJdkForJpackageDir -> - println "Extracting tar.gz ${jdkArchiveFile}" + ext.extractArchiveTarGz = {File tarGzFile, File destinationDir -> + println "Extracting tar.gz ${tarGzFile}" // Gradle's tar extraction preserves permissions (crucial for jpackage to function correctly) copy { - from tarTree(resources.gzip(jdkArchiveFile)) - into separateJdkForJpackageDir + from tarTree(resources.gzip(tarGzFile)) + into destinationDir } - println "Extracted to ${separateJdkForJpackageDir}" + println "Extracted to ${destinationDir}" } - ext.extractJpackageJDKArchiveZip = {File jdkArchiveFile, File separateJdkForJpackageDir -> - println "Extracting zip ${jdkArchiveFile}..." - ant.unzip(src: jdkArchiveFile, dest: separateJdkForJpackageDir) - println "Extracted to ${separateJdkForJpackageDir}" + ext.extractArchiveZip = {File zipFile, File destinationDir -> + println "Extracting zip ${zipFile}..." + ant.unzip(src: zipFile, dest: destinationDir) + println "Extracted to ${destinationDir}" } } task packageInstallers { description 'Call jpackage to prepare platform-specific binaries for this platform' - dependsOn 'packageGetJpackagePath' + dependsOn 'retrieveAndExtractJavaBinaries' // Clean all previous artefacts and create a fresh shadowJar for the installers dependsOn rootProject.clean dependsOn ':desktop:shadowJar' doLast { - String jPackageFilePath = "${packageGetJpackagePath.property('jpackageFilePath')}" + String jPackageFilePath = retrieveAndExtractJavaBinaries.property('jpackageFilePath') String licenseFilePath = "${rootProject.projectDir}/LICENSE" - File binariesFolderPath = file(getJpackageJDKDownloadURL.property('binariesFolderPath')) + File binariesFolderPath = file(getJavaBinariesDownloadURLs.property('binariesFolderPath')) + String jdkForAppRuntimePath = retrieveAndExtractJavaBinaries.property('jdkForAppRuntimePath') // ALL contents of this folder will be included in the resulting installers // However, the fat jar is the only one we need @@ -219,7 +224,8 @@ task packageInstallers { " --java-options -XX:MaxRAM=4g" + " --java-options -Djava.net.preferIPv4Stack=true" + // Options for creating the application package - " --license-file \"${licenseFilePath}\"" ; + " --license-file \"${licenseFilePath}\"" + + " --runtime-image \"${jdkForAppRuntimePath}\""; if (Os.isFamily(Os.FAMILY_WINDOWS)) { String windowsOpts = From 8137cb982f443c90d7f103f370fac8814bd370f3 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Fri, 2 Oct 2020 09:57:14 +0200 Subject: [PATCH 23/77] Remove translation to prevent clipping after jFoenix update The drawback of this is that the floating label on top of the Field is not properly left aligned anymore. A proper fix would mean more re-writing of the jFoenix library which would make it harder and harder to maintain for applying library updates. --- .../java/bisq/desktop/components/JFXTextFieldSkinBisqStyle.java | 1 - 1 file changed, 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/components/JFXTextFieldSkinBisqStyle.java b/desktop/src/main/java/bisq/desktop/components/JFXTextFieldSkinBisqStyle.java index 475a5daf10..4aca7692e5 100644 --- a/desktop/src/main/java/bisq/desktop/components/JFXTextFieldSkinBisqStyle.java +++ b/desktop/src/main/java/bisq/desktop/components/JFXTextFieldSkinBisqStyle.java @@ -120,7 +120,6 @@ public class JFXTextFieldSkinBisqStyle Date: Sat, 3 Oct 2020 17:27:06 +0200 Subject: [PATCH 24/77] macOS binaries: remove pkg Update build script to only build the dmg for macOS. --- desktop/package/package.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index c4753a791d..4a8b44a09c 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -246,8 +246,6 @@ task packageInstallers { " --mac-package-name Bisq-PR-4242" + " --mac-package-identifier Bisq-PR-4242-ID" - // TODO Do dmg or pkg? Or both? - executeCmd(jPackageFilePath + commonOpts + macOpts + " --type pkg") executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") } else { String linuxOpts = From ebadce5cee7511bfc5706221ae395b01df0b7e22 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sun, 4 Oct 2020 12:16:29 +0200 Subject: [PATCH 25/77] Fix jpackage option concatenation Fixed typo affecting jpackage option concatenation, where a missing "+" caused subsequent options to not be considered. Surround concatenated options with parentheses, to ensure such a typo in the future is marked as a syntax error, and therefore avoided. --- desktop/package/package.gradle | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 4a8b44a09c..08d72ef50b 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -207,7 +207,7 @@ task packageInstallers { String appVersion = '1.1.1' println "Packaging Bisq version ${appVersion}" - String commonOpts = + String commonOpts = ( // Generic options " --dest \"${binariesFolderPath}\"" + " --name bisq-pr4242-test" + @@ -225,14 +225,16 @@ task packageInstallers { " --java-options -Djava.net.preferIPv4Stack=true" + // Options for creating the application package " --license-file \"${licenseFilePath}\"" + - " --runtime-image \"${jdkForAppRuntimePath}\""; + " --runtime-image \"${jdkForAppRuntimePath}\"" + ) if (Os.isFamily(Os.FAMILY_WINDOWS)) { - String windowsOpts = - " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + String windowsOpts = ( + " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + " --win-per-user-install" + " --win-menu" + " --win-shortcut" // TODO Seems to not work, no shortcuts created + ) // TODO How does the current package/windows/Bisq.iss play into this? @@ -241,19 +243,21 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type msi") } else if (Os.isFamily(Os.FAMILY_MAC)) { // TODO Include signing args, like --mac-sign / -mac-signing-keychain / --mac-signing-key-user-name - String macOpts = - " --icon ${project(':desktop').projectDir}/package/macosx/Bisq.icns" + String macOpts = ( + " --icon ${project(':desktop').projectDir}/package/macosx/Bisq.icns" + " --mac-package-name Bisq-PR-4242" + " --mac-package-identifier Bisq-PR-4242-ID" + ) executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") } else { - String linuxOpts = - " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + String linuxOpts = ( + " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + " --linux-package-name bisq-build-test" + " --linux-app-release ${appVersion}" + " --linux-menu-group Network" + " --linux-shortcut" + ) executeCmd(jPackageFilePath + commonOpts + linuxOpts + " --linux-deb-maintainer contact@bisq.network" + From 45a27aff6472444c713159c452c1057657341ef3 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sun, 4 Oct 2020 12:56:34 +0200 Subject: [PATCH 26/77] Remove jpackage Windows TODO Remove TODO, since previous argument concatenation fix addressed the issue (desktop and start menu shortcuts are created now). --- desktop/package/package.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 08d72ef50b..f074c6ec74 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -233,7 +233,7 @@ task packageInstallers { " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + " --win-per-user-install" + " --win-menu" + - " --win-shortcut" // TODO Seems to not work, no shortcuts created + " --win-shortcut" ) // TODO How does the current package/windows/Bisq.iss play into this? From e409b496ede29e3b60dd512e101f1fc95b2ee512 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sun, 4 Oct 2020 22:14:12 +0200 Subject: [PATCH 27/77] Fix macOS dmg background image Update macOS setup script to use the tiff image in the installer bundle, as this is the type of background image expected and included by jpackage. Convert Bisq-background.png to Bisq-background.tiff using imagemagick. --- desktop/package/macosx/Bisq-background.png | Bin 130574 -> 0 bytes desktop/package/macosx/Bisq-background.tiff | Bin 0 -> 81469 bytes desktop/package/macosx/Bisq-dmg-setup.scpt | 5 +++-- desktop/package/package.gradle | 17 +++++++++++++---- 4 files changed, 16 insertions(+), 6 deletions(-) delete mode 100644 desktop/package/macosx/Bisq-background.png create mode 100644 desktop/package/macosx/Bisq-background.tiff diff --git a/desktop/package/macosx/Bisq-background.png b/desktop/package/macosx/Bisq-background.png deleted file mode 100644 index 8edd4b2e0411900c700017c16b8b74a9c163454d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130574 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 literal 0 HcmV?d00001 diff --git a/desktop/package/macosx/Bisq-dmg-setup.scpt b/desktop/package/macosx/Bisq-dmg-setup.scpt index a57653b27b..d07ed4b0b7 100644 --- a/desktop/package/macosx/Bisq-dmg-setup.scpt +++ b/desktop/package/macosx/Bisq-dmg-setup.scpt @@ -4,14 +4,15 @@ tell application "Finder" set current view of container window to icon view set toolbar visible of container window to false set statusbar visible of container window to false + set pathbar visible of container window to false - -- size of window should match size of background + -- size of window should match size of background (1034x641) set the bounds of container window to {400, 100, 1434, 741} set theViewOptions to the icon view options of container window set arrangement of theViewOptions to not arranged set icon size of theViewOptions to 128 - set background picture of theViewOptions to file ".background:background.png" + set background picture of theViewOptions to file ".background:background.tiff" -- Create alias for install location make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"} diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index f074c6ec74..0e22edc21a 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -190,6 +190,12 @@ task packageInstallers { File binariesFolderPath = file(getJavaBinariesDownloadURLs.property('binariesFolderPath')) String jdkForAppRuntimePath = retrieveAndExtractJavaBinaries.property('jdkForAppRuntimePath') + File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") + // The jpackateTempDir stores temp files used by jpackage for building the installers + // It can be inspected in order to troubleshoot the packaging process + File jpackateTempDir = new File(tempRootDir, "jpackage-temp") + jpackateTempDir.mkdirs(); + // ALL contents of this folder will be included in the resulting installers // However, the fat jar is the only one we need // Therefore, this location should point to a folder that ONLY contains the fat jar @@ -210,11 +216,12 @@ task packageInstallers { String commonOpts = ( // Generic options " --dest \"${binariesFolderPath}\"" + - " --name bisq-pr4242-test" + + " --name Bisq" + " --description \"A decentralized bitcoin exchange network.\"" + " --app-version ${appVersion}" + " --copyright \"© 2020 Bisq\"" + " --vendor Bisq" + + " --temp \"${jpackateTempDir}\"" + // Options for creating the application image " --input ${fatJarFolderPath}" + // Options for creating the application launcher @@ -243,10 +250,12 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type msi") } else if (Os.isFamily(Os.FAMILY_MAC)) { // TODO Include signing args, like --mac-sign / -mac-signing-keychain / --mac-signing-key-user-name + + // See https://docs.oracle.com/en/java/javase/14/jpackage/override-jpackage-resources.html + // for details of "--resource-dir" + String macOpts = ( - " --icon ${project(':desktop').projectDir}/package/macosx/Bisq.icns" + - " --mac-package-name Bisq-PR-4242" + - " --mac-package-identifier Bisq-PR-4242-ID" + " --resource-dir \"${project(':desktop').projectDir}/package/macosx\"" ) executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") From 0b40dff95d29bb775e192d2afa4f38c1bbed4ebf Mon Sep 17 00:00:00 2001 From: cd2357 <15956136+cd2357@users.noreply.github.com> Date: Tue, 6 Oct 2020 11:41:36 +0200 Subject: [PATCH 28/77] Set `-Djdk.module.illegalAccess=deny` Backport #4600 into this PR. Set `-Djdk.module.illegalAccess=deny` in order to reduce warning in startup logs. --- desktop/package/package.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 0e22edc21a..2271e51616 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -230,6 +230,7 @@ task packageInstallers { " --java-options -Xss1280k" + " --java-options -XX:MaxRAM=4g" + " --java-options -Djava.net.preferIPv4Stack=true" + + " --java-options -Djdk.module.illegalAccess=deny" + // Options for creating the application package " --license-file \"${licenseFilePath}\"" + " --runtime-image \"${jdkForAppRuntimePath}\"" From 696a788e5edcbca883c3546c36c997e6459b482c Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 8 Oct 2020 13:15:08 +0200 Subject: [PATCH 29/77] Disable '-Djdk.module.illegalAccess=deny' javaoption Disable the java option because it causes issues in the resulting app if packaged with a recent Java Runtime (tested with Java 11, 14 and 15). --- desktop/package/package.gradle | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 2271e51616..ac30c7e1bc 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -222,15 +222,20 @@ task packageInstallers { " --copyright \"© 2020 Bisq\"" + " --vendor Bisq" + " --temp \"${jpackateTempDir}\"" + + // Options for creating the application image " --input ${fatJarFolderPath}" + + // Options for creating the application launcher " --main-jar ${mainJarName}" + " --main-class bisq.desktop.app.BisqAppMain" + " --java-options -Xss1280k" + " --java-options -XX:MaxRAM=4g" + " --java-options -Djava.net.preferIPv4Stack=true" + - " --java-options -Djdk.module.illegalAccess=deny" + + // Warning: this will cause guice reflection exceptions and lead to issues with the guice internal cache + // resulting in the UI not loading +// " --java-options -Djdk.module.illegalAccess=deny" + + // Options for creating the application package " --license-file \"${licenseFilePath}\"" + " --runtime-image \"${jdkForAppRuntimePath}\"" From 0a1b581d324509755d67bbeaf9c8d8c713dfd149 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 8 Oct 2020 13:29:40 +0200 Subject: [PATCH 30/77] Remove --runtime-image option using separate JDK Remove the --runtime-image jpackage option, which was packaging Java 11 in the resulting installers. Reason is that jpackage 15 does not properly package the Java 11 runtime, but contains necessary features for signing and notarizing the app. On the other hand, jpackage 14 does package the Java 11 runtime correctly in the resulting installers, but does not support proper signing and notarizing. --- desktop/package/package.gradle | 41 ++++++---------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index ac30c7e1bc..c5e3b99855 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -65,23 +65,15 @@ task getJavaBinariesDownloadURLs { // See https://adoptopenjdk.net/releases.html?variant=openjdk15&jvmVariant=hotspot for latest download URLs // The links must be for: x64 + JDK + zip (for windows) or tar.gz (for mac/linux) Map jdk15DownloadURLs = [ -// 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_linux_hotspot_15_36.tar.gz', -// 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_mac_hotspot_15_36.tar.gz', -// 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_windows_hotspot_15_36.zip' + 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_linux_hotspot_15_36.tar.gz', + 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_mac_hotspot_15_36.tar.gz', + 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_windows_hotspot_15_36.zip' // TODO For some reason, using "--runtime-image jdk-11" does NOT work with a v15 jpackage, but works with v14 // v14 - 'linux' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz', - 'mac' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz', - 'windows' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_windows_hotspot_14.0.2_12.zip' - ] - - // https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot - // The links must be for: x64 + JDK + zip (for windows) or tar.gz (for mac/linux) - Map jdk11DownloadURLs = [ - 'linux' : 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.8_10.tar.gz', - 'mac' : 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.tar.gz', - 'windows' : 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_windows_hotspot_11.0.8_10.zip' +// 'linux' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz', +// 'mac' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz', +// 'windows' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_windows_hotspot_14.0.2_12.zip' ] String osKey @@ -94,11 +86,9 @@ task getJavaBinariesDownloadURLs { } ext.jdk15DownloadURL = jdk15DownloadURLs[osKey] - ext.jdk11DownloadURL = jdk11DownloadURLs[osKey] // The download URLs can be manually overwritten here, if necessary // ext.jdk15DownloadURL = ... - // ext.jdk11DownloadURL = ... } } @@ -114,32 +104,20 @@ task retrieveAndExtractJavaBinaries { File jdkForJpackageDir = new File(tempRootDir, jdkForJpackageDirName) jdkForJpackageDir.mkdirs(); - // Folder where the app-runtime JDK (v11) archive will be downloaded and extracted - String jdkForAppRuntimeDirName = "jdk-app-runtime" - File jdkForAppRuntimeDir = new File(tempRootDir, jdkForAppRuntimeDirName) - jdkForAppRuntimeDir.mkdirs(); - String jdkForJpackageArchiveURL = getJavaBinariesDownloadURLs.property('jdk15DownloadURL') String jdkForJpackageArchiveFileName = jdkForJpackageArchiveURL.tokenize('/').last() File jdkForJpackageFile = new File(jdkForJpackageDir, jdkForJpackageArchiveFileName) - String jdkForAppRuntimeArchiveURL = getJavaBinariesDownloadURLs.property('jdk11DownloadURL') - String jdkForAppRuntimeArchiveFileName = jdkForAppRuntimeArchiveURL.tokenize('/').last() - File jdkForAppRuntimeFile = new File(jdkForAppRuntimeDir, jdkForAppRuntimeArchiveFileName) - // Download necessary JDK binaries ext.downloadArchive(jdkForJpackageArchiveURL, jdkForJpackageFile) - ext.downloadArchive(jdkForAppRuntimeArchiveURL, jdkForAppRuntimeFile) // Extract them String jpackageBinaryFileName if (Os.isFamily(Os.FAMILY_WINDOWS)) { ext.extractArchiveZip(jdkForJpackageFile, jdkForJpackageDir) - ext.extractArchiveZip(jdkForAppRuntimeFile, jdkForAppRuntimeDir) jpackageBinaryFileName = 'jpackage.exe' } else { ext.extractArchiveTarGz(jdkForJpackageFile, jdkForJpackageDir) - ext.extractArchiveTarGz(jdkForAppRuntimeFile, jdkForAppRuntimeDir) jpackageBinaryFileName = 'jpackage' } @@ -149,9 +127,6 @@ task retrieveAndExtractJavaBinaries { println 'Using jpackage binary from ' + it ext.jpackageFilePath = it.path } - - // After the JDK was extracted, find the path to the extracted folder (the app runtime JDK folder) - jdkForAppRuntimeDir.traverse(type: DIRECTORIES, maxDepth: 0) {ext.jdkForAppRuntimePath = it.path } } ext.downloadArchive = {String archiveURL, File destinationArchiveFile -> @@ -188,7 +163,6 @@ task packageInstallers { String jPackageFilePath = retrieveAndExtractJavaBinaries.property('jpackageFilePath') String licenseFilePath = "${rootProject.projectDir}/LICENSE" File binariesFolderPath = file(getJavaBinariesDownloadURLs.property('binariesFolderPath')) - String jdkForAppRuntimePath = retrieveAndExtractJavaBinaries.property('jdkForAppRuntimePath') File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") // The jpackateTempDir stores temp files used by jpackage for building the installers @@ -237,8 +211,7 @@ task packageInstallers { // " --java-options -Djdk.module.illegalAccess=deny" + // Options for creating the application package - " --license-file \"${licenseFilePath}\"" + - " --runtime-image \"${jdkForAppRuntimePath}\"" + " --license-file \"${licenseFilePath}\"" ) if (Os.isFamily(Os.FAMILY_WINDOWS)) { From a92c392d9552f865f7f744be2751fcb2dfda8945 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Fri, 23 Oct 2020 20:13:09 +0200 Subject: [PATCH 31/77] Update jpackage comment for Windows --- desktop/package/package.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index c5e3b99855..9374bb2071 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -215,6 +215,10 @@ task packageInstallers { ) if (Os.isFamily(Os.FAMILY_WINDOWS)) { + // TODO Found no benefit in using --resource-dir "..package/windows", it has the same outcome as opts below + // Actually using the --resource-dir option caused issues with uninstalling the newly installed Bisq + // Therefore, not using --resource-dir for windows, for now + String windowsOpts = ( " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + " --win-per-user-install" + From 0cd97a57eb2ca22843229607d3129bae55f8d314 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sat, 24 Oct 2020 11:26:15 +0200 Subject: [PATCH 32/77] Bump mockito version to fix tests Newer mockito version fixes tests which started failing for this branch after the merge of v1.4.2. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e4a2600f80..5591e96069 100644 --- a/build.gradle +++ b/build.gradle @@ -67,7 +67,7 @@ configure(subprojects) { logbackVersion = '1.1.11' loggingVersion = '1.2' lombokVersion = '1.18.12' - mockitoVersion = '3.3.0' + mockitoVersion = '3.5.15' netlayerVersion = 'cc80787' protobufVersion = '3.10.0' protocVersion = protobufVersion From 5b80b6d828de3c43a0da7b2c985e910298515a2d Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 3 Dec 2020 13:07:38 +0100 Subject: [PATCH 33/77] Fix issue when building deb and rpm at the same time Fixed an issue in the Linux section, which didn't allow building both rpm and deb packages at the same time. --- desktop/package/package.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 9374bb2071..6a07ff1035 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -251,9 +251,16 @@ task packageInstallers { " --linux-shortcut" ) + // Package deb executeCmd(jPackageFilePath + commonOpts + linuxOpts + " --linux-deb-maintainer contact@bisq.network" + " --type deb") + + // Clean jpackage temp folder, needs to be empty for the next packaging step (rpm) + jpackateTempDir.deleteDir(); + jpackateTempDir.mkdirs(); + + // Package rpm executeCmd(jPackageFilePath + commonOpts + linuxOpts + " --linux-rpm-license-type AGPLv3" + // https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses " --type rpm") From 98597508be570b95ff682e2fef7d85db2ad03ac6 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 3 Dec 2020 13:15:44 +0100 Subject: [PATCH 34/77] Windows: Remove msi package For Windows, generate only the exe installer. --- desktop/package/package.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 6a07ff1035..92cbe8f0e7 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -228,9 +228,7 @@ task packageInstallers { // TODO How does the current package/windows/Bisq.iss play into this? - // TODO Do msi or exe? Or both? For pros and cons see https://stackoverflow.com/a/1925819 executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") - executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type msi") } else if (Os.isFamily(Os.FAMILY_MAC)) { // TODO Include signing args, like --mac-sign / -mac-signing-keychain / --mac-signing-key-user-name From 8f9cede6b359b277ac8804d7c1db59033e874137 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 3 Dec 2020 16:23:58 +0100 Subject: [PATCH 35/77] Linux: Improve package names The generated package names include, by convention, two version numbers: the app version and the package version. The first one is set to the Bisq software version, the second is now set to 1. The resulting package names are: - bisq_1.5.0-1_amd64.deb - bisq-1.5.0-1.x86_64.rpm --- desktop/package/package.gradle | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 92cbe8f0e7..fc767e25d1 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -182,9 +182,9 @@ task packageInstallers { // See jpackager argument documentation: // https://docs.oracle.com/en/java/javase/15/docs/specs/man/jpackage.html - // For mac, valid versions are one to three integers separated by dot - // TODO Special handling for mac? Or always remove -SNAPSHOT suffix? - String appVersion = '1.1.1' + // Remove the -SNAPSHOT suffix from the version string (originally defined in build.gradle) + // Having it in would have resulted in an invalid version property for several platforms (mac, linux/rpm) + String appVersion = version.replaceAll("-SNAPSHOT", "") println "Packaging Bisq version ${appVersion}" String commonOpts = ( @@ -243,8 +243,15 @@ task packageInstallers { } else { String linuxOpts = ( " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + - " --linux-package-name bisq-build-test" + - " --linux-app-release ${appVersion}" + + + // This defines the first part of the resulting packages (the application name) + // deb requires lowercase letters, therefore the application name is written in lowercase + " --linux-package-name bisq" + + + // This represents the linux package version (revision) + // By convention, this is part of the deb/rpm package names, in addition to the software version + " --linux-app-release 1" + + " --linux-menu-group Network" + " --linux-shortcut" ) From e0a37e9fc72f11bacd4a691ba890830fb8cbdb7a Mon Sep 17 00:00:00 2001 From: cd2357 Date: Fri, 4 Dec 2020 13:39:48 +0100 Subject: [PATCH 36/77] Add checksum verification for downloaded JDK binaries Verify downloaded JDK binary hash against list of known (expected) hash values for the different JDK versions and OS platforms. --- desktop/package/package.gradle | 54 ++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index fc767e25d1..6e122927f1 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -60,20 +60,35 @@ task getJavaBinariesDownloadURLs { // TODO Extend script logic to alternatively allow a local (separate, v14+) JDK for jpackage // TODO Another option is to use the local JDK for everything: build jars and use jpackage (but then it has to be v14+) - // It seems only the latest version of each JDK is available for download - // Therefore, if at any future AdoptOpenJDK release these download links won't work, simply update them + // Define the download URLs (and associated binary hashes) for the JDK used to package the installers + // These JDKs are independent of what is installed on the building system + // + // If these specific versions are not hosted by AdoptOpenJDK anymore, or if different versions are desired, + // simply update the links and associated hashes below + // // See https://adoptopenjdk.net/releases.html?variant=openjdk15&jvmVariant=hotspot for latest download URLs - // The links must be for: x64 + JDK + zip (for windows) or tar.gz (for mac/linux) - Map jdk15DownloadURLs = [ - 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_linux_hotspot_15_36.tar.gz', - 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_mac_hotspot_15_36.tar.gz', - 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_windows_hotspot_15_36.zip' + // On the download page linked above, filter as follows to get the binary URL + associated SHA256: + // - architecture: x64 + // - operating system: + // -- linux ( -> use the tar.gz JDK link) + // -- macOS ( -> use the tar.gz JDK link) + // -- windows ( -> use the .zip JDK link) + Map jdk15Binaries = [ + 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_linux_hotspot_15.0.1_9.tar.gz', + 'linux-sha256' : '61045ecb9434e3320dbc2c597715f9884586b7a18a56d29851b4d4a4d48a2a5e', + 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9.1/OpenJDK15U-jdk_x64_mac_hotspot_15.0.1_9.tar.gz', + 'mac-sha256' : 'b8c2e2ad31f3d6676ea665d9505b06df15e23741847556612b40e3ee329fc046', + 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_windows_hotspot_15.0.1_9.zip', + 'windows-sha256' : '0cd7e61b0a37186902062a822caa0e14662b676c245b7ebe541f115f3c45681a' // TODO For some reason, using "--runtime-image jdk-11" does NOT work with a v15 jpackage, but works with v14 // v14 // 'linux' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz', +// 'linux-sha256' : '7d5ee7e06909b8a99c0d029f512f67b092597aa5b0e78c109bd59405bbfa74fe', // 'mac' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz', -// 'windows' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_windows_hotspot_14.0.2_12.zip' +// 'mac-sha256' : '09b7e6ab5d5eb4b73813f4caa793a0b616d33794a17988fa6a6b7c972e8f3dd3', +// 'windows' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_windows_hotspot_14.0.2_12.zip', +// 'windows-sha256' : '80926003297bf5afc9357ce24c12aee65483fc7889dc34b65fe08bec4d040611' ] String osKey @@ -85,10 +100,8 @@ task getJavaBinariesDownloadURLs { osKey = 'linux' } - ext.jdk15DownloadURL = jdk15DownloadURLs[osKey] - - // The download URLs can be manually overwritten here, if necessary - // ext.jdk15DownloadURL = ... + ext.jdk15Binary_DownloadURL = jdk15Binaries[osKey] + ext.jdk15Binary_SHA256Hash = jdk15Binaries[osKey + '-sha256'] } } @@ -104,12 +117,13 @@ task retrieveAndExtractJavaBinaries { File jdkForJpackageDir = new File(tempRootDir, jdkForJpackageDirName) jdkForJpackageDir.mkdirs(); - String jdkForJpackageArchiveURL = getJavaBinariesDownloadURLs.property('jdk15DownloadURL') + String jdkForJpackageArchiveURL = getJavaBinariesDownloadURLs.property('jdk15Binary_DownloadURL') + String jdkForJpackageArchiveHash = getJavaBinariesDownloadURLs.property('jdk15Binary_SHA256Hash') String jdkForJpackageArchiveFileName = jdkForJpackageArchiveURL.tokenize('/').last() File jdkForJpackageFile = new File(jdkForJpackageDir, jdkForJpackageArchiveFileName) - // Download necessary JDK binaries - ext.downloadArchive(jdkForJpackageArchiveURL, jdkForJpackageFile) + // Download necessary JDK binaries + verify hash + ext.downloadAndVerifyArchive(jdkForJpackageArchiveURL, jdkForJpackageArchiveHash, jdkForJpackageFile) // Extract them String jpackageBinaryFileName @@ -129,10 +143,18 @@ task retrieveAndExtractJavaBinaries { } } - ext.downloadArchive = {String archiveURL, File destinationArchiveFile -> + ext.downloadAndVerifyArchive = {String archiveURL, String archiveSHA256, File destinationArchiveFile -> println "Downloading ${archiveURL}" ant.get(src: archiveURL, dest: destinationArchiveFile) println 'Download saved to ' + destinationArchiveFile + + println 'Verifying checksum for downloaded binary ...' + ant.jdkHash = archiveSHA256 + ant.checksum(file: destinationArchiveFile, algorithm: 'SHA-256', property: '${jdkHash}', verifyProperty: 'hashMatches') + if (ant.properties['hashMatches'] != 'true') { + ant.fail('Checksum mismatch: Downloaded JDK binary has a different checksum than expected') + } + println 'Checksum verified' } ext.extractArchiveTarGz = {File tarGzFile, File destinationDir -> From 9d20d2be5a384e5d93ef7e8d76373bbaa8247fbf Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sun, 13 Dec 2020 14:25:10 +0100 Subject: [PATCH 37/77] Make temp folder name more readable Change packaging temp folder name from a random string to a timestamp. --- desktop/package/package.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 6e122927f1..85fdbd3a5b 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -47,7 +47,7 @@ task getJavaBinariesDownloadURLs { // The build directory will be deleted next time the clean task runs // Therefore, we can use it to store any temp files (separate JDK for jpackage, etc) and resulting build artefacts // We create a temp folder in the build directory which holds all jpackage-related artefacts (not just the final installers) - String tempRootDirName = 'temp-' + LocalDateTime.now().getNano() + String tempRootDirName = 'temp-' + LocalDateTime.now().format('yyyy.MM.dd-HHmmssSSS') File tempRootDir = new File(project.buildDir, tempRootDirName) tempRootDir.mkdirs() ext.tempRootDir = tempRootDir From 88cd0e0eb8e5132c82e17a31725ace8b8442cd68 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sun, 13 Dec 2020 18:04:10 +0100 Subject: [PATCH 38/77] macOS: Add optional step to sign dylibs Extend macOS packaging process with optional y/n step where relevant dylibs are extracted, signed, and re-added back to the shadow jar, before packaging it into the final app. --- desktop/package/package.gradle | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 85fdbd3a5b..5abe3cff70 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -261,6 +261,45 @@ task packageInstallers { " --resource-dir \"${project(':desktop').projectDir}/package/macosx\"" ) + ant.input(message: "Sign dylibs before packaging the app? (y=yes, n=no)", + addproperty: "macos-sign-check", + validargs: "y,n") + if (ant.properties['macos-sign-check'] == 'y') { + // Create a temp folder to extract the macos-specific dylibs that need to be signed + File tempDylibFolderPath = new File(tempRootDir, "dylibs-to-sign") + tempDylibFolderPath.mkdirs(); + + // Dylibs relevant for signing (paths relative to the tempDylibFolderPath) + String dylibsToSign = ( + " libjavafx_iio.dylib" + + " libglass.dylib" + + " libjavafx_font.dylib" + + " libprism_common.dylib" + + " libprism_es2.dylib" + + " libdecora_sse.dylib" + + " libprism_sw.dylib" + + " org/bridj/lib/darwin_universal/libbridj.dylib" + + " META-INF/native/libio_grpc_netty_shaded_netty_tcnative_osx_x86_64.jnilib" + + " lib/x86_64/darwin/libscrypt.dylib" + + " com/github/sarxos/webcam/ds/buildin/lib/darwin_universal/libOpenIMAJGrabber.dylib" + ) + + // Extract dylibss for signing + executeCmd("cd ${tempDylibFolderPath} &&" + + " jar xf ${fatJarFolderPath}/${mainJarName}" + + dylibsToSign) + + // Sign them + executeCmd("cd ${tempDylibFolderPath} &&" + + " codesign -vvv --options runtime --deep --force --sign \"Developer ID Application: Christoph Atteneder (WQT93T6D6C)\"" + + dylibsToSign) + + // Replace unsigned files in jar file + executeCmd("cd ${tempDylibFolderPath} &&" + + " jar uf ${fatJarFolderPath}/${mainJarName}" + + dylibsToSign) + } + executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") } else { String linuxOpts = ( From 323fcc3601aaa9497ab29264bd46b1ba9a0882ac Mon Sep 17 00:00:00 2001 From: cd2357 Date: Mon, 14 Dec 2020 17:13:24 +0100 Subject: [PATCH 39/77] macOS: Read signing identity from environment variable Read the macOS signing identity from the user's environment variable. --- desktop/package/package.gradle | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 5abe3cff70..b17cb2def2 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -252,8 +252,6 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") } else if (Os.isFamily(Os.FAMILY_MAC)) { - // TODO Include signing args, like --mac-sign / -mac-signing-keychain / --mac-signing-key-user-name - // See https://docs.oracle.com/en/java/javase/14/jpackage/override-jpackage-resources.html // for details of "--resource-dir" @@ -261,7 +259,11 @@ task packageInstallers { " --resource-dir \"${project(':desktop').projectDir}/package/macosx\"" ) - ant.input(message: "Sign dylibs before packaging the app? (y=yes, n=no)", + // Env variable can be set by calling "export BISQ_PACKAGE_SIGNING_IDENTITY='Some value'" + // See "man codesign" for details about the expected signing identity + String envVariableSigningID = "$System.env.BISQ_PACKAGE_SIGNING_IDENTITY" + println "Environment variable BISQ_PACKAGE_SIGNING_IDENTITY is: ${envVariableSigningID}" + ant.input(message: "Sign dylibs using the above signing identity, before packaging the app? (y=yes, n=no)", addproperty: "macos-sign-check", validargs: "y,n") if (ant.properties['macos-sign-check'] == 'y') { @@ -291,7 +293,7 @@ task packageInstallers { // Sign them executeCmd("cd ${tempDylibFolderPath} &&" + - " codesign -vvv --options runtime --deep --force --sign \"Developer ID Application: Christoph Atteneder (WQT93T6D6C)\"" + + " codesign -vvv --options runtime --deep --force --sign \"${envVariableSigningID}\"" + dylibsToSign) // Replace unsigned files in jar file From c8d0a7fca48d9441cb385493fb649973a4cb6fe7 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 16 Dec 2020 17:31:44 +0100 Subject: [PATCH 40/77] macOS: Sign app-image and bundle when packaging Update the macOS packaging process with the ncessary steps to sign the app-image and the final dmg package. --- desktop/package/package.gradle | 76 +++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 5 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index b17cb2def2..0709a99fdc 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -263,7 +263,7 @@ task packageInstallers { // See "man codesign" for details about the expected signing identity String envVariableSigningID = "$System.env.BISQ_PACKAGE_SIGNING_IDENTITY" println "Environment variable BISQ_PACKAGE_SIGNING_IDENTITY is: ${envVariableSigningID}" - ant.input(message: "Sign dylibs using the above signing identity, before packaging the app? (y=yes, n=no)", + ant.input(message: "Sign the app using the above signing identity? (y=yes, n=no)", addproperty: "macos-sign-check", validargs: "y,n") if (ant.properties['macos-sign-check'] == 'y') { @@ -286,23 +286,89 @@ task packageInstallers { " com/github/sarxos/webcam/ds/buildin/lib/darwin_universal/libOpenIMAJGrabber.dylib" ) + // macOS step 1: Sign dylibs and replace them in the shadow jar // Extract dylibss for signing executeCmd("cd ${tempDylibFolderPath} &&" + " jar xf ${fatJarFolderPath}/${mainJarName}" + dylibsToSign) - // Sign them executeCmd("cd ${tempDylibFolderPath} &&" + " codesign -vvv --options runtime --deep --force --sign \"${envVariableSigningID}\"" + dylibsToSign) - // Replace unsigned files in jar file executeCmd("cd ${tempDylibFolderPath} &&" + " jar uf ${fatJarFolderPath}/${mainJarName}" + dylibsToSign) - } - executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") + // macOS step 2: Build app-image using the shadow jar above (containing signed dylibs) + // NOTE: licensing file cannot be added at this point only when creating the dmg later + executeCmd(jPackageFilePath + + " --dest \"${binariesFolderPath}\"" + + " --name Bisq" + + " --description \"A decentralized bitcoin exchange network.\"" + + " --app-version ${appVersion}" + + " --copyright \"© 2020 Bisq\"" + + " --vendor Bisq" + + " --temp \"${jpackateTempDir}\"" + + " --input ${fatJarFolderPath}" + + " --main-jar ${mainJarName}" + + " --main-class bisq.desktop.app.BisqAppMain" + + " --java-options -Xss1280k" + + " --java-options -XX:MaxRAM=4g" + + " --java-options -Djava.net.preferIPv4Stack=true" + + macOpts + + " --type app-image") + + // macOS step 3: Sign app (hardended runtime) + File bisqAppImageFullPath = new File(binariesFolderPath, "Bisq.app") + executeCmd("codesign" + + " --sign \"${envVariableSigningID}\"" + + " --options runtime" + + " --entitlements macos.entitlements" + + " --force" + + " --verbose" + + "${bisqAppImageFullPath}/Contents/runtime/Contents/MacOS/libjli.dylib") + executeCmd("codesign" + + " --sign \"${envVariableSigningID}\"" + + " --options runtime" + + " --entitlements macos.entitlements" + + " --force" + + " --verbose" + + "${bisqAppImageFullPath}/Contents/MacOS/Bisq") + executeCmd("codesign" + + " --sign \"${envVariableSigningID}\"" + + " --options runtime" + + " --entitlements macos.entitlements" + + " --force" + + " --verbose" + + " ${bisqAppImageFullPath}") + + // macOS step 4: Package the app-image into a dmg bundle + executeCmd(jPackageFilePath + + " --dest \"${binariesFolderPath}\"" + + " --name Bisq" + + " --description \"A decentralized bitcoin exchange network.\"" + + " --app-version ${appVersion}" + + " --copyright \"© 2020 Bisq\"" + + " --vendor Bisq" + + " --temp \"${jpackateTempDir}\"" + + " --app-image ${bisqAppImageFullPath}" + + " --license-file \"${licenseFilePath}\"" + + " --mac-sign" + + " --type dmg") + + // macOS step 5: Sign dmg bundle + executeCmd("codesign" + + " --sign \"${envVariableSigningID}\"" + + " --options runtime" + + " --entitlements '${binariesFolderPath}/macos.entitlements'" + + " -vvvv" + + " --deep" + + " '${binariesFolderPath}/Bisq-${appVersion}.dmg'") + } else { + // If user didn't confirm the optional signing step, then generate a plain non-signed dmg + executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") + } } else { String linuxOpts = ( " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + From 8d74a1bea61a84a9158f30a47f2eaf42fa3a3d15 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Mon, 21 Dec 2020 16:39:25 +0100 Subject: [PATCH 41/77] macOS: Include entitlements plist Add the entitlements mapping file needed for the signing process. --- desktop/package/macosx/macos.entitlements | 16 ++++++++++++++++ desktop/package/package.gradle | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 desktop/package/macosx/macos.entitlements diff --git a/desktop/package/macosx/macos.entitlements b/desktop/package/macosx/macos.entitlements new file mode 100644 index 0000000000..0e0df6c762 --- /dev/null +++ b/desktop/package/macosx/macos.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 0709a99fdc..228aaa5c08 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -324,7 +324,7 @@ task packageInstallers { executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + - " --entitlements macos.entitlements" + + " --entitlements '${project(':desktop').projectDir}/package/macosx/macos.entitlements'" + " --force" + " --verbose" + "${bisqAppImageFullPath}/Contents/runtime/Contents/MacOS/libjli.dylib") From 33297c865aeec437d30d5fbb012c65d114dbb95c Mon Sep 17 00:00:00 2001 From: cd2357 Date: Mon, 21 Dec 2020 16:48:46 +0100 Subject: [PATCH 42/77] macOS: Include entitlements plist, part 2 Include the full path to the entitlements mapping file in all codesign calls. --- desktop/package/package.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 228aaa5c08..7e3da5d7f1 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -331,14 +331,14 @@ task packageInstallers { executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + - " --entitlements macos.entitlements" + + " --entitlements '${project(':desktop').projectDir}/package/macosx/macos.entitlements'" + " --force" + " --verbose" + "${bisqAppImageFullPath}/Contents/MacOS/Bisq") executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + - " --entitlements macos.entitlements" + + " --entitlements '${project(':desktop').projectDir}/package/macosx/macos.entitlements'" + " --force" + " --verbose" + " ${bisqAppImageFullPath}") From 02f5988bb9c8845a8e4adeac873383f106da4d22 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 22 Dec 2020 11:51:41 +0100 Subject: [PATCH 43/77] Fix entitlements path and missing resources argument --- desktop/package/package.gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 7e3da5d7f1..10b1ef584e 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -277,7 +277,7 @@ task packageInstallers { " libglass.dylib" + " libjavafx_font.dylib" + " libprism_common.dylib" + - " libprism_es2.dylib" + + " libprism_es2.dylib" + " libdecora_sse.dylib" + " libprism_sw.dylib" + " org/bridj/lib/darwin_universal/libbridj.dylib" + @@ -355,13 +355,14 @@ task packageInstallers { " --app-image ${bisqAppImageFullPath}" + " --license-file \"${licenseFilePath}\"" + " --mac-sign" + + macOpts + " --type dmg") // macOS step 5: Sign dmg bundle executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + - " --entitlements '${binariesFolderPath}/macos.entitlements'" + + " --entitlements '${project(':desktop').projectDir}/package/macosx/macos.entitlements'" + " -vvvv" + " --deep" + " '${binariesFolderPath}/Bisq-${appVersion}.dmg'") From b272caff81fe0ee98e28c67ab834b1007780e49a Mon Sep 17 00:00:00 2001 From: cd2357 Date: Tue, 22 Dec 2020 18:28:30 +0100 Subject: [PATCH 44/77] macOS: Fix command string concatenation Add missing space before final argument in a multi-line command string. --- desktop/package/package.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 10b1ef584e..b274029444 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -327,14 +327,14 @@ task packageInstallers { " --entitlements '${project(':desktop').projectDir}/package/macosx/macos.entitlements'" + " --force" + " --verbose" + - "${bisqAppImageFullPath}/Contents/runtime/Contents/MacOS/libjli.dylib") + " ${bisqAppImageFullPath}/Contents/runtime/Contents/MacOS/libjli.dylib") executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + " --entitlements '${project(':desktop').projectDir}/package/macosx/macos.entitlements'" + " --force" + " --verbose" + - "${bisqAppImageFullPath}/Contents/MacOS/Bisq") + " ${bisqAppImageFullPath}/Contents/MacOS/Bisq") executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + From 7285b98e5a047794131a1571bf24d2d76edd8d76 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 23 Dec 2020 19:52:20 +0100 Subject: [PATCH 45/77] macOS: Add notarization step Add step for uploading the packaged dmg to the notarization service. Add a second step for monitoring the progress of notarization. --- desktop/package/package.gradle | 59 ++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index b274029444..e60697c515 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -366,6 +366,57 @@ task packageInstallers { " -vvvv" + " --deep" + " '${binariesFolderPath}/Bisq-${appVersion}.dmg'") + + // macOS step 6: Upload for notarization + // See https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow#3087734 + String envVariableAcUsername = "$System.env.BISQ_PACKAGE_NOTARIZATION_AC_USERNAME" + String envVariableAscProvider = "$System.env.BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER" + def uploadForNotarizationOutput = executeCmd("xcrun altool --notarize-app" + + " --primary-bundle-id 'network.bisq.CAT'" + + " --username '${envVariableAcUsername}'" + + " --password '@keychain:AC_PASSWORD'" + + " --asc-provider '${envVariableAscProvider}'" + + " --file '${binariesFolderPath}/Bisq-${appVersion}.dmg'") + // Response: + // No errors uploading '[PATH_TO_BISQ_REPO]/bisq/desktop/build/temp-620637000/binaries/Bisq-1.1.1.dmg'. + // RequestUUID = ea8bba77-97b7-4c15-a53f-8bbccf627190 + def requestUUID = uploadForNotarizationOutput.split('RequestUUID = ')[1] + println "Extracted RequestUUID: " + requestUUID + + // Every 1 minute, check the status + def notarizationEndedInSuccess = false + def notarizationEndedInFailure = false + while (!notarizationEndedInSuccess || !notarizationEndedInFailure) + { + println "Current time is:" + executeCmd('date') + println "Waiting for 1 minute..." + sleep(1 * 60 * 1000) + + println "Checking notarization status" + + def checkNotarizationStatusOutput = executeCmd("xcrun altool --notarization-info" + + " '${requestUUID}'" + + " --username '${envVariableAcUsername}'" + + " --password '@keychain:AC_PASSWORD'") + + notarizationEndedInSuccess = checkNotarizationStatusOutput.contains('Status: success') + notarizationEndedInFailure = checkNotarizationStatusOutput.contains('Error') + } + + if (notarizationEndedInFailure) { + ant.fail('Notarization failed, aborting') + } + + if (notarizationEndedInSuccess) { + println "Notarization was successful" + + // macOS step 7: Staple ticket on dmg + executeCmd("xcrun stapler staple" + + " '${binariesFolderPath}/Bisq-${appVersion}.dmg'") + } + + } else { // If user didn't confirm the optional signing step, then generate a plain non-signed dmg executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") @@ -424,9 +475,13 @@ def executeCmd(String cmd) { // http://docs.groovy-lang.org/next/html/documentation/ def commands = [shell, shellArg, cmd] def process = commands.execute(null, project.rootDir) + def result if (process.waitFor() == 0) { - println "Command output (stdout):\n${process.text}" + result = process.text; + println "Command output (stdout):\n${result}" } else { - println "Command output (stderr):\n${process.err.text}" + result = process.err.text; + println "Command output (stderr):\n${result}" } + return result; } From e80213f72a5541238ca926239bcbf56002067ec5 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Sat, 9 Jan 2021 21:33:59 +0100 Subject: [PATCH 46/77] Remove unnecessary colons --- desktop/package/package.gradle | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index e60697c515..5f25d261c1 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -54,7 +54,7 @@ task getJavaBinariesDownloadURLs { println "Created temp root folder " + tempRootDir File binariesFolderPath = new File(tempRootDir, "binaries") - binariesFolderPath.mkdirs(); + binariesFolderPath.mkdirs() ext.binariesFolderPath = binariesFolderPath // TODO Extend script logic to alternatively allow a local (separate, v14+) JDK for jpackage @@ -110,12 +110,12 @@ task retrieveAndExtractJavaBinaries { dependsOn 'getJavaBinariesDownloadURLs' doLast { - File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") + File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") as File // Folder where the jpackage JDK archive will be downloaded and extracted String jdkForJpackageDirName = "jdk-jpackage" File jdkForJpackageDir = new File(tempRootDir, jdkForJpackageDirName) - jdkForJpackageDir.mkdirs(); + jdkForJpackageDir.mkdirs() String jdkForJpackageArchiveURL = getJavaBinariesDownloadURLs.property('jdk15Binary_DownloadURL') String jdkForJpackageArchiveHash = getJavaBinariesDownloadURLs.property('jdk15Binary_SHA256Hash') @@ -186,11 +186,11 @@ task packageInstallers { String licenseFilePath = "${rootProject.projectDir}/LICENSE" File binariesFolderPath = file(getJavaBinariesDownloadURLs.property('binariesFolderPath')) - File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") + File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") as File // The jpackateTempDir stores temp files used by jpackage for building the installers // It can be inspected in order to troubleshoot the packaging process File jpackateTempDir = new File(tempRootDir, "jpackage-temp") - jpackateTempDir.mkdirs(); + jpackateTempDir.mkdirs() // ALL contents of this folder will be included in the resulting installers // However, the fat jar is the only one we need @@ -269,7 +269,7 @@ task packageInstallers { if (ant.properties['macos-sign-check'] == 'y') { // Create a temp folder to extract the macos-specific dylibs that need to be signed File tempDylibFolderPath = new File(tempRootDir, "dylibs-to-sign") - tempDylibFolderPath.mkdirs(); + tempDylibFolderPath.mkdirs() // Dylibs relevant for signing (paths relative to the tempDylibFolderPath) String dylibsToSign = ( @@ -443,8 +443,8 @@ task packageInstallers { " --type deb") // Clean jpackage temp folder, needs to be empty for the next packaging step (rpm) - jpackateTempDir.deleteDir(); - jpackateTempDir.mkdirs(); + jpackateTempDir.deleteDir() + jpackateTempDir.mkdirs() // Package rpm executeCmd(jPackageFilePath + commonOpts + linuxOpts + @@ -477,11 +477,11 @@ def executeCmd(String cmd) { def process = commands.execute(null, project.rootDir) def result if (process.waitFor() == 0) { - result = process.text; + result = process.text println "Command output (stdout):\n${result}" } else { - result = process.err.text; + result = process.err.text println "Command output (stderr):\n${result}" } - return result; + return result } From 71e6e537ef5fec6b5c08aea29d39caf1a80cb281 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Sat, 9 Jan 2021 21:35:52 +0100 Subject: [PATCH 47/77] Only include fat JAR in binary --- desktop/package/package.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 5f25d261c1..12f7d62c35 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -197,6 +197,8 @@ task packageInstallers { // Therefore, this location should point to a folder that ONLY contains the fat jar // If later we will need to include other non-jar resources, we can do that by adding --resource-dir to the jpackage opts String fatJarFolderPath = "${project(':desktop').buildDir}/libs" + // Delete application jar file as it is not needed + delete("${fatJarFolderPath}/desktop-${version}.jar") String mainJarName = file(fatJarFolderPath).list()[0] // TODO For non-modular applications: use jlink to create a custom runtime containing only the modules required From 808749da20cc4e618d97f435fd0e7e2b4f86f5c5 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Sat, 9 Jan 2021 21:49:21 +0100 Subject: [PATCH 48/77] Fix notarization process for macOS --- desktop/package/package.gradle | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 12f7d62c35..300e2bda26 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -284,7 +284,6 @@ task packageInstallers { " libprism_sw.dylib" + " org/bridj/lib/darwin_universal/libbridj.dylib" + " META-INF/native/libio_grpc_netty_shaded_netty_tcnative_osx_x86_64.jnilib" + - " lib/x86_64/darwin/libscrypt.dylib" + " com/github/sarxos/webcam/ds/buildin/lib/darwin_universal/libOpenIMAJGrabber.dylib" ) @@ -297,6 +296,11 @@ task packageInstallers { executeCmd("cd ${tempDylibFolderPath} &&" + " codesign -vvv --options runtime --deep --force --sign \"${envVariableSigningID}\"" + dylibsToSign) + + // Verify signature + executeCmd("cd ${tempDylibFolderPath} &&" + + " codesign -vvv --deep --strict " + dylibsToSign) + // Replace unsigned files in jar file executeCmd("cd ${tempDylibFolderPath} &&" + " jar uf ${fatJarFolderPath}/${mainJarName}" + @@ -382,13 +386,13 @@ task packageInstallers { // Response: // No errors uploading '[PATH_TO_BISQ_REPO]/bisq/desktop/build/temp-620637000/binaries/Bisq-1.1.1.dmg'. // RequestUUID = ea8bba77-97b7-4c15-a53f-8bbccf627190 - def requestUUID = uploadForNotarizationOutput.split('RequestUUID = ')[1] + def requestUUID = uploadForNotarizationOutput.split('RequestUUID = ')[1].trim() println "Extracted RequestUUID: " + requestUUID // Every 1 minute, check the status def notarizationEndedInSuccess = false def notarizationEndedInFailure = false - while (!notarizationEndedInSuccess || !notarizationEndedInFailure) + while (!(notarizationEndedInSuccess || notarizationEndedInFailure)) { println "Current time is:" executeCmd('date') @@ -402,8 +406,8 @@ task packageInstallers { " --username '${envVariableAcUsername}'" + " --password '@keychain:AC_PASSWORD'") - notarizationEndedInSuccess = checkNotarizationStatusOutput.contains('Status: success') - notarizationEndedInFailure = checkNotarizationStatusOutput.contains('Error') + notarizationEndedInSuccess = checkNotarizationStatusOutput.contains('success') + notarizationEndedInFailure = checkNotarizationStatusOutput.contains('invalid') } if (notarizationEndedInFailure) { From 8416f56f062919cc71414e0bdbed6bfcc94852a0 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 12 Jan 2021 19:05:09 +0100 Subject: [PATCH 49/77] Add option to copy created binary to shared folder --- desktop/package/package.gradle | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 300e2bda26..afb203c8db 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -364,7 +364,10 @@ task packageInstallers { macOpts + " --type dmg") - // macOS step 5: Sign dmg bundle + // macOS step 5: Delete unused app image + delete(bisqAppImageFullPath) + + // macOS step 6: Sign dmg bundle executeCmd("codesign" + " --sign \"${envVariableSigningID}\"" + " --options runtime" + @@ -373,7 +376,7 @@ task packageInstallers { " --deep" + " '${binariesFolderPath}/Bisq-${appVersion}.dmg'") - // macOS step 6: Upload for notarization + // macOS step 7: Upload for notarization // See https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow#3087734 String envVariableAcUsername = "$System.env.BISQ_PACKAGE_NOTARIZATION_AC_USERNAME" String envVariableAscProvider = "$System.env.BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER" @@ -417,12 +420,11 @@ task packageInstallers { if (notarizationEndedInSuccess) { println "Notarization was successful" - // macOS step 7: Staple ticket on dmg + // macOS step 8: Staple ticket on dmg executeCmd("xcrun stapler staple" + " '${binariesFolderPath}/Bisq-${appVersion}.dmg'") } - } else { // If user didn't confirm the optional signing step, then generate a plain non-signed dmg executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") @@ -458,6 +460,20 @@ task packageInstallers { " --type rpm") } + // Env variable can be set by calling "export BISQ_SHARED_FOLDER='Some value'" + // This is to copy the final binary/ies to a shared folder for further processing if a VM is used. + String envVariableSharedFolder = "$System.env.BISQ_SHARED_FOLDER" + println "Environment variable BISQ_SHARED_FOLDER is: ${envVariableSharedFolder}" + ant.input(message: "Copy the created binary to a shared folder? (y=yes, n=no)", + addproperty: "copy-to-shared-folder", + validargs: "y,n") + if (ant.properties['copy-to-shared-folder'] == 'y') { + copy { + from binariesFolderPath + into envVariableSharedFolder + } + } + println "The binaries are ready:" binariesFolderPath.traverse { println it.path From a10b63e73b8c10377b65ae1f7ebd38cc1a948d90 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 13 Jan 2021 09:53:48 +0100 Subject: [PATCH 50/77] Make fatJar inclusion more reliable across builds --- desktop/package/package.gradle | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index afb203c8db..0488f2d298 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -196,10 +196,15 @@ task packageInstallers { // However, the fat jar is the only one we need // Therefore, this location should point to a folder that ONLY contains the fat jar // If later we will need to include other non-jar resources, we can do that by adding --resource-dir to the jpackage opts - String fatJarFolderPath = "${project(':desktop').buildDir}/libs" - // Delete application jar file as it is not needed - delete("${fatJarFolderPath}/desktop-${version}.jar") - String mainJarName = file(fatJarFolderPath).list()[0] + String fatJarFolderPath = "${project(':desktop').buildDir}/libs/fatJar" + String mainJarName = shadowJar.getArchiveFileName().get() + + delete(fatJarFolderPath) + mkdir(fatJarFolderPath) + copy { + from "${project(':desktop').buildDir}/libs/${mainJarName}" + into fatJarFolderPath + } // TODO For non-modular applications: use jlink to create a custom runtime containing only the modules required From 04737f48f232d308fc0bf7d43016d6476fabaccb Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 13 Jan 2021 22:33:55 +0100 Subject: [PATCH 51/77] Sign Windows installer Add signing step in the Windows installer generation. --- desktop/package/package.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 0488f2d298..244b240183 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -258,6 +258,12 @@ task packageInstallers { // TODO How does the current package/windows/Bisq.iss play into this? executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") + + // In addition to the groovy quotes around the string, the entire Windows command must also be surrounded + // by quotes, plus each path inside the command has to be escaped as well + // Reason for this is that the path to the called executable contains spaces + // See https://stackoverflow.com/questions/6376113/how-do-i-use-spaces-in-the-command-prompt/6378038#6378038 + executeCmd("\"\"C:\\Program Files (x86)\\Windows Kits\\10\\App Certification Kit\\signtool.exe\" sign /v /fd SHA256 /a \"${binariesFolderPath}/Bisq-${appVersion}.exe\"\"") } else if (Os.isFamily(Os.FAMILY_MAC)) { // See https://docs.oracle.com/en/java/javase/14/jpackage/override-jpackage-resources.html // for details of "--resource-dir" From 85af986671f0a6ed4ca8c6a6e19f0e037dd5e548 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Wed, 13 Jan 2021 22:40:15 +0100 Subject: [PATCH 52/77] Fix typos Fix several typos and updated a comment. --- desktop/package/package.gradle | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 244b240183..95e5123fa5 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -187,10 +187,10 @@ task packageInstallers { File binariesFolderPath = file(getJavaBinariesDownloadURLs.property('binariesFolderPath')) File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") as File - // The jpackateTempDir stores temp files used by jpackage for building the installers + // The jpackageTempDir stores temp files used by jpackage for building the installers // It can be inspected in order to troubleshoot the packaging process - File jpackateTempDir = new File(tempRootDir, "jpackage-temp") - jpackateTempDir.mkdirs() + File jpackageTempDir = new File(tempRootDir, "jpackage-temp") + jpackageTempDir.mkdirs() // ALL contents of this folder will be included in the resulting installers // However, the fat jar is the only one we need @@ -224,7 +224,7 @@ task packageInstallers { " --app-version ${appVersion}" + " --copyright \"© 2020 Bisq\"" + " --vendor Bisq" + - " --temp \"${jpackateTempDir}\"" + + " --temp \"${jpackageTempDir}\"" + // Options for creating the application image " --input ${fatJarFolderPath}" + @@ -260,7 +260,7 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") // In addition to the groovy quotes around the string, the entire Windows command must also be surrounded - // by quotes, plus each path inside the command has to be escaped as well + // by quotes, plus each path inside the command has to be quoted as well // Reason for this is that the path to the called executable contains spaces // See https://stackoverflow.com/questions/6376113/how-do-i-use-spaces-in-the-command-prompt/6378038#6378038 executeCmd("\"\"C:\\Program Files (x86)\\Windows Kits\\10\\App Certification Kit\\signtool.exe\" sign /v /fd SHA256 /a \"${binariesFolderPath}/Bisq-${appVersion}.exe\"\"") @@ -326,7 +326,7 @@ task packageInstallers { " --app-version ${appVersion}" + " --copyright \"© 2020 Bisq\"" + " --vendor Bisq" + - " --temp \"${jpackateTempDir}\"" + + " --temp \"${jpackageTempDir}\"" + " --input ${fatJarFolderPath}" + " --main-jar ${mainJarName}" + " --main-class bisq.desktop.app.BisqAppMain" + @@ -368,7 +368,7 @@ task packageInstallers { " --app-version ${appVersion}" + " --copyright \"© 2020 Bisq\"" + " --vendor Bisq" + - " --temp \"${jpackateTempDir}\"" + + " --temp \"${jpackageTempDir}\"" + " --app-image ${bisqAppImageFullPath}" + " --license-file \"${licenseFilePath}\"" + " --mac-sign" + @@ -462,8 +462,8 @@ task packageInstallers { " --type deb") // Clean jpackage temp folder, needs to be empty for the next packaging step (rpm) - jpackateTempDir.deleteDir() - jpackateTempDir.mkdirs() + jpackageTempDir.deleteDir() + jpackageTempDir.mkdirs() // Package rpm executeCmd(jPackageFilePath + commonOpts + linuxOpts + From d09a4ecda71fb8bcc8502e87d7e5614497805a63 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 14 Jan 2021 10:25:19 +0100 Subject: [PATCH 53/77] Add missing volume icon for dmg bundle --- desktop/package/macosx/Bisq-volume.icns | Bin 0 -> 496710 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 desktop/package/macosx/Bisq-volume.icns diff --git a/desktop/package/macosx/Bisq-volume.icns b/desktop/package/macosx/Bisq-volume.icns new file mode 100644 index 0000000000000000000000000000000000000000..d60546972a5860ddafcc5c68dcd5e60cca288d2b GIT binary patch literal 496710 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ℜ^>~OQ&t2_Nb11ba$gGkjN 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®xg?O>`lWz{ybUir;{@usT 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

9ly?wO^E&(Nv!B1uKKm?R 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

g1ZYx%KDnpv>WT!4*PbK0za$x(0FbP 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + 1 + + + 1 + + + !(loc.message.install.dir.exist) + + + + + + + + 1 + INSTALLDIR_VALID="0" + INSTALLDIR_VALID="1" + + + + 1 + 1 + + + + + + + + + + + WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed + + + + + + + + + + + + Not Installed + + JP_UPGRADABLE_FOUND + + + JP_DOWNGRADABLE_FOUND + + + + + + diff --git a/desktop/package/windows/overrides.wxi b/desktop/package/windows/overrides.wxi new file mode 100644 index 0000000000..7ff18a3af8 --- /dev/null +++ b/desktop/package/windows/overrides.wxi @@ -0,0 +1,33 @@ + + + + + + From f862fc2097c5a955e2c80e94a008a72211b1c651 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 14 Apr 2021 14:58:26 +0200 Subject: [PATCH 66/77] Revert temp. disabling of rasperry-pi zip generation Needs to be either only executed on macOS or adapted to work with Windows as well --- desktop/package/package.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index ea04e7dc2b..51d4476f7b 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -228,9 +228,9 @@ task packageInstallers { println "Packaging Bisq version ${appVersion}" // zip jar lib for Raspberry Pi - /* println "Zipping jar lib for raspberry pi" + println "Zipping jar lib for raspberry pi" ant.zip(basedir: "${project(':desktop').buildDir}/app/lib", - destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip")*/ + destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip") String appDescription = 'A decentralized bitcoin exchange network.' String appCopyright = '© 2021 Bisq' From b5beea58db94354b384cb3525697dad8325dfb16 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 20 Apr 2021 10:20:58 +0200 Subject: [PATCH 67/77] Temporary delete QR code scanner used for mobile notification pairing because of missing current macOS support by currently used webcam library --- build.gradle | 2 - desktop/package/package.gradle | 4 +- .../MobileNotificationsView.java | 57 +--------- .../content/notifications/QrCodeReader.java | 101 ------------------ .../content/notifications/WebCamLauncher.java | 64 ----------- gradle/witness/gradle-witness.gradle | 2 - 6 files changed, 2 insertions(+), 228 deletions(-) delete mode 100644 desktop/src/main/java/bisq/desktop/main/account/content/notifications/QrCodeReader.java delete mode 100644 desktop/src/main/java/bisq/desktop/main/account/content/notifications/WebCamLauncher.java diff --git a/build.gradle b/build.gradle index 4749ef5894..70fd3c41e9 100644 --- a/build.gradle +++ b/build.gradle @@ -73,7 +73,6 @@ configure(subprojects) { protocVersion = protobufVersion pushyVersion = '0.13.2' qrgenVersion = '1.3' - sarxosVersion = '0.3.12' slf4jVersion = '1.7.30' sparkVersion = '2.5.2' springBootVersion = '1.5.10.RELEASE' @@ -412,7 +411,6 @@ configure(project(':desktop')) { compile "de.jensd:fontawesomefx-materialdesignfont:$fontawesomefxMaterialdesignfontVersion" compile "com.google.guava:guava:$guavaVersion" compile "com.googlecode.jcsv:jcsv:$jcsvVersion" - compile "com.github.sarxos:webcam-capture:$sarxosVersion" compile "org.openjfx:javafx-controls:$javafxVersion:$os" compile "org.openjfx:javafx-fxml:$javafxVersion:$os" compile "org.openjfx:javafx-swing:$javafxVersion:$os" diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 51d4476f7b..33e0966dae 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -311,9 +311,7 @@ task packageInstallers { " libprism_es2.dylib" + " libdecora_sse.dylib" + " libprism_sw.dylib" + - " org/bridj/lib/darwin_universal/libbridj.dylib" + - " META-INF/native/libio_grpc_netty_shaded_netty_tcnative_osx_x86_64.jnilib" + - " com/github/sarxos/webcam/ds/buildin/lib/darwin_universal/libOpenIMAJGrabber.dylib" + " META-INF/native/libio_grpc_netty_shaded_netty_tcnative_osx_x86_64.jnilib" ) // macOS step 1: Sign dylibs and replace them in the shadow jar diff --git a/desktop/src/main/java/bisq/desktop/main/account/content/notifications/MobileNotificationsView.java b/desktop/src/main/java/bisq/desktop/main/account/content/notifications/MobileNotificationsView.java index 3c2f60fe3f..ca2bdec89d 100644 --- a/desktop/src/main/java/bisq/desktop/main/account/content/notifications/MobileNotificationsView.java +++ b/desktop/src/main/java/bisq/desktop/main/account/content/notifications/MobileNotificationsView.java @@ -23,7 +23,6 @@ import bisq.desktop.components.InfoInputTextField; import bisq.desktop.components.InputTextField; import bisq.desktop.main.PriceUtil; import bisq.desktop.main.overlays.popups.Popup; -import bisq.desktop.main.overlays.windows.WebCamWindow; import bisq.desktop.util.FormBuilder; import bisq.desktop.util.GUIUtil; import bisq.desktop.util.Layout; @@ -90,15 +89,12 @@ public class MobileNotificationsView extends ActivatableView { private final MarketAlerts marketAlerts; private final MobileNotificationService mobileNotificationService; - private WebCamWindow webCamWindow; - private QrCodeReader qrCodeReader; - private TextField tokenInputTextField; private InputTextField priceAlertHighInputTextField, priceAlertLowInputTextField, marketAlertTriggerInputTextField; private ToggleButton useSoundToggleButton, tradeToggleButton, marketToggleButton, priceToggleButton; private ComboBox currencyComboBox; private ComboBox paymentAccountsComboBox; - private Button downloadButton, webCamButton, noWebCamButton, eraseButton, setPriceAlertButton, + private Button downloadButton, eraseButton, setPriceAlertButton, removePriceAlertButton, addMarketAlertButton, manageAlertsButton /*,testMsgButton*/; private ChangeListener useSoundCheckBoxListener, tradeCheckBoxListener, marketCheckBoxListener, @@ -149,8 +145,6 @@ public class MobileNotificationsView extends ActivatableView { // setup tokenInputTextField.textProperty().addListener(tokenInputTextFieldListener); downloadButton.setOnAction(e -> onDownload()); - webCamButton.setOnAction(e -> onOpenWebCam()); - noWebCamButton.setOnAction(e -> onNoWebCam()); // testMsgButton.setOnAction(e -> onSendTestMsg()); eraseButton.setOnAction(e -> onErase()); @@ -203,8 +197,6 @@ public class MobileNotificationsView extends ActivatableView { // setup tokenInputTextField.textProperty().removeListener(tokenInputTextFieldListener); downloadButton.setOnAction(null); - webCamButton.setOnAction(null); - noWebCamButton.setOnAction(null); //testMsgButton.setOnAction(null); eraseButton.setOnAction(null); @@ -243,45 +235,6 @@ public class MobileNotificationsView extends ActivatableView { GUIUtil.openWebPage("https://bisq.network/downloads"); } - private void onOpenWebCam() { - webCamButton.setDisable(true); - log.info("Start WebCamLauncher"); - new WebCamLauncher(webCam -> { - log.info("webCam available"); - webCamWindow = new WebCamWindow(webCam.getViewSize().width, webCam.getViewSize().height) - .onClose(() -> { - webCamButton.setDisable(false); - qrCodeReader.close(); - }); - webCamWindow.show(); - - qrCodeReader = new QrCodeReader(webCam, webCamWindow.getImageView(), qrCode -> { - log.info("Qr code available"); - webCamWindow.hide(); - webCamButton.setDisable(false); - reset(); - tokenInputTextField.setText(qrCode); - updateMarketAlertFields(); - updatePriceAlertFields(); - }); - }, throwable -> { - if (throwable instanceof NoWebCamFoundException) { - new Popup().warning(Res.get("account.notifications.noWebCamFound.warning")).show(); - webCamButton.setDisable(false); - onNoWebCam(); - } else { - log.error(throwable.toString()); - new Popup().error(throwable.toString()).show(); - } - }); - } - - private void onNoWebCam() { - setPairingTokenFieldsVisible(); - noWebCamButton.setManaged(false); - noWebCamButton.setVisible(false); - } - private void onErase() { try { mobileNotificationService.sendEraseMessage(); @@ -401,18 +354,10 @@ public class MobileNotificationsView extends ActivatableView { Res.get("account.notifications.download.label"), Layout.TWICE_FIRST_ROW_DISTANCE); - Tuple3 tuple = addTopLabel2Buttons(root, ++gridRow, - Res.get("account.notifications.webcam.label"), - Res.get("account.notifications.webcam.button"), Res.get("account.notifications.noWebcam.button"), 0); - webCamButton = tuple.second; - noWebCamButton = tuple.third; - tokenInputTextField = addInputTextField(root, ++gridRow, Res.get("account.notifications.email.label")); tokenInputTextField.setPromptText(Res.get("account.notifications.email.prompt")); tokenInputTextFieldListener = (observable, oldValue, newValue) -> applyKeyAndToken(newValue); - tokenInputTextField.setManaged(false); - tokenInputTextField.setVisible(false); /*testMsgButton = FormBuilder.addTopLabelButton(root, ++gridRow, Res.get("account.notifications.testMsg.label"), Res.get("account.notifications.testMsg.title")).second; diff --git a/desktop/src/main/java/bisq/desktop/main/account/content/notifications/QrCodeReader.java b/desktop/src/main/java/bisq/desktop/main/account/content/notifications/QrCodeReader.java deleted file mode 100644 index 97057b935a..0000000000 --- a/desktop/src/main/java/bisq/desktop/main/account/content/notifications/QrCodeReader.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * This file is part of Bisq. - * - * Bisq is free software: you can redistribute it and/or modify it - * under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or (at - * your option) any later version. - * - * Bisq is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public - * License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Bisq. If not, see . - */ - -package bisq.desktop.main.account.content.notifications; - -import bisq.common.UserThread; - -import javafx.scene.image.ImageView; -import javafx.scene.image.WritableImage; - -import javafx.geometry.Point3D; - -import java.awt.image.BufferedImage; - -import java.util.function.Consumer; - -import lombok.extern.slf4j.Slf4j; - - - -import com.github.sarxos.webcam.Webcam; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.LuminanceSource; -import com.google.zxing.MultiFormatReader; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.client.j2se.BufferedImageLuminanceSource; -import com.google.zxing.common.HybridBinarizer; -import javafx.embed.swing.SwingFXUtils; - -@Slf4j -// Must not be UI thread -class QrCodeReader extends Thread { - private final Webcam webCam; - private final ImageView imageView; - private final Consumer resultHandler; - private boolean isRunning; - - QrCodeReader(Webcam webCam, ImageView imageView, Consumer resultHandler) { - this.webCam = webCam; - this.imageView = imageView; - this.resultHandler = resultHandler; - - start(); - } - - @Override - public void run() { - try { - if (!webCam.isOpen()) - webCam.open(); - - isRunning = true; - Result result; - BufferedImage bufferedImage; - while (isRunning) { - bufferedImage = webCam.getImage(); - if (bufferedImage != null) { - WritableImage writableImage = SwingFXUtils.toFXImage(bufferedImage, null); - imageView.setImage(writableImage); - imageView.setRotationAxis(new Point3D(0.0, 1.0, 0.0)); - imageView.setRotate(180.0); - - LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage); - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - - try { - result = new MultiFormatReader().decode(bitmap); - isRunning = false; - String qrCode = result.getText(); - UserThread.execute(() -> resultHandler.accept(qrCode)); - } catch (NotFoundException ignore) { - // No qr code in image... - } - } - } - } catch (Throwable t) { - log.error(t.toString()); - } finally { - webCam.close(); - } - } - - public void close() { - isRunning = false; - } -} diff --git a/desktop/src/main/java/bisq/desktop/main/account/content/notifications/WebCamLauncher.java b/desktop/src/main/java/bisq/desktop/main/account/content/notifications/WebCamLauncher.java deleted file mode 100644 index 569005508c..0000000000 --- a/desktop/src/main/java/bisq/desktop/main/account/content/notifications/WebCamLauncher.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * This file is part of Bisq. - * - * Bisq is free software: you can redistribute it and/or modify it - * under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or (at - * your option) any later version. - * - * Bisq is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public - * License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Bisq. If not, see . - */ - -package bisq.desktop.main.account.content.notifications; - -import bisq.common.UserThread; -import bisq.common.handlers.ExceptionHandler; - -import java.awt.Dimension; - -import java.util.concurrent.TimeoutException; -import java.util.function.Consumer; - -import lombok.extern.slf4j.Slf4j; - - - -import com.github.sarxos.webcam.Webcam; - -@Slf4j -// Must not be UI thread -class WebCamLauncher extends Thread { - private final Consumer resultHandler; - private final ExceptionHandler exceptionHandler; - - WebCamLauncher(Consumer resultHandler, ExceptionHandler exceptionHandler) { - this.resultHandler = resultHandler; - this.exceptionHandler = exceptionHandler; - - start(); - } - - @Override - public void run() { - try { - Webcam webCam = Webcam.getDefault(1000); // one second timeout - the default is too long - if (webCam != null) { - Dimension[] sizes = webCam.getViewSizes(); - Dimension size = sizes[sizes.length - 1]; // the largest size - webCam.setViewSize(size); - UserThread.execute(() -> resultHandler.accept(webCam)); - } else { - UserThread.execute(() -> exceptionHandler.handleException(new NoWebCamFoundException("No webcam found."))); - } - } catch (TimeoutException e) { - log.error(e.toString()); - UserThread.execute(() -> exceptionHandler.handleException(e)); - } - } -} diff --git a/gradle/witness/gradle-witness.gradle b/gradle/witness/gradle-witness.gradle index 5f5551bab1..3fca613fdc 100644 --- a/gradle/witness/gradle-witness.gradle +++ b/gradle/witness/gradle-witness.gradle @@ -31,7 +31,6 @@ dependencyVerification { 'com.github.bisq-network:bitcoinj:65ed08fa5777ea4a08599bdd575e7dc1f4ba2d4d5835472551439d6f6252e68a', 'com.github.bisq-network:jsonrpc4j:842b4a660440ef53cd436da2e21c3e1fed939b620a3fc7542307deb3e77fdeb6', 'com.github.ravn:jsocks:3c71600af027b2b6d4244e4ad14d98ff2352a379410daebefff5d8cd48d742a4', - 'com.github.sarxos:webcam-capture:d960b7ea8ec3ddf2df0725ef214c3fccc9699ea7772df37f544e1f8e4fd665f6', 'com.google.android:annotations:ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15', 'com.google.api.grpc:proto-google-common-protos:bd60cd7a423b00fb824c27bdd0293aaf4781be1daba6ed256311103fb4b84108', 'com.google.code.findbugs:jsr305:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', @@ -47,7 +46,6 @@ dependencyVerification { 'com.google.zxing:javase:0ec23e2ec12664ddd6347c8920ad647bb3b9da290f897a88516014b56cc77eb9', 'com.googlecode.jcsv:jcsv:73ca7d715e90c8d2c2635cc284543b038245a34f70790660ed590e157b8714a2', 'com.jfoenix:jfoenix:8060235fec5eb49617ec8d81d379e8c945f6cc722d0645e97190045100de2084', - 'com.nativelibs4java:bridj:101bcd9b6637e6bc16e56deb3daefba62b1f5e8e9e37e1b3e56e3b5860d659cf', 'commons-codec:commons-codec:61f7a3079e92b9fdd605238d0295af5fd11ac411a0a0af48deace1f6c5ffa072', 'commons-io:commons-io:f877d304660ac2a142f3865badfc971dec7ed73c747c7f8d5d2f5139ca736513', 'commons-logging:commons-logging:daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636', From 3281767a52e4a7d6e8698f2af089a59f1e9d7c04 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 20 Apr 2021 15:10:44 +0200 Subject: [PATCH 68/77] Clean build files and adapt binary signing --- build.gradle | 5 ----- desktop/package/macosx/finalize.sh | 13 ++++++------- desktop/package/package.gradle | 9 +++------ 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 70fd3c41e9..1556a6aa31 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,3 @@ -import java.time.LocalDateTime -import org.apache.tools.ant.taskdefs.condition.Os - -import static groovy.io.FileType.* - buildscript { repositories { jcenter() diff --git a/desktop/package/macosx/finalize.sh b/desktop/package/macosx/finalize.sh index 822b2ea71e..077117cf8d 100755 --- a/desktop/package/macosx/finalize.sh +++ b/desktop/package/macosx/finalize.sh @@ -10,8 +10,9 @@ target_dir="releases/$version" # Set BISQ_VM_PATH as environment var to the directory where your shared folders for virtual box are residing vmPath=$BISQ_VM_PATH -linux64=$vmPath/vm_shared_ubuntu/desktop/package/linux -win64=$vmPath/vm_shared_windows/desktop/package/windows +linux64=$vmPath/vm_shared_ubuntu +win64=$vmPath/vm_shared_windows +macos=$vmPath/vm_shared_macosx deployDir=deploy @@ -27,17 +28,15 @@ cp "$target_dir/../../package/5BC5ED73.asc" "$target_dir/" cp "$target_dir/../../package/29CDFD3B.asc" "$target_dir/" # signing key cp "$target_dir/../../package/signingkey.asc" "$target_dir/" -# hash of jar file -cp "deploy/Bisq-$version.jar.txt" "$target_dir/" dmg="Bisq-$version.dmg" -cp "$deployDir/$dmg" "$target_dir/" +cp "$macos/$dmg" "$target_dir/" -deb="Bisq-$version.deb" +deb="bisq_$version-1_amd64.deb" deb64="Bisq-64bit-$version.deb" cp "$linux64/$deb" "$target_dir/$deb64" -rpm="Bisq-$version.rpm" +rpm="bisq-$version-1.x86_64.rpm" rpm64="Bisq-64bit-$version.rpm" cp "$linux64/$rpm" "$target_dir/$rpm64" diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 33e0966dae..f33581c603 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -3,7 +3,6 @@ import org.apache.tools.ant.taskdefs.condition.Os import static groovy.io.FileType.* - task jpackageSanityChecks { description 'Interactive sanity checks on the version of the code that will be packaged' @@ -183,7 +182,6 @@ task packageInstallers { doLast { String jPackageFilePath = retrieveAndExtractJavaBinaries.property('jpackageFilePath') - String licenseFilePath = "${rootProject.projectDir}/LICENSE" File binariesFolderPath = file(getJavaBinariesDownloadURLs.property('binariesFolderPath')) File tempRootDir = getJavaBinariesDownloadURLs.property("tempRootDir") as File @@ -253,8 +251,8 @@ task packageInstallers { " --main-jar ${mainJarName}" + " --main-class bisq.desktop.app.BisqAppMain" + " --java-options -Xss1280k" + - " --java-options '-XX:MaxRAM=4g'" + - " --java-options '-Djava.net.preferIPv4Stack=true'" + " --java-options -XX:MaxRAM=4g" + + " --java-options -Djava.net.preferIPv4Stack=true" // Warning: this will cause guice reflection exceptions and lead to issues with the guice internal cache // resulting in the UI not loading // " --java-options -Djdk.module.illegalAccess=deny" + @@ -263,9 +261,8 @@ task packageInstallers { if (Os.isFamily(Os.FAMILY_WINDOWS)) { // TODO Found no benefit in using --resource-dir "..package/windows", it has the same outcome as opts below String windowsOpts = ( - " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + + " --icon \"${project(':desktop').projectDir}/package/windows/Bisq.ico\"" + " --resource-dir \"${project(':desktop').projectDir}/package/windows\"" + - " --verbose" + " --win-dir-chooser" + " --win-per-user-install" + " --win-menu" + From 41fa3a906395ec0b606d0b46ae09cdba692583c9 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 20 Apr 2021 15:26:12 +0200 Subject: [PATCH 69/77] Only bundle Raspberry Pi on macOS --- desktop/package/package.gradle | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index f33581c603..3782c39219 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -225,10 +225,13 @@ task packageInstallers { String appVersion = version.replaceAll("-SNAPSHOT", "") println "Packaging Bisq version ${appVersion}" - // zip jar lib for Raspberry Pi - println "Zipping jar lib for raspberry pi" - ant.zip(basedir: "${project(':desktop').buildDir}/app/lib", - destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip") + // zip jar lib for Raspberry Pi only on macOS as there are path issues on Windows and it is only needed once + // for the release + if (Os.isFamily(Os.FAMILY_MAC)) { + println "Zipping jar lib for raspberry pi" + ant.zip(basedir: "${project(':desktop').buildDir}/app/lib", + destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip") + } String appDescription = 'A decentralized bitcoin exchange network.' String appCopyright = '© 2021 Bisq' From 2463e283309567943c6b298a1870b4020985a496 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 21 Apr 2021 09:23:32 +0200 Subject: [PATCH 70/77] Remove old build files --- desktop/package/linux/LICENSE | 661 ------------------ desktop/package/linux/package.sh | 167 ----- desktop/package/linux/release.sh | 79 --- desktop/package/macosx/create_app.sh | 98 --- .../macosx/create_desktop_for_testing.sh | 43 -- .../macosx/create_seednode_for_testing.sh | 43 -- desktop/package/windows/package.bat | 130 ---- desktop/package/windows/release.bat | 70 -- 8 files changed, 1291 deletions(-) delete mode 100644 desktop/package/linux/LICENSE delete mode 100755 desktop/package/linux/package.sh delete mode 100755 desktop/package/linux/release.sh delete mode 100755 desktop/package/macosx/create_app.sh delete mode 100755 desktop/package/macosx/create_desktop_for_testing.sh delete mode 100755 desktop/package/macosx/create_seednode_for_testing.sh delete mode 100644 desktop/package/windows/package.bat delete mode 100644 desktop/package/windows/release.bat diff --git a/desktop/package/linux/LICENSE b/desktop/package/linux/LICENSE deleted file mode 100644 index dba13ed2dd..0000000000 --- a/desktop/package/linux/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/desktop/package/linux/package.sh b/desktop/package/linux/package.sh deleted file mode 100755 index 1616040816..0000000000 --- a/desktop/package/linux/package.sh +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/env bash -# Requirements: -# - 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 - -version=1.6.2-SNAPSHOT -version_base=$(echo $version | awk -F'[_-]' '{print $1}') -if [ ! -f "$JAVA_HOME/bin/javapackager" ]; then - if [ -d "/usr/lib/jvm/jdk-10.0.2" ]; then - JAVA_HOME=/usr/lib/jvm/jdk-10.0.2 - else - echo Javapackager not found. Update JAVA_HOME variable to point to OracleJDK. - exit 1 - fi -fi - -base_dir=$( cd "$(dirname "$0")" ; pwd -P )/../../.. -src_dir=$base_dir/desktop/package - -cd $base_dir - -set -eu - -echo Installing required packages -if [[ -f "/etc/debian_version" ]]; then - sudo apt install -y fakeroot rpm -elif [[ -f "/etc/redhat-release" ]]; then - sudo yum install -y fakeroot rpm-build dpkg perl-Digest-SHA -fi - -if [ ! -f "$base_dir/desktop/package/desktop-$version-all.jar" ]; then - echo Building application - ./gradlew :desktop:clean :desktop:build -x test shadowJar - jar_file=$base_dir/desktop/build/libs/desktop-$version-all.jar - if [ ! -f "$jar_file" ]; then - echo No jar file available at $jar_file - exit 2 - fi - - tmp=$base_dir/desktop/build/libs/tmp - echo Extracting jar file to $tmp - if [ -d "$tmp" ]; then - rm -rf $tmp - fi - mkdir -p $tmp - unzip -o -q $jar_file -d $tmp - - 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 [ -f "$tmp/module-info.class" ]; then - rm -f $tmp/module-info.class - fi - - jar_file=$base_dir/desktop/package/desktop-$version-all.jar - echo Zipping jar again without module config to $jar_file - cd $tmp; zip -r -q -X $jar_file * - cd $base_dir; rm -rf $tmp - - echo SHA256 before stripping jar file: - shasum -a256 $jar_file | awk '{print $1}' - - 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 $base_dir/desktop/package/tools-1.0.jar $jar_file - - echo SHA256 after stripping jar file: - shasum -a256 $jar_file | awk '{print $1}' | tee $base_dir/desktop/package/desktop-$version-all.jar.txt -else - local_src_dir="/home/$USER/Desktop/build" - mkdir -p $local_src_dir - cp $base_dir/desktop/package/desktop-$version-all.jar $local_src_dir/desktop-$version-all.jar - src_dir=$local_src_dir -fi - -chmod o+rx "$src_dir/desktop-$version-all.jar" - -# Remove previously generated packages so we can later determine if they are actually generated successfully -if [ -f "$base_dir/desktop/package/linux/bisq-$version.deb" ]; then - rm "$base_dir/desktop/package/linux/bisq-$version.deb" -fi -if [ -f "$base_dir/desktop/package/linux/bisq-$version.rpm" ]; then - rm "$base_dir/desktop/package/linux/bisq-$version.rpm" -fi - -# TODO: add the license as soon as it is working with our build setup -#-BlicenseFile=LICENSE \ -#-srcfiles package/linux/LICENSE \ - -echo Generating deb package -$JAVA_HOME/bin/javapackager \ - -deploy \ - -BappVersion=$version \ - -Bcategory=Network \ - -Bemail=contact@bisq.network \ - -BlicenseType=GPLv3 \ - -Bicon=$base_dir/desktop/package/linux/icon.png \ - -native deb \ - -name Bisq \ - -title "A decentralized bitcoin exchange network." \ - -vendor Bisq \ - -outdir $base_dir/desktop/package/linux \ - -srcdir $src_dir \ - -srcfiles desktop-$version-all.jar \ - -appclass bisq.desktop.app.BisqAppMain \ - -BjvmOptions=-Xss1280k \ - -BjvmOptions=-XX:MaxRAM=4g \ - -BjvmOptions=-Djava.net.preferIPv4Stack=true \ - -outfile Bisq-$version \ - -v - -if [ ! -f "$base_dir/desktop/package/linux/bisq-$version.deb" ]; then - echo No deb file found at $base_dir/desktop/package/linux/bisq-$version.deb - exit 3 -fi - -echo Generating rpm package -$JAVA_HOME/bin/javapackager \ - -deploy \ - -BappVersion="$version_base" \ - -Bcategory=Network \ - -Bemail=contact@bisq.network \ - -BlicenseType=GPLv3 \ - -Bicon=$base_dir/desktop/package/linux/icon.png \ - -native rpm \ - -name Bisq \ - -title "A decentralized bitcoin exchange network." \ - -vendor Bisq \ - -outdir $base_dir/desktop/package/linux \ - -srcdir $src_dir \ - -srcfiles desktop-$version-all.jar \ - -appclass bisq.desktop.app.BisqAppMain \ - -BjvmOptions=-Xss1280k \ - -BjvmOptions=-XX:MaxRAM=4g \ - -BjvmOptions=-Djava.net.preferIPv4Stack=true \ - -outfile Bisq-$version \ - -v - -if [ ! -f "$base_dir/desktop/package/linux/bisq-$version_base-1.x86_64.rpm" ]; then - echo "No rpm file found at $base_dir/desktop/package/linux/bisq-$version_base-1.x86_64.rpm" - exit 3 -fi - -# FIXME: My Ubuntu somehow also deletes the lower case file -# if [ -f "$base_dir/desktop/package/linux/Bisq-$version.deb" ]; then -# rm "$base_dir/desktop/package/linux/Bisq-$version.deb" -# fi -mv $base_dir/desktop/package/linux/bisq-$version.deb $base_dir/desktop/package/linux/Bisq-$version.deb - -echo SHA256 of $base_dir/desktop/package/linux/Bisq-$version.deb: -shasum -a256 $base_dir/desktop/package/linux/Bisq-$version.deb | awk '{print $1}' | tee $base_dir/desktop/package/linux/Bisq-$version.deb.txt - -# FIXME: My Ubuntu somehow also deletes the lower case file -# if [ -f "$base_dir/desktop/package/linux/Bisq-$version_base-1.x86_64.rpm" ]; then -# rm "$base_dir/desktop/package/linux/Bisq-$version_base-1.x86_64.rpm" -# fi -mv "$base_dir/desktop/package/linux/bisq-$version_base-1.x86_64.rpm" "$base_dir/desktop/package/linux/Bisq-$version.rpm" - -echo SHA256 of $base_dir/desktop/package/linux/Bisq-$version.rpm: -shasum -a256 $base_dir/desktop/package/linux/Bisq-$version.rpm | awk '{print $1}' | tee $base_dir/desktop/package/linux/Bisq-$version.rpm.txt - -echo Done! diff --git a/desktop/package/linux/release.sh b/desktop/package/linux/release.sh deleted file mode 100755 index 5e88a68405..0000000000 --- a/desktop/package/linux/release.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env bash -# Requirements: -# - GPG signing key has been created -# Prior to running this script: -# - Update version below - -version=1.6.2-SNAPSHOT -base_dir=$( cd "$(dirname "$0")" ; pwd -P )/../../.. -package_dir=$base_dir/desktop/package -release_dir=$base_dir/desktop/release/$version - -dmg=Bisq-$version.dmg -deb=Bisq-$version.deb -rpm=Bisq-$version.rpm -exe=Bisq-$version.exe - -read -p "Enter email address used for gpg signing: " gpg_user - -echo Creating release directory -if [ -d "$release_dir" ]; then - rm -fr "$release_dir" -fi -mkdir -p "$release_dir" - -echo Copying files to release folder -# sig key mkarrer -cp "$package_dir/F379A1C6.asc" "$release_dir" -# sig key cbeams -cp "$package_dir/5BC5ED73.asc" "$release_dir" -# sig key Christoph Atteneder -cp "$package_dir/29CDFD3B.asc" "$release_dir" -# signing key -cp "$package_dir/signingkey.asc" "$release_dir" -if [ -f "$package_dir/macosx/$dmg" ]; then - cp "$package_dir/macosx/$dmg" "$release_dir" - cp "$package_dir/macosx/$dmg.txt" "$release_dir" -fi -if [ -f "$package_dir/linux/$deb" ]; then - cp "$package_dir/linux/$deb" "$release_dir" - cp "$package_dir/linux/$deb.txt" "$release_dir" -fi -if [ -f "$package_dir/linux/$rpm" ]; then - cp "$package_dir/linux/$rpm" "$release_dir" - cp "$package_dir/linux/$rpm.txt" "$release_dir" -fi -if [ -f "$package_dir/windows/$exe" ]; then - cp "$package_dir/windows/$exe" "$release_dir" - cp "$package_dir/windows/$exe.txt" "$release_dir" -fi - -echo Creating signatures -if [ -f "$release_dir/$dmg" ]; then - gpg --digest-algo SHA256 --local-user $gpg_user --output "$release_dir/$dmg.asc" --detach-sig --armor "$release_dir/$dmg" -fi -if [ -f "$release_dir/$deb" ]; then - gpg --digest-algo SHA256 --local-user $gpg_user --output "$release_dir/$deb.asc" --detach-sig --armor "$release_dir/$deb" -fi -if [ -f "$release_dir/$rpm" ]; then - gpg --digest-algo SHA256 --local-user $gpg_user --output "$release_dir/$rpm.asc" --detach-sig --armor "$release_dir/$rpm" -fi -if [ -f "$release_dir/$exe" ]; then - gpg --digest-algo SHA256 --local-user $gpg_user --output "$release_dir/$exe.asc" --detach-sig --armor "$release_dir/$exe" -fi - -echo Verifying signatures -if [ -f "$release_dir/$dmg" ]; then - gpg --digest-algo SHA256 --verify "$release_dir/$dmg.asc" -fi -if [ -f "$release_dir/$deb" ]; then - gpg --digest-algo SHA256 --verify "$release_dir/$deb.asc" -fi -if [ -f "$release_dir/$rpm" ]; then - gpg --digest-algo SHA256 --verify "$release_dir/$rpm.asc" -fi -if [ -f "$release_dir/$exe" ]; then - gpg --digest-algo SHA256 --verify "$release_dir/$exe.asc" -fi - -echo Done! diff --git a/desktop/package/macosx/create_app.sh b/desktop/package/macosx/create_app.sh deleted file mode 100755 index 2c7cd74f7b..0000000000 --- a/desktop/package/macosx/create_app.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash - -cd $(dirname $0)/../../ - -mkdir -p deploy - -set -e - -version="1.6.2-SNAPSHOT" - -cd .. -./gradlew :desktop:build -x test shadowJar -cd desktop - -EXE_JAR=build/libs/desktop-$version-all.jar -JAR_LIB=build/app/lib - -# we need to strip out Java 9 module configuration used in the fontawesomefx library as it causes the javapackager to stop, -# because of this existing module information, although it is not used as a module. -echo Unzipping jar to delete module config -tmp=build/libs/tmp -unzip -o -q $EXE_JAR -d $tmp - -# Sometimes $tmp/module-info.class is not available. TODO check why and if still needed -rm -f $tmp/module-info.class - -rm $EXE_JAR -echo Zipping jar again without module config -cd $tmp; zip -r -q -X "../desktop-$version-all.jar" * -cd ../../../; rm -rf $tmp - -echo SHA 256 before stripping jar file: -shasum -a256 $EXE_JAR | awk '{print $1}' - -# We make a deterministic jar by stripping out comments with date, etc. -# jar file created from https://github.com/ManfredKarrer/tools -java -jar ./package/tools-1.0.jar $EXE_JAR - -echo SHA 256 after stripping jar file to get a deterministic jar: -shasum -a256 $EXE_JAR | awk '{print $1}' | tee deploy/Bisq-$version.jar.txt - -# zip jar lib for Raspberry Pi -echo "Zipping jar lib for raspberry pi" -zip -r -X -q "deploy/jar-lib-for-raspberry-pi-$version.zip" $JAR_LIB - -# Set BISQ_VM_PATH as environment var to the directory where your shared folders for virtual box are residing - -vmPath=$BISQ_VM_PATH -linux64=$vmPath/vm_shared_ubuntu/desktop -linux64Package=$linux64/package/linux -win64=$vmPath/vm_shared_windows/desktop -win64Package=$win64/package/windows - -rm -rf $linux64Package $win64Package - -mkdir -p $linux64 $win64 $linux64Package $win64Package - -cp $EXE_JAR "deploy/Bisq-$version.jar" - -# copy app jar to VM shared folders -cp $EXE_JAR "$linux64Package/../desktop-$version-all.jar" -cp $EXE_JAR "$win64Package/../desktop-$version-all.jar" - -# Copy packager scripts to VM. No need to checkout the source as we only are interested in the build scripts. - -cp -r package/linux/. $linux64Package -cp -r package/windows/. $win64Package - -if [ -z "$JAVA_HOME" ]; then - JAVA_HOME=$(/usr/libexec/java_home) -fi - -# Open jdk does not has the java packager. -# JAVA_HOME=/Library/Java/JavaVirtualMachines/oracle_jdk-10.0.2.jdk/Contents/Home - -echo "Using JAVA_HOME: $JAVA_HOME" - -$JAVA_HOME/bin/javapackager \ - -deploy \ - -BappVersion=$version \ - -Bmac.CFBundleIdentifier=io.bisq.CAT \ - -Bmac.CFBundleName=Bisq \ - -Bicon=package/macosx/Bisq.icns \ - -Bruntime="$JAVA_HOME/jre" \ - -native dmg \ - -name Bisq \ - -title "A decentralized bitcoin exchange network." \ - -vendor Bisq \ - -outdir deploy \ - -srcdir deploy \ - -srcfiles "Bisq-$version.jar" \ - -appclass bisq.desktop.app.BisqAppMain \ - -outfile Bisq \ - -v - -open deploy - -cd package/macosx diff --git a/desktop/package/macosx/create_desktop_for_testing.sh b/desktop/package/macosx/create_desktop_for_testing.sh deleted file mode 100755 index 83c0eaf9c2..0000000000 --- a/desktop/package/macosx/create_desktop_for_testing.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -cd $(dirname $0)/../../ - -mkdir -p deploy - -set -e - -version="1.1.5-SNAPSHOT" -commithash="ec633f0c3771893b47956b8d05b17c6f3f1919c1" - -cd .. -./gradlew :desktop:build -x test shadowJar -cd desktop - -EXE_JAR=build/libs/desktop-$version-all.jar -JAR_WITH_HASH_NAME=desktop-$version-$commithash-all.jar -EXE_JAR_WITH_HASH=build/libs/$JAR_WITH_HASH_NAME -DEPLOY_JAR=deploy/$JAR_WITH_HASH_NAME - -# we need to strip out Java 9 module configuration used in the fontawesomefx library as it causes the javapackager to stop, -# because of this existing module information, although it is not used as a module. -echo Unzipping jar to delete module config -tmp=build/libs/tmp -unzip -o -q $EXE_JAR -d $tmp - -# Sometimes $tmp/module-info.class is not available. TODO check why and if still needed -rm -f $tmp/module-info.class - -rm $EXE_JAR -echo Zipping jar again without module config -cd $tmp; zip -r -q -X "../$JAR_WITH_HASH_NAME" * -cd ../../../; rm -rf $tmp - -cp $EXE_JAR_WITH_HASH $DEPLOY_JAR - -echo Create signature -gpg --digest-algo SHA256 --local-user $BISQ_GPG_USER --output $DEPLOY_JAR.asc --detach-sig --armor $DEPLOY_JAR - -echo Verify signatures -gpg --digest-algo SHA256 --verify $DEPLOY_JAR{.asc*,} - -open deploy diff --git a/desktop/package/macosx/create_seednode_for_testing.sh b/desktop/package/macosx/create_seednode_for_testing.sh deleted file mode 100755 index aba6ddbd68..0000000000 --- a/desktop/package/macosx/create_seednode_for_testing.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -cd $(dirname $0)/../../ - -set -e - -version="1.1.5-SNAPSHOT" -commithash="ec633f0c3771893b47956b8d05b17c6f3f1919c1" - -cd .. -./gradlew :seednode:build -x test shadowJar -cd seednode - -mkdir -p deploy - -EXE_JAR=build/libs/seednode-all.jar -JAR_WITH_HASH_NAME=seednode-$version-$commithash-all.jar -EXE_JAR_WITH_HASH=build/libs/$JAR_WITH_HASH_NAME -DEPLOY_JAR=deploy/$JAR_WITH_HASH_NAME - -# we need to strip out Java 9 module configuration used in the fontawesomefx library as it causes the javapackager to stop, -# because of this existing module information, although it is not used as a module. -echo Unzipping jar to delete module config -tmp=build/libs/tmp -unzip -o -q $EXE_JAR -d $tmp - -# Sometimes $tmp/module-info.class is not available. TODO check why and if still needed -rm -f $tmp/module-info.class - -rm $EXE_JAR -echo Zipping jar again without module config -cd $tmp; zip -r -q -X "../$JAR_WITH_HASH_NAME" * -cd ../../../; rm -rf $tmp - -cp $EXE_JAR_WITH_HASH $DEPLOY_JAR - -echo Create signature -gpg --digest-algo SHA256 --local-user $BISQ_GPG_USER --output $DEPLOY_JAR.asc --detach-sig --armor $DEPLOY_JAR - -echo Verify signatures -gpg --digest-algo SHA256 --verify $DEPLOY_JAR{.asc*,} - -open deploy diff --git a/desktop/package/windows/package.bat b/desktop/package/windows/package.bat deleted file mode 100644 index f445114cf4..0000000000 --- a/desktop/package/windows/package.bat +++ /dev/null @@ -1,130 +0,0 @@ -:: 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 -:: - Sign Tool installed (https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool) -:: Note: Sign Tool is part of Windows 10 SDK (https://go.microsoft.com/fwlink/?LinkID=698771) -:: - Code signing certificate installed -:: Prior to running this script: -:: - Update version below -:: - Ensure JAVA_HOME below is pointing to OracleJDK 10 directory - -@echo off - -set version=1.6.2-SNAPSHOT -if not exist "%JAVA_HOME%\bin\javapackager.exe" ( - if not exist "%ProgramFiles%\Java\jdk-10.0.2" ( - echo Javapackager not found. Update JAVA_HOME variable to point to OracleJDK. - exit /B 1 - ) - set JAVA_HOME=%ProgramFiles%\Java\jdk-10.0.2 -) -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 2 -) - -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 3 -) - -echo Signing executable with default Code Signing Certificate -call "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /v /fd SHA256 /a "%package_dir%\windows\Bisq-%version%.exe" - -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 diff --git a/desktop/package/windows/release.bat b/desktop/package/windows/release.bat deleted file mode 100644 index 1d8d880842..0000000000 --- a/desktop/package/windows/release.bat +++ /dev/null @@ -1,70 +0,0 @@ -:: 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=1.6.2-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 From 5dc8abdbe77ca53c16fcd2d3776b9462f91c1b54 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 21 Apr 2021 09:38:10 +0200 Subject: [PATCH 71/77] Update Java SDK --- desktop/package/package.gradle | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 3782c39219..84e96c6a0e 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -73,21 +73,14 @@ task getJavaBinariesDownloadURLs { // -- macOS ( -> use the tar.gz JDK link) // -- windows ( -> use the .zip JDK link) Map jdk15Binaries = [ - 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_linux_hotspot_15.0.1_9.tar.gz', - 'linux-sha256' : '61045ecb9434e3320dbc2c597715f9884586b7a18a56d29851b4d4a4d48a2a5e', - 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9.1/OpenJDK15U-jdk_x64_mac_hotspot_15.0.1_9.tar.gz', - 'mac-sha256' : 'b8c2e2ad31f3d6676ea665d9505b06df15e23741847556612b40e3ee329fc046', - 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_windows_hotspot_15.0.1_9.zip', - 'windows-sha256' : '0cd7e61b0a37186902062a822caa0e14662b676c245b7ebe541f115f3c45681a' + 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz', + 'linux-sha256' : '94f20ca8ea97773571492e622563883b8869438a015d02df6028180dd9acc24d', + 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.tar.gz', + 'mac-sha256' : 'd358a7ff03905282348c6c80562a4da2e04eb377b60ad2152be4c90f8d580b7f', + 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_windows_hotspot_15.0.2_7.zip', + 'windows-sha256' : 'b80dde2b7f8374eff0f1726c1cbdb48fb095fdde21489046d92f7144baff5741' // TODO For some reason, using "--runtime-image jdk-11" does NOT work with a v15 jpackage, but works with v14 - // v14 -// 'linux' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz', -// 'linux-sha256' : '7d5ee7e06909b8a99c0d029f512f67b092597aa5b0e78c109bd59405bbfa74fe', -// 'mac' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz', -// 'mac-sha256' : '09b7e6ab5d5eb4b73813f4caa793a0b616d33794a17988fa6a6b7c972e8f3dd3', -// 'windows' : 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_windows_hotspot_14.0.2_12.zip', -// 'windows-sha256' : '80926003297bf5afc9357ce24c12aee65483fc7889dc34b65fe08bec4d040611' ] String osKey From bbe6c703adaade03831ab86bbc96d3d48d974104 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 21 Apr 2021 09:52:54 +0200 Subject: [PATCH 72/77] clean up formatting --- desktop/package/package.gradle | 115 ++++++++++++++++----------------- 1 file changed, 57 insertions(+), 58 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 84e96c6a0e..c388ec86b0 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -73,14 +73,14 @@ task getJavaBinariesDownloadURLs { // -- macOS ( -> use the tar.gz JDK link) // -- windows ( -> use the .zip JDK link) Map jdk15Binaries = [ - 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz', - 'linux-sha256' : '94f20ca8ea97773571492e622563883b8869438a015d02df6028180dd9acc24d', - 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.tar.gz', - 'mac-sha256' : 'd358a7ff03905282348c6c80562a4da2e04eb377b60ad2152be4c90f8d580b7f', - 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_windows_hotspot_15.0.2_7.zip', - 'windows-sha256' : 'b80dde2b7f8374eff0f1726c1cbdb48fb095fdde21489046d92f7144baff5741' + 'linux' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz', + 'linux-sha256' : '94f20ca8ea97773571492e622563883b8869438a015d02df6028180dd9acc24d', + 'mac' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.tar.gz', + 'mac-sha256' : 'd358a7ff03905282348c6c80562a4da2e04eb377b60ad2152be4c90f8d580b7f', + 'windows' : 'https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_windows_hotspot_15.0.2_7.zip', + 'windows-sha256': 'b80dde2b7f8374eff0f1726c1cbdb48fb095fdde21489046d92f7144baff5741' - // TODO For some reason, using "--runtime-image jdk-11" does NOT work with a v15 jpackage, but works with v14 + // TODO For some reason, using "--runtime-image jdk-11" does NOT work with a v15 jpackage, but works with v14 ] String osKey @@ -135,7 +135,7 @@ task retrieveAndExtractJavaBinaries { } } - ext.downloadAndVerifyArchive = {String archiveURL, String archiveSHA256, File destinationArchiveFile -> + ext.downloadAndVerifyArchive = { String archiveURL, String archiveSHA256, File destinationArchiveFile -> println "Downloading ${archiveURL}" ant.get(src: archiveURL, dest: destinationArchiveFile) println 'Download saved to ' + destinationArchiveFile @@ -149,7 +149,7 @@ task retrieveAndExtractJavaBinaries { println 'Checksum verified' } - ext.extractArchiveTarGz = {File tarGzFile, File destinationDir -> + ext.extractArchiveTarGz = { File tarGzFile, File destinationDir -> println "Extracting tar.gz ${tarGzFile}" // Gradle's tar extraction preserves permissions (crucial for jpackage to function correctly) copy { @@ -159,7 +159,7 @@ task retrieveAndExtractJavaBinaries { println "Extracted to ${destinationDir}" } - ext.extractArchiveZip = {File zipFile, File destinationDir -> + ext.extractArchiveZip = { File zipFile, File destinationDir -> println "Extracting zip ${zipFile}..." ant.unzip(src: zipFile, dest: destinationDir) println "Extracted to ${destinationDir}" @@ -230,25 +230,25 @@ task packageInstallers { String appCopyright = '© 2021 Bisq' String appNameAndVendor = 'Bisq' - String commonOpts = ( + String commonOpts = new String( // Generic options " --dest \"${binariesFolderPath}\"" + - " --name ${appNameAndVendor}" + - " --description \"${appDescription}\"" + - " --app-version ${appVersion}" + - " --copyright \"${appCopyright}\"" + - " --vendor ${appNameAndVendor}" + - " --temp \"${jpackageTempDir}\"" + + " --name ${appNameAndVendor}" + + " --description \"${appDescription}\"" + + " --app-version ${appVersion}" + + " --copyright \"${appCopyright}\"" + + " --vendor ${appNameAndVendor}" + + " --temp \"${jpackageTempDir}\"" + - // Options for creating the application image - " --input ${fatJarFolderPath}" + + // Options for creating the application image + " --input ${fatJarFolderPath}" + - // Options for creating the application launcher - " --main-jar ${mainJarName}" + - " --main-class bisq.desktop.app.BisqAppMain" + - " --java-options -Xss1280k" + - " --java-options -XX:MaxRAM=4g" + - " --java-options -Djava.net.preferIPv4Stack=true" + // Options for creating the application launcher + " --main-jar ${mainJarName}" + + " --main-class bisq.desktop.app.BisqAppMain" + + " --java-options -Xss1280k" + + " --java-options -XX:MaxRAM=4g" + + " --java-options -Djava.net.preferIPv4Stack=true" // Warning: this will cause guice reflection exceptions and lead to issues with the guice internal cache // resulting in the UI not loading // " --java-options -Djdk.module.illegalAccess=deny" + @@ -256,13 +256,13 @@ task packageInstallers { if (Os.isFamily(Os.FAMILY_WINDOWS)) { // TODO Found no benefit in using --resource-dir "..package/windows", it has the same outcome as opts below - String windowsOpts = ( - " --icon \"${project(':desktop').projectDir}/package/windows/Bisq.ico\"" + - " --resource-dir \"${project(':desktop').projectDir}/package/windows\"" + - " --win-dir-chooser" + - " --win-per-user-install" + - " --win-menu" + - " --win-shortcut" + String windowsOpts = new String( + " --icon \"${project(':desktop').projectDir}/package/windows/Bisq.ico\"" + + " --resource-dir \"${project(':desktop').projectDir}/package/windows\"" + + " --win-dir-chooser" + + " --win-per-user-install" + + " --win-menu" + + " --win-shortcut" ) executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") @@ -279,8 +279,8 @@ task packageInstallers { // See https://docs.oracle.com/en/java/javase/14/jpackage/override-jpackage-resources.html // for details of "--resource-dir" - String macOpts = ( - " --resource-dir \"${project(':desktop').projectDir}/package/macosx\"" + String macOpts = new String( + " --resource-dir \"${project(':desktop').projectDir}/package/macosx\"" ) // Env variable can be set by calling "export BISQ_PACKAGE_SIGNING_IDENTITY='Some value'" @@ -296,15 +296,15 @@ task packageInstallers { tempDylibFolderPath.mkdirs() // Dylibs relevant for signing (paths relative to the tempDylibFolderPath) - String dylibsToSign = ( + String dylibsToSign = new String( " libjavafx_iio.dylib" + - " libglass.dylib" + - " libjavafx_font.dylib" + - " libprism_common.dylib" + - " libprism_es2.dylib" + - " libdecora_sse.dylib" + - " libprism_sw.dylib" + - " META-INF/native/libio_grpc_netty_shaded_netty_tcnative_osx_x86_64.jnilib" + " libglass.dylib" + + " libjavafx_font.dylib" + + " libprism_common.dylib" + + " libprism_es2.dylib" + + " libdecora_sse.dylib" + + " libprism_sw.dylib" + + " META-INF/native/libio_grpc_netty_shaded_netty_tcnative_osx_x86_64.jnilib" ) // macOS step 1: Sign dylibs and replace them in the shadow jar @@ -404,8 +404,7 @@ task packageInstallers { // Every 1 minute, check the status def notarizationEndedInSuccess = false def notarizationEndedInFailure = false - while (!(notarizationEndedInSuccess || notarizationEndedInFailure)) - { + while (!(notarizationEndedInSuccess || notarizationEndedInFailure)) { println "Current time is:" executeCmd('date') println "Waiting for 1 minute..." @@ -439,25 +438,25 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + macOpts + " --type dmg") } } else { - String linuxOpts = ( - " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + + String linuxOpts = new String( + " --icon ${project(':desktop').projectDir}/package/linux/icon.png" + - // This defines the first part of the resulting packages (the application name) - // deb requires lowercase letters, therefore the application name is written in lowercase - " --linux-package-name bisq" + + // This defines the first part of the resulting packages (the application name) + // deb requires lowercase letters, therefore the application name is written in lowercase + " --linux-package-name bisq" + - // This represents the linux package version (revision) - // By convention, this is part of the deb/rpm package names, in addition to the software version - " --linux-app-release 1" + + // This represents the linux package version (revision) + // By convention, this is part of the deb/rpm package names, in addition to the software version + " --linux-app-release 1" + - " --linux-menu-group Network" + - " --linux-shortcut" + " --linux-menu-group Network" + + " --linux-shortcut" ) // Package deb executeCmd(jPackageFilePath + commonOpts + linuxOpts + - " --linux-deb-maintainer noreply@bisq.network" + - " --type deb") + " --linux-deb-maintainer noreply@bisq.network" + + " --type deb") // Clean jpackage temp folder, needs to be empty for the next packaging step (rpm) jpackageTempDir.deleteDir() @@ -465,8 +464,8 @@ task packageInstallers { // Package rpm executeCmd(jPackageFilePath + commonOpts + linuxOpts + - " --linux-rpm-license-type AGPLv3" + // https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses - " --type rpm") + " --linux-rpm-license-type AGPLv3" + // https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses + " --type rpm") } // Env variable can be set by calling "export BISQ_SHARED_FOLDER='Some value'" From 8957685073abff2a6fde6bff0e06af8a76421424 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 21 Apr 2021 10:45:55 +0200 Subject: [PATCH 73/77] Update release process documentation --- desktop/package/package.gradle | 1 + docs/release-process.md | 77 +++++++++++++++++++++------------- 2 files changed, 50 insertions(+), 28 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index c388ec86b0..eeab2e6c6b 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -480,6 +480,7 @@ task packageInstallers { from binariesFolderPath into envVariableSharedFolder } + executeCmd("open " + envVariableSharedFolder) } println "The binaries are ready:" diff --git a/docs/release-process.md b/docs/release-process.md index cbaa855717..3830350136 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -38,8 +38,9 @@ Although performance of VMs might vary based on your hardware configuration foll Use VirtualBox > 6.1 with following configuration: - * System > Motherboard > Base Memory: 2048 MB - * System > Processor > Processor(s): 2 CPUs + +* System > Motherboard > Base Memory: 4096 MB +* System > Processor > Processor(s): 2 CPUs * System > Processor > Execution Cap: 90% * Display > Screen > Video Memory: 128 MB * Display > Screen > Scale Factor: 200% @@ -65,46 +66,67 @@ with following configuration: #### For Windows * Update AntiVirus Software and virus definitions -* Install unicode version of [Inno Tools](http://www.jrsoftware.org/isdl.php) +* Install [WiX toolset](https://wixtoolset.org/releases/) * Run full AV system scan ### Build release #### macOS -1. Make sure all version numbers are updated (update version variables and run [replace_version_number.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/replace_version_number.sh)). -2. Set environment variable e.g. export BISQ_GPG_USER=manfred@bitsquare.io to ~/.profile file or the like... (one time effort) -3. Update [vmPath variable](https://github.com/bisq-network/bisq/blob/b4b5d0bb12c36afbe1aa6611dd8451378df6db8c/desktop/package/macosx/create_app.sh#L42) if necessary -4. Run [create_app.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/create_app.sh) +To be able to generate a signed and notarized binary you have to have an Apple developer account and create the required +certificate and provisioning file before running the build. -Build output expected in deploy directory (opened after successful build process): +1. Make sure all version numbers are updated (update version variables and + run [replace_version_number.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/replace_version_number.sh)) + . +2. Set environment variables to ~/.profile file or the like... (one time effort) + - `BISQ_GPG_USER`: e.g. export BISQ_GPG_USER=manfred@bitsquare.io + - `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + - `BISQ_PACKAGE_SIGNING_IDENTITY`: e.g. "Developer ID Application: Christoph Atteneder (WQT93T6D6C)" + - `BISQ_PRIMARY_BUNDLE_ID`: e.g. "network.bisq.CAT" + - `BISQ_PACKAGE_NOTARIZATION_AC_USERNAME`: your Apple developer email address + - `BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER`: Your developer ID (e.g. WQT93T6D6C) +3. Run `./gradlew --console=plain packageInstallers` -1. `Bisq-${NEW_VERSION}.dmg` macOS signed installer -2. `Bisq-${NEW_VERSION}.jar` Deterministic fat jar -3. `Bisq-${NEW_VERSION}.jar.txt` sha256 sum of deterministic fat jar +Build output expected in shared folder: -The build script also copies over the deterministic fat jar into the shared folders for the other VMs (Windows & Linux). -Before building the other binaries install the generated Bisq app on macOS and verify that everything works as expected. +1. `Bisq-${NEW_VERSION}.dmg` macOS notarized and signed installer +2. `desktop-${NEW_VERSION}-all.jar.SHA-256` sha256 sum of fat jar +3. `jar-lib-for-raspberry-pi-${NEW_VERSION}.zip` Jar libraries for Raspberry Pi + +* Before building the other binaries install the generated Bisq app on macOS and verify that everything works as + expected. #### Linux -* Run `desktop/package/linux/package.sh` from the shared VM folder +1. Checkout the release tag in your VM +2. Set environment variables to ~/.profile file or the like... (one time effort) + - `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system +3. Run `./gradlew --console=plain packageInstallers` Build output expected: -1. `Bisq-${NEW_VERSION}.deb` package for distributions that derive from Debian -2. `Bisq-${NEW_VERSION}.rpm` package for distributions that derive from Redhat based distros +1. `bisq_${NEW_VERSION}-1_amd64.deb` package for distributions that derive from Debian +2. `bisq-${NEW_VERSION}-1.x86_64.rpm` package for distributions that derive from Redhat based distros +3. `desktop-${NEW_VERSION}-all.jar.SHA-256` sha256 sum of fat jar * Install and run generated package #### Windows -* Run `desktop/package/windows/package.bat` from the shared VM folder +To be able to generate a signed binary you have to apply and install a developer certificate before running the build. + +1. Checkout the release tag in your VM +2. Set environment variables to ~/.profile file or the like... (one time effort) + - `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system +3. Run `./gradlew --console=plain packageInstallers` Build output expected: -1. `Bisq-${NEW_VERSION}.exe` Windows unsigned installer -2. `Bisq-${NEW_VERSION}.exe.txt` sha256 sum of installer +1. `Bisq-${NEW_VERSION}.exe` Windows signed installer +2. `desktop-${NEW_VERSION}-all.jar.SHA-256` sha256 sum of fat jar + +* Install and run generated package ### Sign release on macOS @@ -116,15 +138,14 @@ Build output expected: 2. `5BC5ED73.asc` Sig key of Chris Beams 3. `29CDFD3B.asc`Sig key of Christoph Atteneder 4. `signingkey.asc` Fingerprint of key that was used for these builds -5. `Bisq-${NEW_VERSION}.jar.txt` Sha256 sum of deterministic fat jar -6. `Bisq-${NEW_VERSION}.dmg` macOS installer -7. `Bisq-${NEW_VERSION}.dmg.asc` Signature for macOS installer -8. `Bisq-${NEW_VERSION}.deb` Debian package -9. `Bisq-${NEW_VERSION}.deb.asc` Signature for Debian package -10. `Bisq-${NEW_VERSION}.rpm` Redhat based distro package -11. `Bisq-${NEW_VERSION}.rpm.asc` Signature for Redhat based distro package -12. `Bisq-${NEW_VERSION}.exe` Windows installer -13. `Bisq-${NEW_VERSION}.exe.asc` Signature for Windows installer +5. `Bisq-${NEW_VERSION}.dmg` macOS installer +6. `Bisq-${NEW_VERSION}.dmg.asc` Signature for macOS installer +7. `Bisq-64bit-${NEW_VERSION}.deb` Debian package +8. `Bisq-64bit-${NEW_VERSION}.deb.asc` Signature for Debian package +9. `Bisq-64bit-${NEW_VERSION}.rpm` Redhat based distro package +10. `Bisq-64bit-${NEW_VERSION}.rpm.asc` Signature for Redhat based distro package +11. `Bisq-64bit-${NEW_VERSION}.exe` Windows installer +12. `Bisq-64bit-${NEW_VERSION}.exe.asc` Signature for Windows installer * Run a AV scan over all files on the Windows VM where the files got copied over. From 1ae8fc01b3bfd624a1b1da1389a2500db8cca5a5 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 22 Apr 2021 09:36:51 +0200 Subject: [PATCH 74/77] Autoformat markdown file --- docs/release-process.md | 110 ++++++++++++++++++++++++---------------- 1 file changed, 66 insertions(+), 44 deletions(-) diff --git a/docs/release-process.md b/docs/release-process.md index 3830350136..0bcaa716e1 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -8,10 +8,13 @@ * Update version number in: * [_config.yml](https://github.com/bisq-network/bisq-website/blob/master/_config.yml) - * Update currency list in [market_currency_selector.html](https://github.com/bisq-network/bisq-website/blob/master/_includes/market_currency_selector.html) (use [MarketsPrintTool](https://github.com/bisq-network/bisq/blob/master/desktop/src/test/java/bisq/desktop/MarketsPrintTool.java) - to create HTML content). + * Update currency list + in [market_currency_selector.html](https://github.com/bisq-network/bisq-website/blob/master/_includes/market_currency_selector.html) ( + use [MarketsPrintTool](https://github.com/bisq-network/bisq/blob/master/desktop/src/test/java/bisq/desktop/MarketsPrintTool.java) + to create HTML content). ### Bisq maintainers, suggestion for writing release notes + To be able to create release notes before you make the final release tag, you can temporarily create a local tag and remove it afterwards again. @@ -30,32 +33,36 @@ Generate list of authors: 2. Prepare a short version of the release notes for the in-app update popup ### Basic preparations -For releasing a new Bisq version you'll need Linux, Windows and macOS. -You can use a virtualization solution like [VirtualBox](https://www.virtualbox.org/wiki/Downloads) for this purpose. + +For releasing a new Bisq version you'll need Linux, Windows and macOS. You can use a virtualization solution +like [VirtualBox](https://www.virtualbox.org/wiki/Downloads) for this purpose. #### VirtualBox recommended configuration + Although performance of VMs might vary based on your hardware configuration following setup works pretty well on macOS. -Use VirtualBox > 6.1 -with following configuration: +Use VirtualBox > 6.1 with following configuration: * System > Motherboard > Base Memory: 4096 MB * System > Processor > Processor(s): 2 CPUs - * System > Processor > Execution Cap: 90% - * Display > Screen > Video Memory: 128 MB - * Display > Screen > Scale Factor: 200% - * Display > Screen > HiDPI Support: Use unscaled HiDPI Output (checked) - * Display > Screen > Acceleration: Enable 3D acceleration (checked) +* System > Processor > Execution Cap: 90% +* Display > Screen > Video Memory: 128 MB +* Display > Screen > Scale Factor: 200% +* Display > Screen > HiDPI Support: Use unscaled HiDPI Output (checked) +* Display > Screen > Acceleration: Enable 3D acceleration (checked) ##### Windows VM + * Windows 10 64bit * Recommended virtual disk size: 55 GB ##### Linux VM + * Ubuntu 16.04.4 64bit * Recommended virtual disk size: 25 GB ##### macOS VM + * macOS X 10.11 (El Capitan) 64bit * Recommended virtual disk size: 40 GB @@ -79,13 +86,15 @@ certificate and provisioning file before running the build. 1. Make sure all version numbers are updated (update version variables and run [replace_version_number.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/replace_version_number.sh)) . + 2. Set environment variables to ~/.profile file or the like... (one time effort) - - `BISQ_GPG_USER`: e.g. export BISQ_GPG_USER=manfred@bitsquare.io - - `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system - - `BISQ_PACKAGE_SIGNING_IDENTITY`: e.g. "Developer ID Application: Christoph Atteneder (WQT93T6D6C)" - - `BISQ_PRIMARY_BUNDLE_ID`: e.g. "network.bisq.CAT" - - `BISQ_PACKAGE_NOTARIZATION_AC_USERNAME`: your Apple developer email address - - `BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER`: Your developer ID (e.g. WQT93T6D6C) + * `BISQ_GPG_USER`: e.g. export BISQ_GPG_USER=manfred@bitsquare.io + * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + * `BISQ_PACKAGE_SIGNING_IDENTITY`: e.g. "Developer ID Application: Christoph Atteneder (WQT93T6D6C)" + * `BISQ_PRIMARY_BUNDLE_ID`: e.g. "network.bisq.CAT" + * `BISQ_PACKAGE_NOTARIZATION_AC_USERNAME`: your Apple developer email address + * `BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER`: Your developer ID (e.g. WQT93T6D6C) + 3. Run `./gradlew --console=plain packageInstallers` Build output expected in shared folder: @@ -100,8 +109,10 @@ Build output expected in shared folder: #### Linux 1. Checkout the release tag in your VM + 2. Set environment variables to ~/.profile file or the like... (one time effort) - - `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + 3. Run `./gradlew --console=plain packageInstallers` Build output expected: @@ -117,8 +128,10 @@ Build output expected: To be able to generate a signed binary you have to apply and install a developer certificate before running the build. 1. Checkout the release tag in your VM + 2. Set environment variables to ~/.profile file or the like... (one time effort) - - `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + 3. Run `./gradlew --console=plain packageInstallers` Build output expected: @@ -147,23 +160,28 @@ Build output expected: 11. `Bisq-64bit-${NEW_VERSION}.exe` Windows installer 12. `Bisq-64bit-${NEW_VERSION}.exe.asc` Signature for Windows installer - * Run a AV scan over all files on the Windows VM where the files got copied over. +* Run a AV scan over all files on the Windows VM where the files got copied over. ### Final test - * Make at least one mainnet test trade with some exotic currency to not interfere with real traders. +* Make at least one mainnet test trade with some exotic currency to not interfere with real traders. ### Tag and push release to master If all was successful: - * commit changes of new version number (update version number for release of e.g. v1.5.0) - * create tag for the release +* commit changes of new version number (update version number for release of e.g. v1.5.0) +* create tag for the release + ``` git tag -s v(new version, e.g. 1.5.0) -m"Release v(new version, e.g. 1.5.0)" ``` - * Revert back to SNAPSHOT where necessary (change version variable (e.g. 1.5.0) in shell script [insert_snapshot_version.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/insert_snapshot_version.sh) and run it) and commit these changes. - * Push all commits to master including the new tag + +* Revert back to SNAPSHOT where necessary (change version variable (e.g. 1.5.0) in shell + script [insert_snapshot_version.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/insert_snapshot_version.sh) + and run it) and commit these changes. +* Push all commits to master including the new tag + ``` git push --tags origin master ``` @@ -172,21 +190,24 @@ If all was successful: #### Upload preparations - * Check the fingerprint of the pgp key which was used for signing in signingkey.asc (e.g. 29CDFD3B for Christoph Atteneder) - * Add all files including signingkey.asc and the gpg pub keys to GitHub release page - * Check all uploaded files with [virustotal.com](https://www.virustotal.com) - * Select the release tag as the source for the GitHub release. - * Release on GitHub +* Check the fingerprint of the pgp key which was used for signing in signingkey.asc (e.g. 29CDFD3B for Christoph + Atteneder) +* Add all files including signingkey.asc and the gpg pub keys to GitHub release page +* Check all uploaded files with [virustotal.com](https://www.virustotal.com) +* Select the release tag as the source for the GitHub release. +* Release on GitHub #### Post GitHub release - * Apply “A newer version is already available! Please don’t use this version anymore.” to old GitHub releases. - * Merge the webpage PR and check if they got deployed properly. - * Start the Alert sender app (CMD + M) remove the old version and send the update message. - Check the checkbox for update, set the version number (e.g. 0.9.4) and add the short version of the release notes. - * After sending the Update message leave it running for about 1 minute to give time for good propagation. - * Make a backup of that alert sender app data directory - * To support source code signature verification for Arch Linux download `Source code (tar.gz)`, sign it and - upload signature. + +* Apply “A newer version is already available! Please don’t use this version anymore.” to old GitHub releases. +* Merge the webpage PR and check if they got deployed properly. +* Start the Alert sender app (CMD + M) remove the old version and send the update message. Check the checkbox for + update, set the version number (e.g. 0.9.4) and add the short version of the release notes. +* After sending the Update message leave it running for about 1 minute to give time for good propagation. +* Make a backup of that alert sender app data directory +* To support source code signature verification for Arch Linux download `Source code (tar.gz)`, sign it and upload + signature. + ``` # sign source code bundle gpg --digest-algo SHA256 --local-user $BISQ_GPG_USER --output bisq-${NEW_VERSION}.tar.gz.asc --detach-sig --armor bisq-${NEW_VERSION}.tar.gz @@ -197,9 +218,10 @@ If all was successful: ### Announce the release - * Forum - * Keybase (#general channel) - * Twitter - * Optionally reddit /r/Bisq - * Notify @freimair so that he can start updating [the Arch User Repository](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bisq-git) - * Celebrate +* Forum +* Keybase (#general channel) +* Twitter +* Optionally reddit /r/Bisq +* Notify @freimair so that he can start + updating [the Arch User Repository](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bisq-git) +* Celebrate From 1f44ffbe4d838a622cd5a1952918435be24cb9ad Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 22 Apr 2021 09:52:22 +0200 Subject: [PATCH 75/77] Fix "missing new line after list item complaint" --- docs/release-process.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/release-process.md b/docs/release-process.md index 0bcaa716e1..df165bddcd 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -200,11 +200,16 @@ If all was successful: #### Post GitHub release * Apply “A newer version is already available! Please don’t use this version anymore.” to old GitHub releases. + * Merge the webpage PR and check if they got deployed properly. + * Start the Alert sender app (CMD + M) remove the old version and send the update message. Check the checkbox for update, set the version number (e.g. 0.9.4) and add the short version of the release notes. + * After sending the Update message leave it running for about 1 minute to give time for good propagation. + * Make a backup of that alert sender app data directory + * To support source code signature verification for Arch Linux download `Source code (tar.gz)`, sign it and upload signature. From 42e049c8f85f9045d98c1769c81c2ca1b7a939a8 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 22 Apr 2021 10:01:24 +0200 Subject: [PATCH 76/77] Fix remaining formatting issues --- docs/release-process.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/release-process.md b/docs/release-process.md index df165bddcd..710a63523f 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -180,6 +180,7 @@ If all was successful: * Revert back to SNAPSHOT where necessary (change version variable (e.g. 1.5.0) in shell script [insert_snapshot_version.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/insert_snapshot_version.sh) and run it) and commit these changes. + * Push all commits to master including the new tag ``` @@ -192,9 +193,13 @@ If all was successful: * Check the fingerprint of the pgp key which was used for signing in signingkey.asc (e.g. 29CDFD3B for Christoph Atteneder) + * Add all files including signingkey.asc and the gpg pub keys to GitHub release page + * Check all uploaded files with [virustotal.com](https://www.virustotal.com) + * Select the release tag as the source for the GitHub release. + * Release on GitHub #### Post GitHub release @@ -224,9 +229,14 @@ If all was successful: ### Announce the release * Forum + * Keybase (#general channel) + * Twitter + * Optionally reddit /r/Bisq + * Notify @freimair so that he can start updating [the Arch User Repository](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bisq-git) + * Celebrate From 412d485c05786a16eda7d25791ed5535f863236d Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 22 Apr 2021 10:12:04 +0200 Subject: [PATCH 77/77] Fix intentions caused by autoformat before commit --- docs/release-process.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/release-process.md b/docs/release-process.md index 710a63523f..77c5cb3300 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -88,12 +88,12 @@ certificate and provisioning file before running the build. . 2. Set environment variables to ~/.profile file or the like... (one time effort) - * `BISQ_GPG_USER`: e.g. export BISQ_GPG_USER=manfred@bitsquare.io - * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system - * `BISQ_PACKAGE_SIGNING_IDENTITY`: e.g. "Developer ID Application: Christoph Atteneder (WQT93T6D6C)" - * `BISQ_PRIMARY_BUNDLE_ID`: e.g. "network.bisq.CAT" - * `BISQ_PACKAGE_NOTARIZATION_AC_USERNAME`: your Apple developer email address - * `BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER`: Your developer ID (e.g. WQT93T6D6C) + * `BISQ_GPG_USER`: e.g. export BISQ_GPG_USER=manfred@bitsquare.io + * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + * `BISQ_PACKAGE_SIGNING_IDENTITY`: e.g. "Developer ID Application: Christoph Atteneder (WQT93T6D6C)" + * `BISQ_PRIMARY_BUNDLE_ID`: e.g. "network.bisq.CAT" + * `BISQ_PACKAGE_NOTARIZATION_AC_USERNAME`: your Apple developer email address + * `BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER`: Your developer ID (e.g. WQT93T6D6C) 3. Run `./gradlew --console=plain packageInstallers` @@ -111,7 +111,7 @@ Build output expected in shared folder: 1. Checkout the release tag in your VM 2. Set environment variables to ~/.profile file or the like... (one time effort) - * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system + * `BISQ_SHARED_FOLDER`: shared folder that is used between your VM host and client system 3. Run `./gradlew --console=plain packageInstallers`

2^5(VE;^m8)vcif6J@}?Jz#%# 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%0A^0wgT`BZ7HuM%QI&72~ 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 z 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%0AfN@hw{Hk( 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 z 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 IKOZgsA2#DVg#Z8m literal 0 HcmV?d00001 From 8b5c6d86048077103c684de961bdd5fcc1777908 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 14 Jan 2021 10:27:02 +0100 Subject: [PATCH 54/77] Remove license confirmation prompt As we already have a TAC popup in place on first application launch --- desktop/package/package.gradle | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 95e5123fa5..448695df9c 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -234,13 +234,10 @@ task packageInstallers { " --main-class bisq.desktop.app.BisqAppMain" + " --java-options -Xss1280k" + " --java-options -XX:MaxRAM=4g" + - " --java-options -Djava.net.preferIPv4Stack=true" + + " --java-options -Djava.net.preferIPv4Stack=true" // Warning: this will cause guice reflection exceptions and lead to issues with the guice internal cache // resulting in the UI not loading // " --java-options -Djdk.module.illegalAccess=deny" + - - // Options for creating the application package - " --license-file \"${licenseFilePath}\"" ) if (Os.isFamily(Os.FAMILY_WINDOWS)) { From 74efd53c6b01ff5d3e9d43996f80a96dae49ceeb Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 14 Jan 2021 10:28:06 +0100 Subject: [PATCH 55/77] Extract re-used arguments --- desktop/package/package.gradle | 35 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 448695df9c..2331539632 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -216,14 +216,18 @@ task packageInstallers { String appVersion = version.replaceAll("-SNAPSHOT", "") println "Packaging Bisq version ${appVersion}" + String appDescription = 'A decentralized bitcoin exchange network.' + String appCopyright = '© 2021 Bisq' + String appNameAndVendor = 'Bisq' + String commonOpts = ( // Generic options " --dest \"${binariesFolderPath}\"" + - " --name Bisq" + - " --description \"A decentralized bitcoin exchange network.\"" + + " --name ${appNameAndVendor}" + + " --description \"${appDescription}\"" + " --app-version ${appVersion}" + - " --copyright \"© 2020 Bisq\"" + - " --vendor Bisq" + + " --copyright \"${appCopyright}\"" + + " --vendor ${appNameAndVendor}" + " --temp \"${jpackageTempDir}\"" + // Options for creating the application image @@ -317,19 +321,7 @@ task packageInstallers { // macOS step 2: Build app-image using the shadow jar above (containing signed dylibs) // NOTE: licensing file cannot be added at this point only when creating the dmg later executeCmd(jPackageFilePath + - " --dest \"${binariesFolderPath}\"" + - " --name Bisq" + - " --description \"A decentralized bitcoin exchange network.\"" + - " --app-version ${appVersion}" + - " --copyright \"© 2020 Bisq\"" + - " --vendor Bisq" + - " --temp \"${jpackageTempDir}\"" + - " --input ${fatJarFolderPath}" + - " --main-jar ${mainJarName}" + - " --main-class bisq.desktop.app.BisqAppMain" + - " --java-options -Xss1280k" + - " --java-options -XX:MaxRAM=4g" + - " --java-options -Djava.net.preferIPv4Stack=true" + + commonOpts + macOpts + " --type app-image") @@ -360,14 +352,13 @@ task packageInstallers { // macOS step 4: Package the app-image into a dmg bundle executeCmd(jPackageFilePath + " --dest \"${binariesFolderPath}\"" + - " --name Bisq" + - " --description \"A decentralized bitcoin exchange network.\"" + + " --name ${appNameAndVendor}" + + " --description \"${appDescription}\"" + " --app-version ${appVersion}" + - " --copyright \"© 2020 Bisq\"" + - " --vendor Bisq" + + " --copyright \"${appCopyright}\"" + + " --vendor ${appNameAndVendor}" + " --temp \"${jpackageTempDir}\"" + " --app-image ${bisqAppImageFullPath}" + - " --license-file \"${licenseFilePath}\"" + " --mac-sign" + macOpts + " --type dmg") From 48ef1453f98ec7241ff4fc4ff17a511068481d4a Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 14 Jan 2021 10:28:34 +0100 Subject: [PATCH 56/77] Move primary bundle ID into environment variable --- desktop/package/package.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 2331539632..e8b3123fa1 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -379,8 +379,10 @@ task packageInstallers { // See https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow#3087734 String envVariableAcUsername = "$System.env.BISQ_PACKAGE_NOTARIZATION_AC_USERNAME" String envVariableAscProvider = "$System.env.BISQ_PACKAGE_NOTARIZATION_ASC_PROVIDER" + // e.g. network.bisq.CAT is used when binaries are built by @ripcurlx + String envVariablePrimaryBundleId = "$System.env.BISQ_PRIMARY_BUNDLE_ID" def uploadForNotarizationOutput = executeCmd("xcrun altool --notarize-app" + - " --primary-bundle-id 'network.bisq.CAT'" + + " --primary-bundle-id '${envVariablePrimaryBundleId}'" + " --username '${envVariableAcUsername}'" + " --password '@keychain:AC_PASSWORD'" + " --asc-provider '${envVariableAscProvider}'" + From 7cf741033c357178a2a1e144fc3525713d68eb94 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 14 Jan 2021 10:29:17 +0100 Subject: [PATCH 57/77] Replace non-existing contact email To make it clear that there will be no response when using it --- desktop/package/package.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index e8b3123fa1..1b186cd316 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -448,7 +448,7 @@ task packageInstallers { // Package deb executeCmd(jPackageFilePath + commonOpts + linuxOpts + - " --linux-deb-maintainer contact@bisq.network" + + " --linux-deb-maintainer noreply@bisq.network" + " --type deb") // Clean jpackage temp folder, needs to be empty for the next packaging step (rpm) From 2277b6e835128386c4244f5041b0b6871093a05a Mon Sep 17 00:00:00 2001 From: cd2357 Date: Mon, 1 Feb 2021 18:03:26 +0100 Subject: [PATCH 58/77] Update travis config to Java 11 Update the JDK used by Travis to JDK 11. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 444027cb0e..c214da055b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: java jdk: - - openjdk14 + - openjdk11 cache: directories: From c03ff3c35cf8391c0b6ed8508f4226a5925d4cab Mon Sep 17 00:00:00 2001 From: cd2357 Date: Mon, 1 Feb 2021 18:41:56 +0100 Subject: [PATCH 59/77] Create deterministic jar Convert the fat jar into a deterministic one before it is packaged in the generated installers. --- desktop/package/package.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 1b186cd316..3fe3ccbd23 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -206,6 +206,11 @@ task packageInstallers { into fatJarFolderPath } + // We convert the fat jar into a deterministic one by stripping out comments with date, etc. + // jar file created from https://github.com/ManfredKarrer/tools + executeCmd("sdf") + executeCmd("java -jar \"${project(':desktop').projectDir}/package/tools-1.0.jar\" ${fatJarFolderPath}/${mainJarName}") + // TODO For non-modular applications: use jlink to create a custom runtime containing only the modules required // See jpackager argument documentation: From b7188ecf72732a8aaff1997aaad41c1c55f00928 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Mon, 1 Feb 2021 19:25:50 +0100 Subject: [PATCH 60/77] Save deterministic jar hash Store the SHA-256 of the deterministic jar next to the generated binaries. --- desktop/package/package.gradle | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 3fe3ccbd23..19a32aa1a6 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -208,9 +208,15 @@ task packageInstallers { // We convert the fat jar into a deterministic one by stripping out comments with date, etc. // jar file created from https://github.com/ManfredKarrer/tools - executeCmd("sdf") executeCmd("java -jar \"${project(':desktop').projectDir}/package/tools-1.0.jar\" ${fatJarFolderPath}/${mainJarName}") + // Store deterministic jar SHA-256 + ant.checksum(file: "${fatJarFolderPath}/${mainJarName}", algorithm: 'SHA-256') + copy { + from "${fatJarFolderPath}/${mainJarName}.SHA-256" + into binariesFolderPath + } + // TODO For non-modular applications: use jlink to create a custom runtime containing only the modules required // See jpackager argument documentation: From b231c9644d8e4e9d5f0590beced19e76fdf142fb Mon Sep 17 00:00:00 2001 From: cd2357 Date: Tue, 2 Feb 2021 14:19:13 +0100 Subject: [PATCH 61/77] Change windows binary permissions before signing Explicitly set the permissions on the generated exe binary, which are required by the signtool. --- desktop/package/package.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 19a32aa1a6..f4e78a7834 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -271,6 +271,9 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") + // Set the necessary permissions before calling signtool + executeCmd("attrib -R \"${binariesFolderPath}/Bisq-${appVersion}.exe\"") + // In addition to the groovy quotes around the string, the entire Windows command must also be surrounded // by quotes, plus each path inside the command has to be quoted as well // Reason for this is that the path to the called executable contains spaces From 1808feb6fb99fbeb9af5018c9381b750471ab0fd Mon Sep 17 00:00:00 2001 From: cd2357 Date: Tue, 2 Feb 2021 14:22:26 +0100 Subject: [PATCH 62/77] Surround windows command in quotes Surround entire command in quotes, to avoid issues with cmd parsing for a command with custom flags and space-containing arguments (full path of the exe arg). --- desktop/package/package.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index f4e78a7834..abbbe5c796 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -272,7 +272,7 @@ task packageInstallers { executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") // Set the necessary permissions before calling signtool - executeCmd("attrib -R \"${binariesFolderPath}/Bisq-${appVersion}.exe\"") + executeCmd("\"attrib -R \"${binariesFolderPath}/Bisq-${appVersion}.exe\"\"") // In addition to the groovy quotes around the string, the entire Windows command must also be surrounded // by quotes, plus each path inside the command has to be quoted as well From 1a546b52eb32df969ac5a835cd349dfeed44cfe2 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Thu, 4 Feb 2021 11:57:51 +0100 Subject: [PATCH 63/77] Cleanup Windows comments Remove superfluous comments about the Windows setup. --- desktop/package/package.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index abbbe5c796..9ff1924fea 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -257,9 +257,6 @@ task packageInstallers { if (Os.isFamily(Os.FAMILY_WINDOWS)) { // TODO Found no benefit in using --resource-dir "..package/windows", it has the same outcome as opts below - // Actually using the --resource-dir option caused issues with uninstalling the newly installed Bisq - // Therefore, not using --resource-dir for windows, for now - String windowsOpts = ( " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + " --win-per-user-install" + @@ -267,8 +264,6 @@ task packageInstallers { " --win-shortcut" ) - // TODO How does the current package/windows/Bisq.iss play into this? - executeCmd(jPackageFilePath + commonOpts + windowsOpts + " --type exe") // Set the necessary permissions before calling signtool From 970537495aa0f8569725c8507db11831472e0e59 Mon Sep 17 00:00:00 2001 From: cd2357 Date: Sat, 10 Apr 2021 13:34:49 +0200 Subject: [PATCH 64/77] Add jar lib for Raspberry Pi Include a zip with the relevant libs for running on raspi. Place the zip in the generated binaries folder. --- desktop/package/package.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index 9ff1924fea..d91a54f837 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -227,6 +227,11 @@ task packageInstallers { String appVersion = version.replaceAll("-SNAPSHOT", "") println "Packaging Bisq version ${appVersion}" + // zip jar lib for Raspberry Pi + println "Zipping jar lib for raspberry pi" + ant.zip(basedir: "${project(':desktop').buildDir}/app/lib", + destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip") + String appDescription = 'A decentralized bitcoin exchange network.' String appCopyright = '© 2021 Bisq' String appNameAndVendor = 'Bisq' From 7e6ab7b66252045dd79e2ff5abccabc67bcbb9c4 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 14 Apr 2021 14:55:58 +0200 Subject: [PATCH 65/77] Customize Windows installer --- desktop/package/package.gradle | 11 +- desktop/package/windows/Bisq-setup-icon.bmp | Bin 9294 -> 0 bytes desktop/package/windows/Bisq.iss | 257 ------------------ .../WixUIBannerBmp.bmp} | Bin 154542 -> 114514 bytes .../package/windows/images/WixUIDialogBmp.bmp | Bin 0 -> 615402 bytes desktop/package/windows/main.wxs | 165 +++++++++++ desktop/package/windows/overrides.wxi | 33 +++ 7 files changed, 205 insertions(+), 261 deletions(-) delete mode 100644 desktop/package/windows/Bisq-setup-icon.bmp delete mode 100644 desktop/package/windows/Bisq.iss rename desktop/package/windows/{Bisq-setup-image.bmp => images/WixUIBannerBmp.bmp} (67%) create mode 100644 desktop/package/windows/images/WixUIDialogBmp.bmp create mode 100644 desktop/package/windows/main.wxs create mode 100644 desktop/package/windows/overrides.wxi diff --git a/desktop/package/package.gradle b/desktop/package/package.gradle index d91a54f837..ea04e7dc2b 100644 --- a/desktop/package/package.gradle +++ b/desktop/package/package.gradle @@ -228,9 +228,9 @@ task packageInstallers { println "Packaging Bisq version ${appVersion}" // zip jar lib for Raspberry Pi - println "Zipping jar lib for raspberry pi" + /* println "Zipping jar lib for raspberry pi" ant.zip(basedir: "${project(':desktop').buildDir}/app/lib", - destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip") + destfile: "${binariesFolderPath}/jar-lib-for-raspberry-pi-${appVersion}.zip")*/ String appDescription = 'A decentralized bitcoin exchange network.' String appCopyright = '© 2021 Bisq' @@ -253,8 +253,8 @@ task packageInstallers { " --main-jar ${mainJarName}" + " --main-class bisq.desktop.app.BisqAppMain" + " --java-options -Xss1280k" + - " --java-options -XX:MaxRAM=4g" + - " --java-options -Djava.net.preferIPv4Stack=true" + " --java-options '-XX:MaxRAM=4g'" + + " --java-options '-Djava.net.preferIPv4Stack=true'" // Warning: this will cause guice reflection exceptions and lead to issues with the guice internal cache // resulting in the UI not loading // " --java-options -Djdk.module.illegalAccess=deny" + @@ -264,6 +264,9 @@ task packageInstallers { // TODO Found no benefit in using --resource-dir "..package/windows", it has the same outcome as opts below String windowsOpts = ( " --icon ${project(':desktop').projectDir}/package/windows/Bisq.ico" + + " --resource-dir \"${project(':desktop').projectDir}/package/windows\"" + + " --verbose" + + " --win-dir-chooser" + " --win-per-user-install" + " --win-menu" + " --win-shortcut" diff --git a/desktop/package/windows/Bisq-setup-icon.bmp b/desktop/package/windows/Bisq-setup-icon.bmp deleted file mode 100644 index 98ee6b3e34fc7bc97173039b45f80ba3d0ed887e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9294 zcmeI1`B#)x7{}`$=;!``<{hm(ok$rFvA`vaw1nIu#Ztu7QfYIEcFSYgNn1{P9b2uF z3$qU+IN&gB0|O!mDiF#J!|E^$i+$gD;rep#op)xCI;T^>aGrbT-sgVa=RWtj&%JN_ z@)dX8=KqPr|5^BGCO)^{cBj8y{CDmS=`&ezzp`o?^P9rZCImlb4+;j1vU-zP=qRQ3wdv5i7zSq4Icf?-4Ctna_HD)(Uwtz^c@ z*?hzjgEhXdbmzX3ozL3WW9|D_nV|51c>HvGO1HN&5Nar#jRW;7bK;ff8U~Ek&3>iy zIjoMJVYhs^eqS%b!mG}V82vp8O0d2*pIbxqC3=E#c6mG2<|ZoWhm|nIhP;)LA-une)fX-zY%BGRv(C^V-g^YL#nRJo&7oO_C&<1cX0A%*?U-AFSiZ73oVes%Gv7?;fICFaP|&O){gskt`Tlu^8e@&N<~ zgb30`5(04|XMp2zTnLZ`;luL>M#n}eRZ{WGi$|l+sKu~}o!zXCHO{H%F5|Y8D&etT z*M2gwcOdZU#g4YtY^qBj&R0t_xSk20L?S^ckr$8GAKTlT~lCFL$Ye&q+Y4VM#s9%qPPJrj^y?N1GdkWymy$M73$HYgFGKC zL(k>p8dy%87nYgkM`{^Pow~3+U)~q;iN;@7+mtU#o{Xh^mRY3o#&4Fr5@l73 zElonaIl|GNC;v96%yJ_9awgp%AO(_Z%WbuYdGh4m2hQIcev~($(|au%yN;94OyEHqMXyQm>AoHsoDV7Jqw_keD4CR_I_k z7wYdLvq@-S&zFn0%Q+#}_Ew*0{N?MqPv8TiVh!ozN!7x(yZ?oYG)fL z)Uce<+PeuJ5wH)YpG#5DbBkZKc&<6Sid^o}zTqiLm8fMoAJ2|wcOoq6Rc9Wasml#A zx_h`At8a__NhD@cnumR}tgDzbAOg$zhVvzM9f3SfAJOh0zODN#!4eH5Hc!S9UTTW! z^Yu}ESm`dxv`x%+Z|CWDs^Z zo~F8oRYdx@G}Wr(T>9qXwSODhaU$UYBHDBJQ(OH<6pg zEES?+(_jOukjsf9At$f%yJ)!kGBx6R6`2~#&0Xmxp`RRU>V?9sR2Qkp<%Ab4GR|eA z6W~9-aEPlX#LD)e*2k>zoOt5rgsJmdbGWLwoM?H#wI917^}NutF)vwpf0RaP9IQwB zgnj2iPbDrPJ*IxGa@#C0FCcM{enfU{H!baQZxBOjNNalqVJ zv?*3U2S$UFYqa83NluGd-t0`XDaLSbq;5(UfyUaVKjh8iav)B$Ip}&F0faIsrv8tH zpXC~eJm?!Za^c{_$#F8@!;^}@2KDDPACZ<2j8{+lQ75JhGxdaZX`sUq+ADB&c-j&z z3#bXgQzIJ4N0j7BcUfwFlDPT^p?p#MukyaHn-XxW%|m{M1$;R zy%h6j+O5mX%Hk6rq5q47RxM9Ti8h_D6&R!u!4$7YHE{urS{#-%BxITd{YX#Tyfh^Z;aQLkn4j5%#ao%0~SUZGL6Lj8*5**Lptq_lRR0N=46p9+XP}1oj z3d0gY=akf*{`0q`7EQqT!<%l2Jj$%bn+04Vg@s2Nhs%kM4gFX4Id^IBW(_MSG&jJE zr{*QOyl;afS!t4H3xv ekyPOA7e;?D-eM5>|fz diff --git a/desktop/package/windows/Bisq.iss b/desktop/package/windows/Bisq.iss deleted file mode 100644 index 796c3ec370..0000000000 --- a/desktop/package/windows/Bisq.iss +++ /dev/null @@ -1,257 +0,0 @@ -;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 for the unicode custom messages to be displayed properly - -#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={#AppVersion} -AppVerName=Bisq v{#AppVersion} -AppPublisher=Bisq -AppComments={cm:AppComments} -AppCopyright=Copyright (C) {#AppCopyrightYear} -AppPublisherURL=https://bisq.network -AppSupportURL=https://bisq.community -;AppUpdatesURL=https://bisq.network/downloads -VersionInfoVersion={#FileVersion} -VersionInfoDescription=Bisq Setup -VersionInfoCopyright=Copyright (C) {#AppCopyrightYear} -DefaultDirName={code:GetDefaultDirName} -DefaultGroupName=Bisq -DisableStartupPrompt=Yes -DisableWelcomePage=No -DisableDirPage=No -DisableProgramGroupPage=Yes -DisableReadyPage=No -DisableFinishedPage=No -;Optional License -LicenseFile= -;Windows 7 with Service Pack 1 or above -MinVersion=0,6.1.7601 -OutputBaseFilename=Bisq-{#AppVersion} -Compression=lzma -SolidCompression=yes -PrivilegesRequired=lowest -SetupIconFile=Bisq\Bisq.ico -UninstallDisplayIcon={app}\Bisq.ico -UninstallDisplayName=Bisq -WizardImageFile={#SourceDir}\Bisq-setup-image.bmp -WizardImageStretch=No -WizardSmallImageFile=Bisq-setup-icon.bmp -ArchitecturesInstallIn64BitMode=x64 -ShowLanguageDialog=No - -[Languages] -Name: en; MessagesFile: "compiler:Default.isl" -Name: de; MessagesFile: "compiler:Languages\German.isl" -Name: fr; MessagesFile: "compiler:Languages\French.isl" -Name: sp; MessagesFile: "compiler:Languages\Spanish.isl" - -[CustomMessages] -en.AppComments=A decentralized bitcoin exchange network -en.AppIsRunning=Bisq is running, please close it and run setup again. -en.SpecialAppPath=Your default install path appears to have special characters: %1%n%nThis may prevent Bisq from starting. See https://github.com/bisq-network/bisq/issues/3605 for more information.%n%nYou can either cancel this installation and install as a user without special characters in the username, or proceed with this installation using a different install path that does not contain special characters (e.g. %2). -de.AppComments=Ein dezentrales bitcoin-Austauschnetz -de.AppIsRunning=Bisq läuft, bitte schließen Sie es und führen Sie das Setup erneut aus. -de.SpecialAppPath=Ihr Standardinstallationspfad scheint Sonderzeichen zu enthalten: %1%n%nDies kann den Start von Bisq verhindern. Weitere Informationen finden Sie unter https://github.com/bisq-network/bisq/issues/3605.%n%nSie können diese Installation abbrechen und als Benutzer ohne Sonderzeichen im Benutzernamen installieren oder mit dieser Installation fortfahren, indem Sie einen anderen Installationspfad verwenden, der keine Sonderzeichen enthält (z. B. %2). -fr.AppComments=Un réseau d’échange bitcoin décentralisé -fr.AppIsRunning=Bisq est en cours d'exécution, fermez-le et exécutez à nouveau le programme d'installation. -fr.SpecialAppPath=Votre chemin d'installation par défaut semble comporter des caractères spéciaux: %1%n%nCela peut empêcher le démarrage de Bisq. Voir https://github.com/bisq-network/bisq/issues/3605 pour plus d'informations.%n%nVous pouvez annuler cette installation et l'installer en tant qu'utilisateur sans caractères spéciaux dans le nom d'utilisateur ou procéder à cette installation en utilisant un chemin d'installation différent ne contenant pas de caractères spéciaux (par exemple, %2). -sp.AppComments=Una red descentralizada de intercambio de bitcoin -sp.AppIsRunning=Bisq se está ejecutando, ciérrelo y vuelva a ejecutar la configuración. -sp.SpecialAppPath=Su ruta de instalación predeterminada parece tener caracteres especiales: %1%n%nEsto puede evitar que Bisq se inicie. Consulte https://github.com/bisq-network/bisq/issues/3605 para obtener más información.%n%nPuede cancelar esta instalación e instalar como usuario sin caracteres especiales en el nombre de usuario, o continuar con esta instalación utilizando una ruta de instalación diferente que no contenga caracteres especiales (por ejemplo, %2). - -[Files] -Source: "Bisq\Bisq.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "Bisq\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs - -[Icons] -Name: "{group}\Bisq"; Filename: "{app}\Bisq.exe"; IconFilename: "{app}\Bisq.ico" -Name: "{userdesktop}\Bisq"; Filename: "{app}\Bisq.exe"; IconFilename: "{app}\Bisq.ico" - -[Run] -Filename: "{app}\Bisq.exe"; Description: "{cm:LaunchProgram,Bisq}"; Flags: nowait postinstall skipifsilent - -[Code] -procedure DirectoryCopy(SourcePath, DestPath: string); -var - FindRec: TFindRec; - SourceFilePath: string; - DestFilePath: string; -begin - if FindFirst(SourcePath + '\*', FindRec) then - begin - try - repeat - if (FindRec.Name <> '.') and (FindRec.Name <> '..') then - begin - SourceFilePath := SourcePath + '\' + FindRec.Name; - DestFilePath := DestPath + '\' + FindRec.Name; - if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then - begin - if FileCopy(SourceFilePath, DestFilePath, False) then - begin - Log(Format('Copied %s to %s', [SourceFilePath, DestFilePath])); - end - else - begin - Log(Format('Failed to copy %s to %s', [SourceFilePath, DestFilePath])); - end; - end - else - begin - if DirExists(DestFilePath) or CreateDir(DestFilePath) then - begin - Log(Format('Created %s', [DestFilePath])); - DirectoryCopy(SourceFilePath, DestFilePath); - end - else - begin - Log(Format('Failed to create %s', [DestFilePath])); - end; - end; - end; - until not FindNext(FindRec); - finally - FindClose(FindRec); - end; - end - else - begin - Log(Format('Failed to list %s', [SourcePath])); - end; -end; - -//Delete old app directory to prevent issues during update -procedure DeleteOldAppDataDirectory; -var - entry: String; -begin - entry := ExpandConstant('{localappdata}') + '\Bisq\'; - if DirExists(entry) then begin - DelTree(entry, true, true, true); - end; -end; - -procedure DeleteTorFiles; -var - mainnetDir: String; - torDir: String; - hiddenServiceDir: String; - hiddenServiceBackupDir : String; -begin - mainnetDir := ExpandConstant('{userappdata}') + '\Bisq\btc_mainnet'; - torDir := mainnetDir + '\tor\*'; - hiddenServiceDir := mainnetDir + '\tor\hiddenservice'; - hiddenServiceBackupDir := mainnetDir + '\hiddenservice_backup'; - if DirExists(hiddenServiceDir) then begin - if DirExists(hiddenServiceBackupDir) then begin - DelTree(hiddenServiceBackupDir, true, true, true); - end; - CreateDir(hiddenServiceBackupDir); - DirectoryCopy(hiddenServiceDir, hiddenServiceBackupDir); - DelTree(torDir, false, true, true); - CreateDir(hiddenServiceDir); - DirectoryCopy(hiddenServiceBackupDir, hiddenServiceDir); - end; -end; - -function PrepareToInstall(var NeedsRestart: Boolean): String; -begin - DeleteOldAppDataDirectory; - DeleteTorFiles; - Result := ''; -end; - -function IsAppRunning(): Boolean; -var - FSWbemLocator : Variant; - FWMIService : Variant; - FWbemObjectSet : Variant; - ExecutablePath : String; -begin - Result := False; - ExecutablePath := Format('%s\Bisq\Bisq.exe', [ExpandConstant('{localappdata}')]) - StringChangeEx(ExecutablePath, '\', '\\', True); - try - FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator'); - FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', ''); - FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where ExecutablePath="%s"', [ExecutablePath])); - Result := (FWbemObjectSet.Count > 0); - FWbemObjectSet := Unassigned; - FWMIService := Unassigned; - FSWbemLocator := Unassigned; - except - end; -end; - -function isPathSpecial(Path : String): Boolean; -var - I : Integer; -begin - Result := not - ((Length(Path) >= 3) and - (Path[1] >= 'A') and (Path[1] <= 'Z') and - (Path[2] = ':') and - (Path[3] = '\')); - if not Result then - begin - for I := 4 to Length(Path) do - begin - case Path[I] of - '0'..'9', 'A'..'Z', 'a'..'z', '\', ' ', '.', '-', '_', '(', ')': - else - begin - Result := True; - Break; - end; - end; - end; - end; -end; - -function InitializeSetup(): Boolean; -begin - Result := True; - if IsAppRunning() then begin - MsgBox(ExpandConstant('{cm:AppIsRunning}'), mbCriticalError, MB_OK); - Result := False; - end; -end; - -function InitializeUninstall(): Boolean; -begin - Result := True; - if IsAppRunning() then - begin - MsgBox(ExpandConstant('{cm:AppIsRunning}'), mbCriticalError, MB_OK); - Result := False; - end; -end; - -procedure CurPageChanged(CurPageID: Integer); -var - DefaultAppPath : String; - AppPath : String; -begin - DefaultAppPath := ExpandConstant('{localappdata}'); - if (CurPageID = wpSelectDir) and isPathSpecial(DefaultAppPath) then - begin - AppPath := ExpandConstant('{code:GetDefaultDirName}'); - MsgBox(FmtMessage(CustomMessage('SpecialAppPath'), [DefaultAppPath, AppPath]), mbInformation, MB_OK); - end; -end; - -function GetDefaultDirName(Param: String): String; -begin - Result := Format('%s\Bisq', [ExpandConstant('{localappdata}')]); - if isPathSpecial(Result) then - begin - Result := Format('%s\Bisq', [ExpandConstant('{%ProgramW6432}')]); - end; -end; diff --git a/desktop/package/windows/Bisq-setup-image.bmp b/desktop/package/windows/images/WixUIBannerBmp.bmp similarity index 67% rename from desktop/package/windows/Bisq-setup-image.bmp rename to desktop/package/windows/images/WixUIBannerBmp.bmp index bfa68915528a1605aa1ea4f2b790c791547a7787..8af4e9b770f447b57dc9f45b53dc52332b970c29 100644 GIT binary patch literal 114514 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 H>?!bnI_J)n literal 154542 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