Subject: Re: bug#48541: [PATCH] gnu: Fix build for ldc.

From: Ludovic Courtès <[email-masked]>
Date: Fri, 21 May 2021 12:09:07 +0200

Hi Roel,

Roel Janssen <[email-masked]> skribis:

> I looked into why our LDC package fails to build, and it seems that
> all tests that make use of "ptrace" fail because the build environment 
> doesn't allow it.
> So I disabled these tests by removing the relevant files, and
> completed a successful build.
>
> If there is a way to provide the build environment with the ability to
> use ptrace, and if that is preferred to removing tests, then please
> let me know so I can prepare another patch.

The build environment doesn’t prevent the use of ptrace per se, AFAIK.
However, some systems may have /proc/sys/kernel/yama/ptrace_scope set to
1 (as a system-level setting), which prevents ptracing one’s own
processes, unless they’re a child.

I thought this could have been the reason but I see that ldc fails to
build on berlin, where ptrace_scope is 0 (it’s Guix System), so maybe
there’s something else.  Unfortunately the build log at
<https://ci.guix.gnu.org/build/290794/log/raw> doesn’t show anything.

Do you have more info about these failures?

>>>From 191aa4cc2f131453d9ffc902d72dbe16307aa0c0 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <[email-masked]>
> Date: Thu, 20 May 2021 18:04:05 +0200
> Subject: [PATCH] gnu: Fix build for ldc.
>
> * gnu/packages/dlang.scm (ldc): Disable tests that use ptrace.
> ---
>  gnu/packages/dlang.scm | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
> index da3b818c26..33be779ba3 100644
> --- a/gnu/packages/dlang.scm
> +++ b/gnu/packages/dlang.scm
> @@ -240,6 +240,16 @@ bootstrapping more recent compilers written in D.")
>                 (delete-file "tests/compilable/ctfe_math.d")
>                 (delete-file "tests/debuginfo/nested_gdb.d")
>                 (delete-file "tests/debuginfo/classtypes_gdb.d")
> +               ;; the following tests need special permissions for ptrace:
> +               (delete-file "tests/d2/dmd-testsuite/runnable/b18504.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14225.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14276.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14313.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14330.d")

In the interim, perhaps you can commit it with a link to this issue
and/or additional info about the problem?

Thanks,
Ludo’.