Date: Tuesday, November 15, 2022 @ 22:42:05
  Author: heftig
Revision: 461859

archrelease: copy trunk to extra-x86_64

Added:
  librest/repos/extra-x86_64/30.patch
    (from rev 461858, librest/trunk/30.patch)
  librest/repos/extra-x86_64/PKGBUILD
    (from rev 461858, librest/trunk/PKGBUILD)
Deleted:
  librest/repos/extra-x86_64/PKGBUILD

----------+
 30.patch |   73 ++++++++++++++++++++++++++++
 PKGBUILD |  154 +++++++++++++++++++++++++++++++------------------------------
 2 files changed, 153 insertions(+), 74 deletions(-)

Copied: librest/repos/extra-x86_64/30.patch (from rev 461858, 
librest/trunk/30.patch)
===================================================================
--- 30.patch                            (rev 0)
+++ 30.patch    2022-11-15 22:42:05 UTC (rev 461859)
@@ -0,0 +1,73 @@
+From fbad64abe28a96f591a30e3a5d3189c10172a414 Mon Sep 17 00:00:00 2001
+From: Adam Williamson <awill...@redhat.com>
+Date: Tue, 30 Aug 2022 10:03:57 -0700
+Subject: [PATCH 1/2] rest_proxy_call_sync: bail out if no payload
+
+goa-daemon is crashing on suspend/resume with a traceback that
+points here: it calls rest_proxy_call_sync, that calls
+_rest_proxy_send_message, assumes it gets a `payload` back,
+and calls `finish_call` with it. However, it's not actually
+guaranteed that `_rest_proxy_send_message` will return a payload
+(a `GBytes`). There are three ways it can return `NULL` instead:
+if it's passed a wrong proxy or message, or - when built against
+libsoup3 - if there is an error sending the message (it passes
+through the return value of `soup_session_send_and_read`, and
+that's documented to be `NULL` on error).
+
+If `payload` comes back `NULL`, let's just return `FALSE`, like
+we do if there's a problem with the call or message.
+
+Signed-off-by: Adam Williamson <awill...@redhat.com>
+---
+ rest/rest-proxy-call.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/rest/rest-proxy-call.c b/rest/rest-proxy-call.c
+index 851b397..07b8b49 100644
+--- a/rest/rest-proxy-call.c
++++ b/rest/rest-proxy-call.c
+@@ -1428,6 +1428,8 @@ rest_proxy_call_sync (RestProxyCall *call,
+     return FALSE;
+ 
+   payload = _rest_proxy_send_message (priv->proxy, message, 
priv->cancellable, error_out);
++  if (!payload)
++    return FALSE;
+ 
+   ret = finish_call (call, message, payload, error_out);
+ 
+-- 
+GitLab
+
+
+From 8049048a0f7d52b3f4101c7123797fed099d4cc8 Mon Sep 17 00:00:00 2001
+From: Adam Williamson <awill...@redhat.com>
+Date: Tue, 30 Aug 2022 10:59:01 -0700
+Subject: [PATCH 2/2] Handle some potential problems in parsing oauth2 access
+ tokens
+
+It's possible for `_rest_proxy_send_message` to return `NULL`,
+which would mean the `payload` here would be `NULL`. If so,
+we're not going to be able to do anything, so we should just
+bail out.
+
+Signed-off-by: Adam Williamson <awill...@redhat.com>
+---
+ rest/rest-oauth2-proxy.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/rest/rest-oauth2-proxy.c b/rest/rest-oauth2-proxy.c
+index 9511f97..7d5780d 100644
+--- a/rest/rest-oauth2-proxy.c
++++ b/rest/rest-oauth2-proxy.c
+@@ -70,6 +70,8 @@ rest_oauth2_proxy_parse_access_token (RestOAuth2Proxy *self,
+   gint created_at;
+ 
+   g_return_if_fail (REST_IS_OAUTH2_PROXY (self));
++  if (!payload)
++    return;
+ 
+   data = g_bytes_get_data (payload, &size);
+ 
+-- 
+GitLab
+

Deleted: PKGBUILD
===================================================================
--- PKGBUILD    2022-11-15 22:41:56 UTC (rev 461858)
+++ PKGBUILD    2022-11-15 22:42:05 UTC (rev 461859)
@@ -1,74 +0,0 @@
-# Maintainer: Jan Alexander Steffens (heftig) <hef...@archlinux.org>
-
-pkgbase=librest
-pkgname=(librest librest-docs librest-demos)
-pkgver=0.9.1
-pkgrel=1
-pkgdesc="Library for accessing RESTful web services"
-url="https://gitlab.gnome.org/GNOME/librest";
-arch=(x86_64)
-license=(LGPL)
-depends=(glib2 libxml2 libsoup3 json-glib)
-makedepends=(gobject-introspection git meson gi-docgen vala libadwaita
-             gtksourceview5)
-options=(debug)
-_commit=aa9e968e381ede159414c6338da24d61ad0b5d8b  # tags/0.9.1^0
-source=("git+https://gitlab.gnome.org/GNOME/librest.git#commit=$_commit";)
-sha256sums=('SKIP')
-
-pkgver() {
-  cd librest
-  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
-}
-
-prepare() {
-  cd librest
-}
-
-build() {
-  arch-meson librest build
-  meson compile -C build
-}
-
-check() {
-  meson test -C build --print-errorlogs
-}
-
-_pick() {
-  local p="$1" f d; shift
-  for f; do
-    d="$srcdir/$p/${f#$pkgdir/}"
-    mkdir -p "$(dirname "$d")"
-    mv "$f" "$d"
-    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
-  done
-}
-
-package_librest() {
-  depends+=(libg{lib,object,io}-2.0.so libxml2.so libsoup-3.0.so
-            libjson-glib-1.0.so)
-  provides+=(librest{,-extras}-1.0.so)
-
-  meson install -C build --destdir "$pkgdir"
-
-  cd "$pkgdir"
-
-  _pick docs usr/share/doc
-
-  _pick demo usr/bin/librest-demo
-  _pick demo usr/share/applications/org.gnome.RestDemo.desktop
-}
-
-package_librest-docs() {
-  pkgdesc+=" (documentation)"
-  depends=()
-  mv docs/* "$pkgdir"
-}
-
-package_librest-demos() {
-  pkgdesc+=" (demo applications)"
-  depends=(librest libadwaita gtksourceview5)
-  mv demo/* "$pkgdir"
-}
-
-# vim:set sw=2 et:

Copied: librest/repos/extra-x86_64/PKGBUILD (from rev 461858, 
librest/trunk/PKGBUILD)
===================================================================
--- PKGBUILD                            (rev 0)
+++ PKGBUILD    2022-11-15 22:42:05 UTC (rev 461859)
@@ -0,0 +1,80 @@
+# Maintainer: Jan Alexander Steffens (heftig) <hef...@archlinux.org>
+
+pkgbase=librest
+pkgname=(librest librest-docs librest-demos)
+pkgver=0.9.1
+pkgrel=2
+pkgdesc="Library for accessing RESTful web services"
+url="https://gitlab.gnome.org/GNOME/librest";
+arch=(x86_64)
+license=(LGPL)
+depends=(glib2 libxml2 libsoup3 json-glib)
+makedepends=(gobject-introspection git meson gi-docgen vala libadwaita
+             gtksourceview5)
+options=(debug)
+_commit=aa9e968e381ede159414c6338da24d61ad0b5d8b  # tags/0.9.1^0
+source=("git+https://gitlab.gnome.org/GNOME/librest.git#commit=$_commit";
+        30.patch)
+b2sums=('SKIP'
+        
'a5e54797a758b67c7f9aa6e90cd7b6435dfa1f7abc86b9b88c0c98e78724b15308ca8af4ccb138d1d01948e54ed9bf930ee37a7d253e6c979846f93f92fef2c2')
+
+pkgver() {
+  cd librest
+  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
+}
+
+prepare() {
+  cd librest
+
+  # https://bugs.archlinux.org/task/76560
+  # https://gitlab.gnome.org/GNOME/librest/-/merge_requests/30
+  git apply -3 ../30.patch
+}
+
+build() {
+  arch-meson librest build -D vapi=true
+  meson compile -C build
+}
+
+check() {
+  meson test -C build --print-errorlogs
+}
+
+_pick() {
+  local p="$1" f d; shift
+  for f; do
+    d="$srcdir/$p/${f#$pkgdir/}"
+    mkdir -p "$(dirname "$d")"
+    mv "$f" "$d"
+    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
+  done
+}
+
+package_librest() {
+  depends+=(libg{lib,object,io}-2.0.so libxml2.so libsoup-3.0.so
+            libjson-glib-1.0.so)
+  provides+=(librest{,-extras}-1.0.so)
+
+  meson install -C build --destdir "$pkgdir"
+
+  cd "$pkgdir"
+
+  _pick docs usr/share/doc
+
+  _pick demo usr/bin/librest-demo
+  _pick demo usr/share/applications/org.gnome.RestDemo.desktop
+}
+
+package_librest-docs() {
+  pkgdesc+=" (documentation)"
+  depends=()
+  mv docs/* "$pkgdir"
+}
+
+package_librest-demos() {
+  pkgdesc+=" (demo applications)"
+  depends=(librest libadwaita gtksourceview5)
+  mv demo/* "$pkgdir"
+}
+
+# vim:set sw=2 sts=-1 et:

Reply via email to