Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds

2020-09-03 Thread Yonggang Luo
On Thu, Sep 3, 2020 at 7:29 AM Eric Blake  wrote:

> On 9/2/20 5:07 PM, 罗勇刚(Yonggang Luo) wrote:
> > On Tue, Aug 25, 2020 at 6:40 PM Daniel P. Berrangé 
> > wrote:
> >
> >> Disabling these parts are sufficient to get the qemu-nbd program
> >> compiling in a Windows build.
> >>
> >> Signed-off-by: Daniel P. Berrangé 
> >> ---
> >>   meson.build | 7 ++-
> >>   qemu-nbd.c  | 5 +
> >>   2 files changed, 7 insertions(+), 5 deletions(-)
>
> >> +++ b/qemu-nbd.c
> >> @@ -899,6 +899,7 @@ int main(int argc, char **argv)
> >>   #endif
> >>
> >>   if ((device && !verbose) || fork_process) {
> >> +#ifndef WIN32
> >>   int stderr_fd[2];
> >>   pid_t pid;
> >>   int ret;
> >> @@ -962,6 +963,10 @@ int main(int argc, char **argv)
> >>*/
> >>   exit(errors);
> >>   }
> >> +#else /* WIN32 */
> >> +error_report("Unable to fork into background on Windows
> hosts");
> >> +exit(EXIT_FAILURE);
> >> +#endif /* WIN32 */
> >>   }
> >>
> > May us replace fork with alternative such as spawn?
>
> You're certainly welcome to propose a patch along those lines, if
> spawning a task is a common Windows counterpart to the Unix notion of
> forking off a daemon.  But even requiring qemu-nbd to run in the
> foreground is already an improvement over what we had previously, so any
> change to use spawn will be a separate series, and will not hold up this
>
Yes, of cause.

> one.
>
> --
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.   +1-919-301-3226
> Virtualization:  qemu.org | libvirt.org
>
>

-- 
 此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo


Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds

2020-09-02 Thread Yonggang Luo
On Tue, Aug 25, 2020 at 6:40 PM Daniel P. Berrangé 
wrote:

> Disabling these parts are sufficient to get the qemu-nbd program
> compiling in a Windows build.
>
> Signed-off-by: Daniel P. Berrangé 
> ---
>  meson.build | 7 ++-
>  qemu-nbd.c  | 5 +
>  2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index df5bf728b5..1071871605 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1074,12 +1074,9 @@ if have_tools
>   dependencies: [authz, block, crypto, io, qom, qemuutil],
> install: true)
>qemu_io = executable('qemu-io', files('qemu-io.c'),
>   dependencies: [block, qemuutil], install: true)
> -  qemu_block_tools += [qemu_img, qemu_io]
> -  if targetos == 'linux' or targetos == 'sunos' or
> targetos.endswith('bsd')
> -qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
> +  qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
> dependencies: [block, qemuutil], install: true)
> -qemu_block_tools += [qemu_nbd]
> -  endif
> +  qemu_block_tools += [qemu_img, qemu_io, qemu_nbd]
>
>subdir('storage-daemon')
>subdir('contrib/rdmacm-mux')
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index dc6ef089af..33476a1000 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -899,6 +899,7 @@ int main(int argc, char **argv)
>  #endif
>
>  if ((device && !verbose) || fork_process) {
> +#ifndef WIN32
>  int stderr_fd[2];
>  pid_t pid;
>  int ret;
> @@ -962,6 +963,10 @@ int main(int argc, char **argv)
>   */
>  exit(errors);
>  }
> +#else /* WIN32 */
> +error_report("Unable to fork into background on Windows hosts");
> +exit(EXIT_FAILURE);
> +#endif /* WIN32 */
>  }
>
May us replace fork with alternative such as spawn?

>
>  if (device != NULL && sockpath == NULL) {
> --
> 2.26.2
>
>
>

-- 
 此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo


Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds

2020-09-02 Thread Eric Blake

On 9/2/20 5:07 PM, 罗勇刚(Yonggang Luo) wrote:

On Tue, Aug 25, 2020 at 6:40 PM Daniel P. Berrangé 
wrote:


Disabling these parts are sufficient to get the qemu-nbd program
compiling in a Windows build.

Signed-off-by: Daniel P. Berrangé 
---
  meson.build | 7 ++-
  qemu-nbd.c  | 5 +
  2 files changed, 7 insertions(+), 5 deletions(-)



+++ b/qemu-nbd.c
@@ -899,6 +899,7 @@ int main(int argc, char **argv)
  #endif

  if ((device && !verbose) || fork_process) {
+#ifndef WIN32
  int stderr_fd[2];
  pid_t pid;
  int ret;
@@ -962,6 +963,10 @@ int main(int argc, char **argv)
   */
  exit(errors);
  }
+#else /* WIN32 */
+error_report("Unable to fork into background on Windows hosts");
+exit(EXIT_FAILURE);
+#endif /* WIN32 */
  }


May us replace fork with alternative such as spawn?


You're certainly welcome to propose a patch along those lines, if 
spawning a task is a common Windows counterpart to the Unix notion of 
forking off a daemon.  But even requiring qemu-nbd to run in the 
foreground is already an improvement over what we had previously, so any 
change to use spawn will be a separate series, and will not hold up this 
one.


--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds

2020-09-02 Thread Eric Blake

On 8/25/20 5:38 AM, Daniel P. Berrangé wrote:

Disabling these parts are sufficient to get the qemu-nbd program
compiling in a Windows build.

Signed-off-by: Daniel P. Berrangé 
---
  meson.build | 7 ++-
  qemu-nbd.c  | 5 +
  2 files changed, 7 insertions(+), 5 deletions(-)


Reviewed-by: Eric Blake 

Queuing through my NBD tree.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




[PATCH v2 3/3] nbd: disable signals and forking on Windows builds

2020-08-25 Thread Daniel P . Berrangé
Disabling these parts are sufficient to get the qemu-nbd program
compiling in a Windows build.

Signed-off-by: Daniel P. Berrangé 
---
 meson.build | 7 ++-
 qemu-nbd.c  | 5 +
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/meson.build b/meson.build
index df5bf728b5..1071871605 100644
--- a/meson.build
+++ b/meson.build
@@ -1074,12 +1074,9 @@ if have_tools
  dependencies: [authz, block, crypto, io, qom, qemuutil], install: 
true)
   qemu_io = executable('qemu-io', files('qemu-io.c'),
  dependencies: [block, qemuutil], install: true)
-  qemu_block_tools += [qemu_img, qemu_io]
-  if targetos == 'linux' or targetos == 'sunos' or targetos.endswith('bsd')
-qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
+  qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
dependencies: [block, qemuutil], install: true)
-qemu_block_tools += [qemu_nbd]
-  endif
+  qemu_block_tools += [qemu_img, qemu_io, qemu_nbd]
 
   subdir('storage-daemon')
   subdir('contrib/rdmacm-mux')
diff --git a/qemu-nbd.c b/qemu-nbd.c
index dc6ef089af..33476a1000 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -899,6 +899,7 @@ int main(int argc, char **argv)
 #endif
 
 if ((device && !verbose) || fork_process) {
+#ifndef WIN32
 int stderr_fd[2];
 pid_t pid;
 int ret;
@@ -962,6 +963,10 @@ int main(int argc, char **argv)
  */
 exit(errors);
 }
+#else /* WIN32 */
+error_report("Unable to fork into background on Windows hosts");
+exit(EXIT_FAILURE);
+#endif /* WIN32 */
 }
 
 if (device != NULL && sockpath == NULL) {
-- 
2.26.2