~ruther/guix-local

fc891f004aff40e34c23fc101aeea5d05e7555ae — Ricardo Wurmus 2 years ago a252ab6
gnu: openjdk10: Fix time bomb in ‘GenerateCurrencyData.java’.

Fixes <https://issues.guix.gnu.org/68333>, as well.
This is a companion to commit 5c0f77f4241c9beac0c82deae946bfdc70b49ff0.

* gnu/packages/java.scm (openjdk10)[source]: Add patch.
* gnu/packages/patches/openjdk-currency-time-bomb2.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Change-Id: I42fc14d305883f672cd6764a0ee6462852e41a5b
3 files changed, 16 insertions(+), 1 deletions(-)

M gnu/local.mk
M gnu/packages/java.scm
A gnu/packages/patches/openjdk-currency-time-bomb2.patch
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1744,6 1744,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/openbox-python3.patch			\
  %D%/packages/patches/opencolorio-fix-build-with-gcc11.patch	\
  %D%/packages/patches/openjdk-currency-time-bomb.patch		\
  %D%/packages/patches/openjdk-currency-time-bomb2.patch	\
  %D%/packages/patches/openjdk-9-pointer-comparison.patch       \
  %D%/packages/patches/openjdk-9-setsignalhandler.patch         \
  %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\

M gnu/packages/java.scm => gnu/packages/java.scm +2 -1
@@ 1154,7 1154,8 @@ new Date();"))
              (patches (search-patches
                        "openjdk-10-idlj-reproducibility.patch"
                        "openjdk-10-pointer-comparison.patch"
                        "openjdk-10-setsignalhandler.patch"))))
                        "openjdk-10-setsignalhandler.patch"
                        "openjdk-currency-time-bomb2.patch"))))
    (arguments
     (substitute-keyword-arguments (package-arguments openjdk9)
       ((#:phases phases)

A gnu/packages/patches/openjdk-currency-time-bomb2.patch => gnu/packages/patches/openjdk-currency-time-bomb2.patch +13 -0
@@ 0,0 1,13 @@
Fix a time bomb present in the OpenJDK tools.

--- a/make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+++ b/make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
@@ -285,7 +285,7 @@ public class GenerateCurrencyData {
             String timeString = currencyInfo.substring(4, length - 4);
             long time = format.parse(timeString).getTime();
             if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) {
-                throw new RuntimeException("time is more than 10 years from present: " + time);
+                System.err.println("note: time is more than 10 years from \"present\": " + time);
             }
             specialCaseCutOverTimes[specialCaseCount] = time;
             specialCaseOldCurrencies[specialCaseCount] = oldCurrency;