Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xrandr for openSUSE:Factory checked 
in at 2024-11-08 11:55:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xrandr (Old)
 and      /work/SRC/openSUSE:Factory/.xrandr.new.2017 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xrandr"

Fri Nov  8 11:55:54 2024 rev:18 rq:1222571 version:1.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/xrandr/xrandr.changes    2024-02-27 
22:45:01.703315103 +0100
+++ /work/SRC/openSUSE:Factory/.xrandr.new.2017/xrandr.changes  2024-11-08 
11:58:25.683080507 +0100
@@ -1,0 +2,8 @@
+Thu Nov  7 19:45:46 UTC 2024 - Stefan Dirsch <sndir...@suse.com>
+
+- Update to version 1.5.3
+  * set_gamma_info: remove unnecessary round-trip to server
+  * Reworked transform fix from Arsalan Awan
+  * xrandr: Print/consume the CTM prop in human readable form
+
+-------------------------------------------------------------------

Old:
----
  xrandr-1.5.2.tar.xz

New:
----
  xrandr-1.5.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xrandr.spec ++++++
--- /var/tmp/diff_new_pack.LxfI0Y/_old  2024-11-08 11:58:27.107139894 +0100
+++ /var/tmp/diff_new_pack.LxfI0Y/_new  2024-11-08 11:58:27.135141061 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xrandr
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           xrandr
-Version:        1.5.2
+Version:        1.5.3
 Release:        0
 Summary:        Primitive command line interface to RandR extension
 License:        MIT

++++++ xrandr-1.5.2.tar.xz -> xrandr-1.5.3.tar.xz ++++++
++++ 10751 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xrandr-1.5.2/ChangeLog new/xrandr-1.5.3/ChangeLog
--- old/xrandr-1.5.2/ChangeLog  2022-12-04 00:49:18.000000000 +0100
+++ new/xrandr-1.5.3/ChangeLog  2024-11-07 19:24:18.000000000 +0100
@@ -1,3 +1,55 @@
+commit 0591ca56f9628d1a1a691160d79d9afb0f225c4d
+Author: Matt Turner <matts...@gmail.com>
+Date:   Thu Nov 7 13:02:28 2024 -0500
+
+    xrandr 1.5.3
+    
+    Part-of: 
<https://gitlab.freedesktop.org/xorg/app/xrandr/-/merge_requests/14>
+
+commit 9362e430f59b9fb47129122fa3a5db687819d74d
+Author: Justin Mayfield <too...@gmail.com>
+Date:   Mon Aug 7 15:34:11 2023 -0600
+
+    Reworked transform fix from Arsalan Awan
+    
+    Check that the transform for a display is unmodified before allowing it
+    to be skipped during an update.
+    
+    This is a reworked patch from Arsalan Awan's 2017 post:
+        https://lists.x.org/archives/xorg-devel/2017-December/055482.html
+    
+    Fixes #36
+    
+    Part-of: 
<https://gitlab.freedesktop.org/xorg/app/xrandr/-/merge_requests/11>
+
+commit b05887508dcf65a58204fb69763e1a7846d2e857
+Author: Ville Syrjälä <ville.syrj...@linux.intel.com>
+Date:   Tue Apr 11 12:31:06 2023 +0300
+
+    xrandr: Print/consume the CTM prop in human readable form
+    
+    Print/consume the CTM in floats for easier human consumption.
+    
+    Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
+    Part-of: 
<https://gitlab.freedesktop.org/xorg/app/xrandr/-/merge_requests/10>
+
+commit 71ab94418ead8f59c6124e8b3e53f8df7340f095
+Author: Alan Coopersmith <alan.coopersm...@oracle.com>
+Date:   Mon Sep 18 14:06:41 2023 -0700
+
+    set_gamma_info: remove unnecessary round-trip to server
+    
+    XRRGetCrtcGamma() returns the exact same size information as
+    XRRGetCrtcGammaSize(), so just use it instead of waiting for
+    the X server to send it an extra time.
+    
+    (And if something has gone very wrong so that they aren't the same,
+     this avoids out-of-bounds reads processing the returned gamma arrays
+     by using the size of the arrays we allocated.)
+    
+    Reported-by: Gregory James DUCK <gjd...@gmail.com>
+    Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>
+
 commit 6f714830da6c8d74f024be6b0bb32c1ea39c1217
 Author: Alan Coopersmith <alan.coopersm...@oracle.com>
 Date:   Sat Dec 3 15:47:06 2022 -0800
