[arch-commits] Commit in lib32-glib2/repos (5 files)

Jan Steffens heftig at archlinux.org
Thu Oct 8 17:06:40 UTC 2020


    Date: Thursday, October 8, 2020 @ 17:06:39
  Author: heftig
Revision: 721783

archrelease: copy trunk to multilib-testing-x86_64

Added:
  lib32-glib2/repos/multilib-testing-x86_64/
  lib32-glib2/repos/multilib-testing-x86_64/1683.patch
    (from rev 721782, lib32-glib2/trunk/1683.patch)
  lib32-glib2/repos/multilib-testing-x86_64/PKGBUILD
    (from rev 721782, lib32-glib2/trunk/PKGBUILD)
  lib32-glib2/repos/multilib-testing-x86_64/gio-querymodules-32.hook
    (from rev 721782, lib32-glib2/trunk/gio-querymodules-32.hook)
  lib32-glib2/repos/multilib-testing-x86_64/multilib.diff
    (from rev 721782, lib32-glib2/trunk/multilib.diff)

--------------------------+
 1683.patch               |  102 +++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD                 |   73 ++++++++++++++++++++++++++++++++
 gio-querymodules-32.hook |   11 ++++
 multilib.diff            |   12 +++++
 4 files changed, 198 insertions(+)

