/hg/icedtea6: 2 new changesets

dlila at icedtea.classpath.org dlila at icedtea.classpath.org
Thu May 12 10:33:33 PDT 2011


changeset 55217d6f7533 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=55217d6f7533
author: Denis Lila <dlila at redhat.com>
date: Thu May 12 13:27:51 2011 -0400

	Fix regression.


changeset d41db027b4ea in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d41db027b4ea
author: Denis Lila <dlila at redhat.com>
date: Thu May 12 13:33:06 2011 -0400

	merge


diffstat:

 ChangeLog                                   |   15 +
 Makefile.am                                 |    5 +-
 NEWS                                        |    1 +
 patches/openjdk/7043921-java_rmi_cgi.patch  |   39 ++
 patches/openjdk/pgram-pipe-regression.patch |  543 ++++++++++++++++++++++++++++
 patches/rmi_amd64.patch                     |   14 -
 6 files changed, 601 insertions(+), 16 deletions(-)

diffs (truncated from 674 to 500 lines):

diff -r 0dad4d8420ac -r d41db027b4ea ChangeLog
--- a/ChangeLog	Thu May 12 11:22:12 2011 -0400
+++ b/ChangeLog	Thu May 12 13:33:06 2011 -0400
@@ -1,3 +1,18 @@
+2011-05-12  Denis Lila <dlila at redhat.com>
+
+	* Makefile.am: Apply patch.
+	* NEWS: Update with backport.
+	* patches/openjdk/pgram-pipe-regression.patch: Fix regression a
+	where the wrong user space bounds would be passed to user supplied
+	paint object.
+
+2011-05-12  Omair Majid  <omajid at redhat.com>
+
+	* Makefile.am (ICEDTEA_PATCHES): Remove rmi_amd64.patch. Add
+	7043921-java_rmi_cgi.patch
+	* patches/openjdk/7043921-java_rmi_cgi.patch: New file.
+	* patches/rmi_amd64.patch: Remove.
+
 2011-05-12  Omair Majid  <omajid at redhat.com>
 
 	* Makefile.am (ICEDTEA_PATCHES): Replace patches/libpng.patch with
diff -r 0dad4d8420ac -r d41db027b4ea Makefile.am
--- a/Makefile.am	Thu May 12 11:22:12 2011 -0400
+++ b/Makefile.am	Thu May 12 13:33:06 2011 -0400
@@ -217,7 +217,7 @@
 	patches/version.patch \
 	patches/version-hotspot.patch \
 	patches/hotspot/$(HSBUILD)/text-relocations.patch \
-	patches/rmi_amd64.patch \
+	patches/openjdk/7043921-java_rmi_cgi.patch \
 	patches/tools.patch \
 	patches/use-system-tzdata.patch \
 	patches/headers.patch \
@@ -338,7 +338,8 @@
 	patches/icedtea-hugepage-7034464.patch \
 	patches/icedtea-hugepage-7037939.patch \
 	patches/openjdk/6986968-crash_on_xim_restart.patch \
-	patches/openjdk/7036754-stroker-nan.patch
+	patches/openjdk/7036754-stroker-nan.patch \
+	patches/openjdk/pgram-pipe-regression.patch
 
 if WITH_ALT_HSBUILD
 ICEDTEA_PATCHES += \
diff -r 0dad4d8420ac -r d41db027b4ea NEWS
--- a/NEWS	Thu May 12 11:22:12 2011 -0400
+++ b/NEWS	Thu May 12 13:33:06 2011 -0400
@@ -27,6 +27,7 @@
   - S7018387: Xrender pipeline may leak GC's
   - S7036754: Stroked quads sometimes contain NaN
   - S7042040: Remove disk space sanity check
+  - S7043054: REGRESSION - wrong userBounds in Paint.createContext()
 * Bug fixes
   - PR637: make check should exit with an error code if any regression test failed.
   - G356743: Support libpng 1.5.