@@ -179,7 +231,7 @@
     Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
 
 commit 9882680c9f7f433a47514a9cb799c79e3e10a024
-Author: Pali Rohár  <pali.ro...@gmail.com>
+Author: Pali Rohár <pali.ro...@gmail.com>
 Date:   Sat Mar 10 16:23:29 2018 +0100
 
     Document that --dpi and --fbmm options set DPI of whole X screen
@@ -290,7 +342,7 @@
     Signed-off-by: Aaron Plattner <aplatt...@nvidia.com>
 
 commit 5d5db88d106a49d7560a8042fa054df8b609f00a
-Author: Pali Rohár  <pali.ro...@gmail.com>
+Author: Pali Rohár <pali.ro...@gmail.com>
 Date:   Sun May 28 23:33:26 2017 +0200
 
     Document format of --dpi option in non-ambiguous way
@@ -504,7 +556,7 @@
             xrandr.c
 
 commit 193a358563a59c1a3fc55f55029c605e2419c80b
-Author: Stéphane Aulery  <lk...@free.fr>
+Author: Stéphane Aulery <lk...@free.fr>
 Date:   Sat Jun 29 16:50:25 2013 -0700
 
     Mention of --brightness with -h option
@@ -609,7 +661,7 @@
     Signed-off-by: Aaron Plattner <aplatt...@nvidia.com>
 
 commit 00c795e99fe29ecd56e05e915e508c7af0ac39ad
-Author: Ville Syrjälä < <ville.syrj...@linux.intel.com>
+Author: Ville Syrjälä <ville.syrj...@linux.intel.com>
 Date:   Fri May 31 17:01:54 2013 +0300
 
     xrandr: Use floating point for VTotal when calculating refresh rate
@@ -622,7 +674,7 @@
     Reviewed-by: Aaron Plattner <aplatt...@nvidia.com>
 
 commit 8f9b993342fddfceaa1afbec2996ce10038f10d7
-Author: Ville Syrjälä < <ville.syrj...@linux.intel.com>
+Author: Ville Syrjälä <ville.syrj...@linux.intel.com>
 Date:   Fri May 31 17:01:53 2013 +0300
 
     xrandr: Use more decimal places when printing various rates
@@ -1530,7 +1582,7 @@
     Signed-off-by: Gaetan Nadon <mems...@videotron.ca>
 
 commit ac6606d8da914610446c5327813798bfbba4d6c2
-Author: Éric Piel  <eric.p...@tremplin-utc.net>
+Author: Éric Piel <eric.p...@tremplin-utc.net>
 Date:   Wed Jan 6 14:42:15 2010 +0100
 
     xrandr: fix brightness to prevent gamma to overflow and to allow 0
@@ -1686,7 +1738,7 @@
     Reviewed-by: Rémi Cardona <r...@gentoo.org>
 
 commit b84560759141ed52b8779c184184f888e9be8b2f
-Author: Éric Piel  <eric.p...@tremplin-utc.net>
+Author: Éric Piel <eric.p...@tremplin-utc.net>
 Date:   Mon Oct 26 14:11:02 2009 +0100
 
     xrandr: do not segfault when "--scale" or "--transform" have no output
@@ -1700,7 +1752,7 @@
     Signed-off-by: Matthias Hopf <mh...@suse.de>
 
 commit 34829957441a10f6b6e31141aa1018f7a72aeaf9
-Author: Éric Piel  <eric.p...@tremplin-utc.net>
+Author: Éric Piel <eric.p...@tremplin-utc.net>
 Date:   Mon Oct 26 13:57:10 2009 +0100
 
     xrandr: make --query really the default option
@@ -1790,7 +1842,7 @@
     Signed-off-by: Federico Mena Quintero <feder...@novell.com>
 
 commit 68d5134142e3c616f3996c7ea8d08c887ce56118
-Author: Éric Piel  <e.a.b.p...@tudelft.nl>
+Author: Éric Piel <e.a.b.p...@tudelft.nl>
 Date:   Tue Jul 14 21:36:32 2009 +0200
 
     xrandr: Document --nograb option
