summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2024-01-10 15:27:47 +0100
committerLudovic Courtès <ludo@gnu.org>2024-01-10 16:42:03 +0100
commit5c0f77f4241c9beac0c82deae946bfdc70b49ff0 (patch)
tree11f7eae089d35528dd11896180250079bebb1444
parenta126e8120d30a3f66149f307a922acd77cde9d5a (diff)
downloadguix-5c0f77f4241c9beac0c82deae946bfdc70b49ff0.tar.gz
gnu: icedtea: Fix time bomb in ‘GenerateCurrencyData.java’.
Fixes <https://issues.guix.gnu.org/68333>.

* gnu/packages/java.scm (icedtea-7)[drop]: Add optional ‘patches’
parameter and honor it.
[native-inputs]: Add patch for “jdk-drop”.
(icedtea-8): Likewise.
* gnu/packages/patches/jdk-currency-time-bomb.patch,
gnu/packages/patches/jdk-currency-time-bomb2.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.

Change-Id: I3b4cf562ce4bedb87ce0e7c289e431fbb0dbb6f8
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/java.scm16
-rw-r--r--gnu/packages/patches/jdk-currency-time-bomb.patch13
-rw-r--r--gnu/packages/patches/jdk-currency-time-bomb2.patch13
4 files changed, 38 insertions, 6 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 62242d8c62..6e6d28e6f0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1489,6 +1489,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-xerces-build_dont_unzip.patch	\
   %D%/packages/patches/java-xerces-xjavac_taskdef.patch	\
   %D%/packages/patches/jbr-17-xcursor-no-dynamic.patch	\
+  %D%/packages/patches/jdk-currency-time-bomb.patch		\
+  %D%/packages/patches/jdk-currency-time-bomb2.patch		\
   %D%/packages/patches/jfsutils-add-sysmacros.patch		\
   %D%/packages/patches/jfsutils-gcc-compat.patch		\
   %D%/packages/patches/jfsutils-include-systypes.patch		\
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e2c2a041a9..ded73bc461 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -100,13 +100,14 @@
 
 (define-public icedtea-7
   (let* ((version "2.6.13")
-         (drop (lambda (name hash)
+         (drop (lambda* (name hash #:optional (patches '()))
                  (origin
                    (method url-fetch)
                    (uri (string-append
                          "http://icedtea.classpath.org/download/drops"
                          "/icedtea7/" version "/" name ".tar.bz2"))
-                   (sha256 (base32 hash))))))
+                   (sha256 (base32 hash))
+                   (patches patches)))))
     (package
       (name "icedtea")
       (version version)
@@ -614,7 +615,8 @@
                  "110j7jlz47x2gg6f7653x12mssan5kvj9l9h1m1c8c92drfxbqyk"))
          ("jdk-drop"
           ,(drop "jdk"
-                 "0d1mca38ksxvdskp9im3pp7fdijhj1n3lwq9w13r9s4v3qyskgdd"))
+                 "0d1mca38ksxvdskp9im3pp7fdijhj1n3lwq9w13r9s4v3qyskgdd"
+                 (search-patches "jdk-currency-time-bomb.patch")))
          ("langtools-drop"
           ,(drop "langtools"
                  "0nq5236fzxn3p6x8cgncl56mzcmsj07q9gymysnws4c8byc6n0qj"))
@@ -687,13 +689,14 @@ IcedTea build harness.")
 
 (define-public icedtea-8
   (let* ((version "3.19.0")
-         (drop (lambda (name hash)
+         (drop (lambda* (name hash #:optional (patches '()))
                  (origin
                    (method url-fetch)
                    (uri (string-append
                          "http://icedtea.classpath.org/download/drops"
                          "/icedtea8/" version "/" name ".tar.xz"))
-                   (sha256 (base32 hash))))))
+                   (sha256 (base32 hash))
+                   (patches patches)))))
     (package (inherit icedtea-7)
       (version "3.19.0")
       (source (origin
@@ -839,7 +842,8 @@ new Date();"))
                  "1pc0pv4v2mn2mjc0vp19d94v2150xigyhxsmckqasy647zcm6w0r"))
          ("jdk-drop"
           ,(drop "jdk"
-                 "1742lcm55l8zhi522x83v65ccr0rd6511q9rj7crw44x3ymdrhrv"))
+                 "1742lcm55l8zhi522x83v65ccr0rd6511q9rj7crw44x3ymdrhrv"
+                 (search-patches "jdk-currency-time-bomb2.patch")))
          ("langtools-drop"
           ,(drop "langtools"
                  "08iz7p2xcddlphipf6gahyabr5cawlnydap12p1n4f0md069b50b"))
diff --git a/gnu/packages/patches/jdk-currency-time-bomb.patch b/gnu/packages/patches/jdk-currency-time-bomb.patch
new file mode 100644
index 0000000000..8e6bce6fcd
--- /dev/null
+++ b/gnu/packages/patches/jdk-currency-time-bomb.patch
@@ -0,0 +1,13 @@
+Fix a time bomb present in the jdk "drop" of IcedTea.
+
+--- a/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++ b/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
+@@ -284,7 +284,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;
diff --git a/gnu/packages/patches/jdk-currency-time-bomb2.patch b/gnu/packages/patches/jdk-currency-time-bomb2.patch
new file mode 100644
index 0000000000..94454626c4
--- /dev/null
+++ b/gnu/packages/patches/jdk-currency-time-bomb2.patch
@@ -0,0 +1,13 @@
+Fix a time bomb present in the jdk "drop" of IcedTea 8.
+
+--- a/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++ b/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+@@ -284,7 +284,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;