diff -r 0dad4d8420ac -r d41db027b4ea patches/openjdk/7043921-java_rmi_cgi.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/7043921-java_rmi_cgi.patch	Thu May 12 13:33:06 2011 -0400
@@ -0,0 +1,40 @@
+# HG changeset patch
+# User ohair
+# Date 1305210277 25200
+# Node ID 13fa9a0c628f58326cc376b7623a03b9d796136e
+# Parent  caed82420c5d01f5aaee5b15e8e37befc8db3d49
+7043921: generate java-rmi.cgi on 64 bit platform
+Reviewed-by: omajid, katleman
+
+diff -r caed82420c5d -r 13fa9a0c628f make/sun/rmi/rmi/Makefile
+--- openjdk/jdk/make/sun/rmi/rmi/Makefile	Wed May 11 14:12:50 2011 -0700
++++ openjdk/jdk/make/sun/rmi/rmi/Makefile	Thu May 12 07:24:37 2011 -0700
+@@ -85,16 +85,21 @@
+ 	sun.rmi.registry.RegistryImpl \
+ 	sun.rmi.transport.DGCImpl
+ 
+-ifeq ($(PLATFORM), windows)
+-build: stubs
+-else # PLATFORM
+-ifneq ($(ARCH_DATA_MODEL), 32)
+-build: stubs
+-else # ARCH_DATA_MODEL
+-build: stubs bin
++#
++# The java-rmi.cgi script in bin/ only gets delivered in certain situations
++#
++BUILD_TARGETS = stubs
++ifeq ($(PLATFORM), linux)
++  BUILD_TARGETS += bin
+ endif
++ifeq ($(PLATFORM), solaris)
++  ifeq ($(ARCH_DATA_MODEL), 32)
++    BUILD_TARGETS += bin
++  endif
+ endif
+ 
++build: $(BUILD_TARGETS)
++
+ clean clobber:: bin.clean
+ 
+ 
diff -r 0dad4d8420ac -r d41db027b4ea patches/openjdk/pgram-pipe-regression.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/pgram-pipe-regression.patch	Thu May 12 13:33:06 2011 -0400
@@ -0,0 +1,552 @@
+# HG changeset patch
+# User flar
+# Date 1305155521 25200
+# Node ID f290441b0cb7f5059caab84936b363b1f45e9e2f
+# Parent  85f53467c30ce903c3ea51cfea7759d9c7e39edc
+7043054: REGRESSION: JDK 7 b126 : Wrong userBounds in Paint.createContext()
+Reviewed-by: prr
+
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/opengl/OGLRenderer.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/opengl/OGLRenderer.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/opengl/OGLRenderer.java	Wed May 11 16:12:01 2011 -0700
+@@ -102,15 +102,20 @@
+             final ParallelogramPipe realpipe = oglr.getAAParallelogramPipe();
+             return new ParallelogramPipe() {
+                 public void fillParallelogram(SunGraphics2D sg2d,
++                                              double ux1, double uy1,
++                                              double ux2, double uy2,
+                                               double x, double y,
+                                               double dx1, double dy1,
+                                               double dx2, double dy2)
+                 {
+                     GraphicsPrimitive.tracePrimitive("OGLFillAAParallelogram");
+                     realpipe.fillParallelogram(sg2d,
++                                               ux1, uy1, ux2, uy2,
+                                                x, y, dx1, dy1, dx2, dy2);
+                 }
+                 public void drawParallelogram(SunGraphics2D sg2d,
++                                              double ux1, double uy1,
++                                              double ux2, double uy2,
+                                               double x, double y,
+                                               double dx1, double dy1,
+                                               double dx2, double dy2,
+@@ -118,6 +123,7 @@
+                 {
+                     GraphicsPrimitive.tracePrimitive("OGLDrawAAParallelogram");
+                     realpipe.drawParallelogram(sg2d,
++                                               ux1, uy1, ux2, uy2,
+                                                x, y, dx1, dy1, dx2, dy2,
+                                                lw1, lw2);
+                 }
+@@ -166,21 +172,29 @@
+             oglr.fillSpans(sg2d, si, transx, transy);
+         }
+         public void fillParallelogram(SunGraphics2D sg2d,
++                                      double ux1, double uy1,
++                                      double ux2, double uy2,
+                                       double x, double y,
+                                       double dx1, double dy1,
+                                       double dx2, double dy2)
+         {
+             GraphicsPrimitive.tracePrimitive("OGLFillParallelogram");
+-            oglr.fillParallelogram(sg2d, x, y, dx1, dy1, dx2, dy2);
++            oglr.fillParallelogram(sg2d,
++                                   ux1, uy1, ux2, uy2,
++                                   x, y, dx1, dy1, dx2, dy2);
+         }
+         public void drawParallelogram(SunGraphics2D sg2d,
++                                      double ux1, double uy1,
++                                      double ux2, double uy2,
+                                       double x, double y,
+                                       double dx1, double dy1,
+                                       double dx2, double dy2,
+                                       double lw1, double lw2)
+         {
+             GraphicsPrimitive.tracePrimitive("OGLDrawParallelogram");
+-            oglr.drawParallelogram(sg2d, x, y, dx1, dy1, dx2, dy2, lw1, lw2);
++            oglr.drawParallelogram(sg2d,
++                                   ux1, uy1, ux2, uy2,
++                                   x, y, dx1, dy1, dx2, dy2, lw1, lw2);
+         }
+         public void copyArea(SunGraphics2D sg2d,
+                              int x, int y, int w, int h, int dx, int dy)
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/pipe/AAShapePipe.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/AAShapePipe.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/AAShapePipe.java	Wed May 11 16:12:01 2011 -0700
+@@ -68,21 +68,23 @@
+         renderPath(sg, s, null);
+     }
+ 
+-    private static Rectangle2D computeBBox(double x, double y,
+-                                           double dx1, double dy1,
+-                                           double dx2, double dy2)
++    private static Rectangle2D computeBBox(double ux1, double uy1,
++                                           double ux2, double uy2)
+     {
+-        double lox, loy, hix, hiy;
+-        lox = hix = x;
+-        loy = hiy = y;
+-        if (dx1 < 0) { lox += dx1; } else { hix += dx1; }
+-        if (dy1 < 0) { loy += dy1; } else { hiy += dy1; }
+-        if (dx2 < 0) { lox += dx2; } else { hix += dx2; }
+-        if (dy2 < 0) { loy += dy2; } else { hiy += dy2; }
+-        return new Rectangle2D.Double(lox, loy, hix-lox, hiy-loy);
++        if ((ux2 -= ux1) < 0) {
++            ux1 += ux2;
++            ux2 = -ux2;
++        }
++        if ((uy2 -= uy1) < 0) {
++            uy1 += uy2;
++            uy2 = -uy2;
++        }
++        return new Rectangle2D.Double(ux1, uy1, ux2, uy2);
+     }
+ 
+     public void fillParallelogram(SunGraphics2D sg,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2)
+@@ -97,10 +99,12 @@
+             return;
+         }
+ 
+-        renderTiles(sg, computeBBox(x, y, dx1, dy1, dx2, dy2), aatg, abox);
++        renderTiles(sg, computeBBox(ux1, uy1, ux2, uy2), aatg, abox);
+     }
+ 
+     public void drawParallelogram(SunGraphics2D sg,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2,
+@@ -118,7 +122,7 @@
+ 
+         // Note that bbox is of the original shape, not the wide path.
+         // This is appropriate for handing to Paint methods...
+-        renderTiles(sg, computeBBox(x, y, dx1, dy1, dx2, dy2), aatg, abox);
++        renderTiles(sg, computeBBox(ux1, uy1, ux2, uy2), aatg, abox);
+     }
+ 
+     private static byte[] theTile;
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/pipe/AlphaColorPipe.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/AlphaColorPipe.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/AlphaColorPipe.java	Wed May 11 16:12:01 2011 -0700
+@@ -66,6 +66,8 @@
+     }
+ 
+     public void fillParallelogram(SunGraphics2D sg,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2)
+@@ -75,6 +77,8 @@
+     }
+ 
+     public void drawParallelogram(SunGraphics2D sg,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2,
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java	Wed May 11 16:12:01 2011 -0700
+@@ -408,6 +408,8 @@
+     }
+ 
+     public void fillParallelogram(SunGraphics2D sg2d,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2)
+@@ -429,6 +431,8 @@
+     }
+ 
+     public void drawParallelogram(SunGraphics2D sg2d,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2,
+@@ -454,6 +458,8 @@
+ 
+     private class AAParallelogramPipe implements ParallelogramPipe {
+         public void fillParallelogram(SunGraphics2D sg2d,
++                                      double ux1, double uy1,
++                                      double ux2, double uy2,
+                                       double x, double y,
+                                       double dx1, double dy1,
+                                       double dx2, double dy2)
+@@ -475,6 +481,8 @@
+         }
+ 
+         public void drawParallelogram(SunGraphics2D sg2d,
++                                      double ux1, double uy1,
++                                      double ux2, double uy2,
+                                       double x, double y,
+                                       double dx1, double dy1,
+                                       double dx2, double dy2,
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/pipe/LoopPipe.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/LoopPipe.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/LoopPipe.java	Wed May 11 16:12:01 2011 -0700
+@@ -352,6 +352,8 @@
+     }
+ 
+     public void fillParallelogram(SunGraphics2D sg2d,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2)
+@@ -362,6 +364,8 @@
+     }
+ 
+     public void drawParallelogram(SunGraphics2D sg2d,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2,
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/pipe/ParallelogramPipe.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/ParallelogramPipe.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/ParallelogramPipe.java	Wed May 11 16:12:01 2011 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2008, 2011 Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -40,9 +40,17 @@
+  *          => (x+dx2, y+dy2)
+  *          => origin
+  * </pre>
++ * The four u[xy][12] parameters are the unsorted extreme coordinates
++ * of the primitive in user space.  They may have been generated by a
++ * line or a rectangle so they could have u[xy]2 < u[xy]1 in some cases.
++ * They should be sorted before calculating the bounds of the original
++ * primitive (such as for calculating the user space bounds for the
++ * Paint.createContext() method).
+  */
+ public interface ParallelogramPipe {
+     public void fillParallelogram(SunGraphics2D sg,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2);
+@@ -59,6 +67,8 @@
+      * difference between the outer and inner parallelograms.
+      */
+     public void drawParallelogram(SunGraphics2D sg,
++                                  double ux1, double uy1,
++                                  double ux2, double uy2,
+                                   double x, double y,
+                                   double dx1, double dy1,
+                                   double dx2, double dy2,
+diff -r 85f53467c30c -r f290441b0cb7 src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java	Wed May 11 16:12:01 2011 -0700
+@@ -175,8 +175,8 @@
+     }
+ 
+     public boolean drawGeneralLine(SunGraphics2D sg2d,
+-                                   double x1, double y1,
+-                                   double x2, double y2)
++                                   double ux1, double uy1,
++                                   double ux2, double uy2)
+     {
+         if (sg2d.strokeState == SunGraphics2D.STROKE_CUSTOM ||
+             sg2d.strokeState == SunGraphics2D.STROKE_THINDASHED)
+@@ -194,13 +194,14 @@
+         double lw = bs.getLineWidth();
+         // Save the original dx, dy in case we need it to transform
+         // the linewidth as a perpendicular vector below
+-        double dx = x2 - x1;
+-        double dy = y2 - y1;
++        double dx = ux2 - ux1;
++        double dy = uy2 - uy1;
++        double x1, y1, x2, y2;
+         switch (sg2d.transformState) {
+         case SunGraphics2D.TRANSFORM_GENERIC:
+         case SunGraphics2D.TRANSFORM_TRANSLATESCALE:
+             {
+-                double coords[] = {x1, y1, x2, y2};
++                double coords[] = {ux1, uy1, ux2, uy2};
+                 sg2d.transform.transform(coords, 0, coords, 0, 2);
+                 x1 = coords[0];
+                 y1 = coords[1];
+@@ -213,13 +214,17 @@
+             {
+                 double tx = sg2d.transform.getTranslateX();
+                 double ty = sg2d.transform.getTranslateY();
+-                x1 += tx;
+-                y1 += ty;
+-                x2 += tx;
+-                y2 += ty;
++                x1 = ux1 + tx;
++                y1 = uy1 + ty;
++                x2 = ux2 + tx;
++                y2 = uy2 + ty;
+             }
+             break;
+         case SunGraphics2D.TRANSFORM_ISIDENT:
++            x1 = ux1;
++            y1 = uy1;
++            x2 = ux2;
++            y2 = uy2;
+             break;
+         default:
+             throw new InternalError("unknown TRANSFORM state...");
+@@ -279,7 +284,8 @@
+             dx += udx;
+             dy += udy;
+         }
+-        outrenderer.fillParallelogram(sg2d, px, py, -udy, udx, dx, dy);
++        outrenderer.fillParallelogram(sg2d, ux1, uy1, ux2, uy2,
++                                      px, py, -udy, udx, dx, dy);
+         return true;
+     }
+ 
+@@ -313,7 +319,8 @@
+             px = newx;
+             py = newy;
+         }
+-        outrenderer.fillParallelogram(sg2d, px, py, dx1, dy1, dx2, dy2);
++        outrenderer.fillParallelogram(sg2d, rx, ry, rx+rw, ry+rh,
++                                      px, py, dx1, dy1, dx2, dy2);
+     }
+ 
+     public void drawRectangle(SunGraphics2D sg2d,
+@@ -360,10 +367,12 @@
+             // entire hole in the middle of the parallelogram
+             // so we can just fill the outer parallelogram.
+             fillOuterParallelogram(sg2d,
++                                   rx, ry, rx+rw, ry+rh,
+                                    px, py, dx1, dy1, dx2, dy2,
+                                    len1, len2, lw1, lw2);
+         } else {
+             outrenderer.drawParallelogram(sg2d,
++                                          rx, ry, rx+rw, ry+rh,
+                                           px, py, dx1, dy1, dx2, dy2,
+                                           lw1 / len1, lw2 / len2);
+         }
+@@ -377,6 +386,8 @@
+      * and issues a single fillParallelogram request to fill it.
+      */
+     public void fillOuterParallelogram(SunGraphics2D sg2d,
++                                       double ux1, double uy1,
++                                       double ux2, double uy2,
+                                        double px, double py,
+                                        double dx1, double dy1,
+                                        double dx2, double dy2,
+@@ -412,6 +423,7 @@
+         dx2 += udx2;
+         dy2 += udy2;
+ 
+-        outrenderer.fillParallelogram(sg2d, px, py, dx1, dy1, dx2, dy2);
++        outrenderer.fillParallelogram(sg2d, ux1, uy1, ux2, uy2,
++                                      px, py, dx1, dy1, dx2, dy2);
+     }
+ }
+diff -r 85f53467c30c -r f290441b0cb7 src/windows/classes/sun/java2d/d3d/D3DRenderer.java
+--- openjdk.orig/jdk/src/windows/classes/sun/java2d/d3d/D3DRenderer.java	Tue May 10 15:59:01 2011 -0700
++++ openjdk/jdk/src/windows/classes/sun/java2d/d3d/D3DRenderer.java	Wed May 11 16:12:01 2011 -0700
+@@ -102,15 +102,20 @@
+             final ParallelogramPipe realpipe = d3dr.getAAParallelogramPipe();
+             return new ParallelogramPipe() {
+                 public void fillParallelogram(SunGraphics2D sg2d,
++                                              double ux1, double uy1,
++                                              double ux2, double uy2,
+                                               double x, double y,
+                                               double dx1, double dy1,
+                                               double dx2, double dy2)
+                 {
+                     GraphicsPrimitive.tracePrimitive("D3DFillAAParallelogram");
+                     realpipe.fillParallelogram(sg2d,
++                                               ux1, uy1, ux2, uy2,
+                                                x, y, dx1, dy1, dx2, dy2);
+                 }
+                 public void drawParallelogram(SunGraphics2D sg2d,
++                                              double ux1, double uy1,
++                                              double ux2, double uy2,
+                                               double x, double y,
+                                               double dx1, double dy1,
+                                               double dx2, double dy2,
+@@ -118,6 +123,7 @@
+                 {
+                     GraphicsPrimitive.tracePrimitive("D3DDrawAAParallelogram");
+                     realpipe.drawParallelogram(sg2d,
++                                               ux1, uy1, ux2, uy2,
+                                                x, y, dx1, dy1, dx2, dy2,
+                                                lw1, lw2);
+                 }
+@@ -167,21 +173,29 @@
+             d3dr.fillSpans(sg2d, si, transx, transy);
+         }
+         public void fillParallelogram(SunGraphics2D sg2d,
++                                      double ux1, double uy1,
++                                      double ux2, double uy2,
+                                       double x, double y,
+                                       double dx1, double dy1,
+                                       double dx2, double dy2)



More information about the distro-pkg-dev mailing list