@@ -1923,7 +1975,7 @@
     Several fatal() were missing \n.
 
 commit 9ea6e4210d49c13991a7d07e54f6f59e3dc8ce72
-Author: Éric Piel  <e.a.b.p...@tudelft.nl>
+Author: Éric Piel <e.a.b.p...@tudelft.nl>
 Date:   Mon Jan 19 16:18:46 2009 +0100
 
     Add docs for --transform and --scale.
@@ -3040,7 +3092,7 @@
         configure cache, you cache it, and the cached value is probably wrong.
 
 commit 5666f22654447eb381186a85a8e1630d419b0a88
-Author: Søren Sandmann Pedersen  <sandm...@daimi.au.dk>
+Author: Søren Sandmann Pedersen <sandm...@daimi.au.dk>
 Date:   Fri Jul 1 20:27:45 2005 +0000
 
     Build systems for xrdb, xrandr, xrefresh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xrandr-1.5.2/config.h.in new/xrandr-1.5.3/config.h.in
--- old/xrandr-1.5.2/config.h.in        2022-12-04 00:49:13.000000000 +0100
+++ new/xrandr-1.5.3/config.h.in        2024-11-07 19:24:15.000000000 +0100
@@ -3,7 +3,7 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if you have the `m' library (-lm). */
+/* Define to 1 if you have the 'm' library (-lm). */
 #undef HAVE_LIBM
 
 /* Define to 1 if you have the <stdint.h> header file. */
@@ -60,7 +60,7 @@
 /* Patch version of this package */
 #undef PACKAGE_VERSION_PATCHLEVEL
 
-/* Define to 1 if all of the C90 standard headers exist (not just the ones
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
    required in a freestanding environment). This macro is provided for
    backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xrandr-1.5.2/configure.ac new/xrandr-1.5.3/configure.ac
--- old/xrandr-1.5.2/configure.ac       2022-12-04 00:49:09.000000000 +0100
+++ new/xrandr-1.5.3/configure.ac       2024-11-07 19:24:13.000000000 +0100
@@ -22,7 +22,7 @@
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([xrandr], [1.5.2],
+AC_INIT([xrandr], [1.5.3],
         [https://gitlab.freedesktop.org/xorg/app/xrandr/-/issues], [xrandr])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xrandr-1.5.2/xrandr.c new/xrandr-1.5.3/xrandr.c
--- old/xrandr-1.5.2/xrandr.c   2022-12-04 00:49:09.000000000 +0100
+++ new/xrandr-1.5.3/xrandr.c   2024-11-07 19:24:13.000000000 +0100
@@ -1063,17 +1063,12 @@
     if (!output->crtc_info)
        return;
 
-    size = XRRGetCrtcGammaSize(dpy, output->crtc_info->crtc.xid);
-    if (!size) {
-       warning("Failed to get size of gamma for output %s\n", 
output->output.string);
-       return;
-    }
-
     crtc_gamma = XRRGetCrtcGamma(dpy, output->crtc_info->crtc.xid);
     if (!crtc_gamma) {
        warning("Failed to get gamma for output %s\n", output->output.string);
        return;
     }
+    size = crtc_gamma->size;
 
     /*
      * Here is a bit tricky because gamma is a whole curve for each
@@ -1691,8 +1686,8 @@
        XGrabServer (dpy);
     
     /*
-     * Turn off any crtcs which are to be disabled or which are
-     * larger than the target size
+     * Turn off any crtcs which are to be disabled or which
+     * need to be updated
      */
     for (int c = 0; c < res->ncrtc; c++)
     {
@@ -1705,30 +1700,32 @@
        
        /* 
         * If this crtc is to be left enabled, make
-        * sure the old size fits then new screen
+        * sure the new geometry is unchanged and fits
         */
        if (crtc->mode_info) 
        {
            XRRModeInfo *old_mode = find_mode_by_xid (crtc_info->mode);
-           int x, y, w, h;
-           box_t bounds;
+           box_t cur, pending;
 
            if (!old_mode) 
                panic (RRSetConfigFailed, crtc);
-           
-           /* old position and size information */
-           mode_geometry (old_mode, crtc_info->rotation,
-                          &crtc->current_transform.transform,
-                          &bounds);
 
-           x = crtc_info->x + bounds.x1;
-           y = crtc_info->y + bounds.y1;
-           w = bounds.x2 - bounds.x1;
-           h = bounds.y2 - bounds.y1;
-
-           /* if it fits, skip it */
-           if (x + w <= fb_width && y + h <= fb_height) 
-               continue;
+           mode_geometry (old_mode, crtc_info->rotation,
+                          &crtc->current_transform.transform, &cur);
+           mode_geometry (crtc->mode_info, crtc_info->rotation,
+                          &crtc->pending_transform.transform, &pending);
+
+           if (cur.x1 == pending.x1 && cur.x2 == pending.x2 &&
+               cur.y1 == pending.y1 && cur.y2 == pending.y2) {
+               int x = crtc_info->x + cur.x1;
+               int y = crtc_info->y + cur.y1;
+               int w = cur.x2 - cur.x1;
+               int h = cur.y2 - cur.y1;
+
+               /* if it fits, skip it */
+               if (x + w <= fb_width && y + h <= fb_height)
+                   continue;
+           }
            crtc->changing = True;
        }
        s = crtc_disable (crtc);
@@ -2274,6 +2271,38 @@
     return result;
 }
 
+static void *
+ctm_from_string(const char *str, int *returned_nitems)
+{
+    double ctm[9];
+    long *prop;
+    int i;
+
+    if (sscanf (str, "%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf",
+               &ctm[0],&ctm[1],&ctm[2],
+               &ctm[3],&ctm[4],&ctm[5],
+               &ctm[6],&ctm[7],&ctm[8]) != 9)
+       return NULL;
+
+    prop = malloc (2*9*sizeof(prop[0]));
+    if (!prop)
+       return NULL;
+
+    for (i = 0; i < 9; i++) {
+       unsigned long long tmp;
+
+       tmp = fabs (ctm[i]) * (1ULL << 32);
+       if (ctm[i] < 0.0)
+           tmp |= 1ULL << 63;
+
+       prop[i*2+0] = tmp & 0xffffffff;
+       prop[i*2+1] = tmp >> 32;
+    }
+
+    *returned_nitems = 2*9;
+
+    return prop;
+}
 
 static void *
 property_values_from_string(const char *str, const Atom type, const int format,
@@ -2462,6 +2491,32 @@
 }
 
 static void
+print_ctm(const unsigned long *prop)
+{
+    printf("\t");
+    for (int i = 0; i < 9; i++)
+    {
+       unsigned long long tmp;
+       double c;
+
+       tmp = prop[2*i+1];
+       tmp <<= 32;
+       tmp |= prop[2*i+0];
+
+       c = (double)(tmp & ~(1ULL << 63)) / (1ULL << 32);
+       if (tmp & (1ULL << 63))
+           c = -c;
+
+       printf("%f", c);
+       if (i == 2 || i == 5)
+           printf("\n\t\t");
+       else if (i != 8)
+           printf(" ");
+    }
+    printf("\n");
+}
+
+static void
 print_output_property(const char *atom_name,
                       int value_format,
                       Atom value_type,
@@ -2498,6 +2553,12 @@
        print_guid (prop);
        return;
     }
+    else if (strcmp (atom_name, "CTM") == 0 && value_format == 32 &&
+            value_type == XA_INTEGER && nitems == 9*2)
+    {
+       print_ctm ((unsigned long *)prop);
+       return;
+    }
 
     for (int k = 0; k < nitems; k++)
     {
@@ -3364,6 +3425,7 @@
            for (output_prop_t *prop = output->props; prop; prop = prop->next)
            {
                Atom            name = XInternAtom (dpy, prop->name, False);
+               char            *atom_name = XGetAtomName (dpy, name);
                Atom            type;
                int             format = 0;
                unsigned char   *data, *malloced_data = NULL;
@@ -3391,8 +3453,12 @@
                    format = actual_format;
                }
 
-               malloced_data = property_values_from_string
-                   (prop->value, type, actual_format, &nelements);
+               if (strcmp (atom_name, "CTM") == 0 && type == XA_INTEGER && 
actual_format == 32)
+                   malloced_data = ctm_from_string (prop->value, &nelements);
+
+               if (!malloced_data)
+                   malloced_data = property_values_from_string (prop->value, 
type,
+                                                                actual_format, 
&nelements);
 
                if (malloced_data)
                {

Reply via email to