Copied: lib32-glib2/repos/multilib-testing-x86_64/1683.patch (from rev 721782, lib32-glib2/trunk/1683.patch)
===================================================================
--- multilib-testing-x86_64/1683.patch	                        (rev 0)
+++ multilib-testing-x86_64/1683.patch	2020-10-08 17:06:39 UTC (rev 721783)
@@ -0,0 +1,102 @@
+From b411f518b8dc7a99bad52884048436d991c89b77 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?=
+ =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= <lrn1986 at gmail.com>
+Date: Mon, 5 Oct 2020 17:07:29 +0000
+Subject: [PATCH 1/2] Add a test for the 6-days-until-EOM bug
+
+---
+ glib/tests/gdatetime.c | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+
+diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c
+index 52eec1e46..0731f01f2 100644
+--- a/glib/tests/gdatetime.c
++++ b/glib/tests/gdatetime.c
+@@ -2192,6 +2192,31 @@ test_z (void)
+   g_time_zone_unref (tz);
+ }
+ 
++static void
++test_6_days_util_end_of_the_month (void)
++{
++  GTimeZone *tz;
++  GDateTime *dt;
++  gchar *p;
++
++  g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2215");
++
++#ifdef G_OS_UNIX
++  tz = g_time_zone_new ("Europe/Paris");
++#elif defined (G_OS_WIN32)
++  tz = g_time_zone_new ("Romance Standard Time");
++#endif
++  dt = g_date_time_new (tz, 2020, 10, 5, 1, 1, 1);
++
++  p = g_date_time_format (dt, "%Y-%m-%d %H:%M:%S%z");
++  /* Incorrect output is  "2020-10-05 01:01:01+0100" */
++  g_assert_cmpstr (p, ==, "2020-10-05 01:01:01+0200");
++  g_free (p);
++
++  g_date_time_unref (dt);
++  g_time_zone_unref (tz);
++}
++
+ static void
+ test_format_iso8601 (void)
+ {
+@@ -2785,6 +2810,7 @@ main (gint   argc,
+   g_test_add_func ("/GDateTime/new_from_iso8601/2", test_GDateTime_new_from_iso8601_2);
+   g_test_add_func ("/GDateTime/new_full", test_GDateTime_new_full);
+   g_test_add_func ("/GDateTime/now", test_GDateTime_now);
++  g_test_add_func ("/GDateTime/test-6-days-util-end-of-the-month", test_6_days_util_end_of_the_month);
+   g_test_add_func ("/GDateTime/printf", test_GDateTime_printf);
+   g_test_add_func ("/GDateTime/non_utf8_printf", test_non_utf8_printf);
+   g_test_add_func ("/GDateTime/format_unrepresentable", test_format_unrepresentable);
+-- 
+GitLab
+
+
+From 4a120c2e2e0a26e1cd5ce7cb4ebe906ef6d588d3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?=
+ =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= <lrn1986 at gmail.com>
+Date: Mon, 5 Oct 2020 16:53:47 +0000
+Subject: [PATCH 2/2] Fix the 6-days-until-the-end-of-the-month bug
+
+The addition causes the date to shift
+forward into 1st of the next month, because a 0-based offset
+is compared to be "more than" the days in the month instead of "more than
+or equal to".
+
+This is triggered by corner-cases where transition date is 6 days
+off the end of the month and our calculations put it at N+1th day of the
+month (where N is the number of days in the month). The subtraction should
+be triggered to move the date back a week, putting it 6 days off the end;
+for example, October 25 for CET DST transition; but due to incorrect comparison
+the date isn't shifted back, we add 31 days to October 1st and end up
+at November 1st).
+
+Fixes issue #2215.
+---
+ glib/gtimezone.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/glib/gtimezone.c b/glib/gtimezone.c
+index ef67ec50b..0de5c92a3 100644
+--- a/glib/gtimezone.c
++++ b/glib/gtimezone.c
+@@ -1041,7 +1041,11 @@ find_relative_date (TimeZoneDate *buffer)
+       /* week is 1 <= w <= 5, we need 0-based */
+       days = 7 * (buffer->week - 1) + wday - first_wday;
+ 
+-      while (days > days_in_month)
++      /* "days" is a 0-based offset from the 1st of the month.
++       * Adding days == days_in_month would bring us into the next month,
++       * hence the ">=" instead of just ">".
++       */
++      while (days >= days_in_month)
+         days -= 7;
+ 
+       g_date_add_days (&date, days);
+-- 
+GitLab
+

Copied: lib32-glib2/repos/multilib-testing-x86_64/PKGBUILD (from rev 721782, lib32-glib2/trunk/PKGBUILD)
===================================================================
--- multilib-testing-x86_64/PKGBUILD	                        (rev 0)
+++ multilib-testing-x86_64/PKGBUILD	2020-10-08 17:06:39 UTC (rev 721783)
@@ -0,0 +1,73 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
+# Contributor: Ionut Biru <ibiru at archlinux.org>
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y at mbnet.fi>
+
+pkgname=lib32-glib2
+pkgver=2.66.1
+pkgrel=2
+pkgdesc="Low level core library (32-bit)"
+url="https://wiki.gnome.org/Projects/GLib"
+license=(LGPL2.1)
+arch=(x86_64)
+depends=(lib32-pcre lib32-libffi lib32-util-linux lib32-zlib glib2)
+makedepends=(gettext gtk-doc shared-mime-info python lib32-libelf git util-linux
+             meson lib32-dbus)
+checkdepends=(desktop-file-utils lib32-glib2)
+_commit=b2f8ba8a11482dc702a470e92552cbb97765dbc9  # tags/2.66.1^0
+source=("git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit"
+        1683.patch
+        multilib.diff
+        gio-querymodules-32.hook)
+sha256sums=('SKIP'
+            'e1913090c7cdd4c7db12651858a8381be28ae61f19d5e5e02a33f4c7c74c926d'
+            '2611ec4c97346c3c4eea61786ee20c801207135a9d52a771f5f340b41bf69fbc'
+            'c37b2777d6c7b9d2eb6003d8bdb72175f889013bc4d582b3f7a12fc7419a2d6d')
+
+pkgver() {
+  cd glib
+  git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+  cd glib
+
+  # https://gitlab.gnome.org/GNOME/glib/-/issues/2219
+  git apply -3 ../1683.patch
+
+  # Test suite workaround
+  git apply -3 ../multilib.diff
+}
+
+build() {
+  export CC="gcc -m32 -mstackrealign"
+  export CXX="g++ -m32 -mstackrealign"
+  export PKG_CONFIG="i686-pc-linux-gnu-pkg-config"
+
+  CFLAGS+=" -DG_DISABLE_CAST_CHECKS"
+  arch-meson glib build \
+    -D selinux=disabled \
+    --libdir=/usr/lib32
+  meson compile -C build
+}
+
+check() {
+  # Spurious wakeups in g_cond_wait_until, only on lib32
+  meson test -C build --no-suite flaky --no-suite slow --print-errorlogs || :
+}
+
+package() {
+  depends+=(libmount.so)
+  provides+=(libgio-2.0.so libglib-2.0.so libgmodule-2.0.so libgobject-2.0.so
+             libgthread-2.0.so)
+
+  DESTDIR="$pkgdir" meson install -C build
+
+  rm -r "$pkgdir"/usr/{share,include}
+  find "$pkgdir/usr/bin" -type f -not -name gio-querymodules -printf 'Removing %P\n' -delete
+  mv "$pkgdir"/usr/bin/gio-querymodules{,-32}
+
+  install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 *.hook
+}
+
+# vim:set sw=2 et:

Copied: lib32-glib2/repos/multilib-testing-x86_64/gio-querymodules-32.hook (from rev 721782, lib32-glib2/trunk/gio-querymodules-32.hook)
===================================================================
--- multilib-testing-x86_64/gio-querymodules-32.hook	                        (rev 0)
+++ multilib-testing-x86_64/gio-querymodules-32.hook	2020-10-08 17:06:39 UTC (rev 721783)
@@ -0,0 +1,11 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib32/gio/modules/*.so
+
+[Action]
+Description = Updating 32-bit GIO module cache...
+When = PostTransaction
+Exec = /usr/bin/gio-querymodules-32 /usr/lib32/gio/modules

Copied: lib32-glib2/repos/multilib-testing-x86_64/multilib.diff (from rev 721782, lib32-glib2/trunk/multilib.diff)
===================================================================
--- multilib-testing-x86_64/multilib.diff	                        (rev 0)
+++ multilib-testing-x86_64/multilib.diff	2020-10-08 17:06:39 UTC (rev 721783)
@@ -0,0 +1,12 @@
+diff --git i/gio/tests/meson.build w/gio/tests/meson.build
+index 65f43e267..3bd66bf60 100644
+--- i/gio/tests/meson.build
++++ w/gio/tests/meson.build
+@@ -598,6 +598,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+                  '-r',
+                  '-b','binary',
+                  '@INPUT@',
++                 '--oformat', 'elf32-i386',
+                  '-o','@OUTPUT@'])
+ 
+     # Rename symbol to match the one in the C file


More information about the arch-commits mailing list