File gcc13.patch of Package reproc

From 0b23d88894ccedde04537fa23ea55cb2f8365342 Mon Sep 17 00:00:00 2001
From: Daan De Meyer <daan.j.demeyer@gmail.com>
Date: Sat, 18 Mar 2023 19:38:19 +0100
Subject: [PATCH] reproc++: Try to fix gcc 13 build

---
 reproc++/include/reproc++/reproc.hpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Index: reproc-14.2.4/reproc++/include/reproc++/reproc.hpp
===================================================================
--- reproc-14.2.4.orig/reproc++/include/reproc++/reproc.hpp
+++ reproc-14.2.4/reproc++/include/reproc++/reproc.hpp
@@ -88,7 +88,7 @@ struct redirect {
 
 struct options {
   struct {
-    env::type behavior;
+    enum env::type behavior;
     /*! Implicitly converts from any STL container of string pairs to the
     environment format expected by `reproc_start`. */
     class env extra;
@@ -97,9 +97,9 @@ struct options {
   const char *working_directory = nullptr;
 
   struct {
-    redirect in;
-    redirect out;
-    redirect err;
+    struct redirect in;
+    struct redirect out;
+    struct redirect err;
     bool parent;
     bool discard;
     FILE *file;
@@ -138,30 +138,12 @@ enum class stream {
   err,
 };
 
-class process;
-
 namespace event {
 
-enum {
-  in = 1 << 0,
-  out = 1 << 1,
-  err = 1 << 2,
-  exit = 1 << 3,
-  deadline = 1 << 4,
-};
-
-struct source {
-  class process &process;
-  int interests;
-  int events;
-};
+class source;
 
 }
 
-REPROCXX_EXPORT std::error_code poll(event::source *sources,
-                                     size_t num_sources,
-                                     milliseconds timeout = infinite);
-
 /*! Improves on reproc's API by adding RAII and changing the API of some
 functions to be more idiomatic C++. */
 class process {
@@ -220,4 +202,26 @@ private:
   std::unique_ptr<reproc_t, reproc_t *(*) (reproc_t *)> impl_;
 };
 
+namespace event {
+
+enum {
+  in = 1 << 0,
+  out = 1 << 1,
+  err = 1 << 2,
+  exit = 1 << 3,
+  deadline = 1 << 4,
+};
+
+struct source {
+  class process process;
+  int interests;
+  int events;
+};
+
+}
+
+REPROCXX_EXPORT std::error_code poll(event::source *sources,
+                                     size_t num_sources,
+                                     milliseconds timeout = infinite);
+
 }
Index: reproc-14.2.4/reproc++/src/reproc.cpp
===================================================================
--- reproc-14.2.4.orig/reproc++/src/reproc.cpp
+++ reproc-14.2.4/reproc++/src/reproc.cpp
@@ -86,8 +86,9 @@ std::pair<bool, std::error_code> process
 std::pair<int, std::error_code> process::poll(int interests,
                                               milliseconds timeout)
 {
-  event::source source{ *this, interests, 0 };
+  event::source source{ std::move(*this), interests, 0 };
   std::error_code ec = ::reproc::poll(&source, 1, timeout);
+  *this = std::move(source.process);
   return { source.events, ec };
 }
 

From 9f399675b821e175f85ac3ee6e3fd2e6056573eb Mon Sep 17 00:00:00 2001
From: Daan De Meyer <daan.j.demeyer@gmail.com>
Date: Fri, 21 Apr 2023 19:36:45 +0200
Subject: [PATCH] Fix gcc 13 build

---
 reproc++/include/reproc++/reproc.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/reproc++/include/reproc++/reproc.hpp b/reproc++/include/reproc++/reproc.hpp
index b52f495e..7b614a94 100644
--- a/reproc++/include/reproc++/reproc.hpp
+++ b/reproc++/include/reproc++/reproc.hpp
@@ -88,10 +88,10 @@ struct redirect {
 
 struct options {
   struct {
-    enum env::type behavior;
+    reproc::env::type behavior;
     /*! Implicitly converts from any STL container of string pairs to the
     environment format expected by `reproc_start`. */
-    class env extra;
+    reproc::env extra;
   } env = {};
 
   const char *working_directory = nullptr;
openSUSE Build Service is sponsored by