guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Patch] gst-plugins-base


From: Mark H Weaver
Subject: Re: [Patch] gst-plugins-base
Date: Wed, 30 Mar 2016 17:53:14 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.92 (gnu/linux)

Efraim Flashner <address@hidden> writes:

> Currently on both mips64 and on armhf gst-plugins-base doesn't build, and I'm
> not sure if it has any time recently. On arm, the orc related tests fail, and
> on mips orc fails to build entirely. Orc is a nice addition to
> gst-plugins-base, but it will build without it. This patch would have arm and
> mips go without it. Currently gst-plugins-base is the only program that
> directly depends on orc, so the other ~50 programs that depend on
> gst-plugins-base will have a chance of building now.

Sounds good.  See below for comments.

> From c7a03250b130928a9d0c00e8861218abb08c22b5 Mon Sep 17 00:00:00 2001
> From: Efraim Flashner <address@hidden>
> Date: Wed, 30 Mar 2016 18:03:53 +0300
> Subject: [PATCH] gnu: gst-plugins-base: Don't build with orc on arm/mips
>  architectures.
>
> * gnu/packages/gstreamer.scm (gst-plugins-base)[inputs]: Only use orc as
> an input on armhf or mips architectures.
> ---
>  gnu/packages/gstreamer.scm | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
> index 5cf59cd..c44cbec 100644
> --- a/gnu/packages/gstreamer.scm
> +++ b/gnu/packages/gstreamer.scm
> @@ -160,7 +160,6 @@ This package provides the core library and elements.")
>       `(("gstreamer" ,gstreamer))) ; required by gstreamer-plugins-base-1.0.pc
>      (inputs
>       `(("cdparanoia" ,cdparanoia)
> -       ("orc" ,orc)
>         ("pango" ,pango)
>         ("libogg" ,libogg)
>         ("libtheora" ,libtheora)
> @@ -169,7 +168,12 @@ This package provides the core library and elements.")
>         ("zlib" ,zlib)
>         ("libXext" ,libxext)
>         ("libxv" ,libxv)
> -       ("alsa-lib" ,alsa-lib)))
> +       ("alsa-lib" ,alsa-lib)
> +       ,@(if (not (string-prefix? (or "armhf" "mips")
> +                                  (or (%current-target-system)
> +                                      (%current-system))))
> +           `(("orc" ,orc))
> +           '())))

Several issues here:

* (or "armhf" "mips") always evaluates to "armhf", so this doesn't do
  what you seem to be hoping for.  As you have it above, orc would still
  be included as an input on mips.

* When cross-compiling (%current-target-system) returns a GNU triplet
  string instead of a Nix system string, and those strings start with
  "arm" but not "armhf".

* If you put this ",@if" in the same place where ("orc" ,orc) is
  currently located, then we can avoid rebuilding a lot of stuff on
  intel architectures.

* Finally, by our indentation conventions, the consequent of the 'if'
  should be lined up under the condition.

Here's one way to do it:

--8<---------------cut here---------------start------------->8---
    (inputs
     `(("cdparanoia" ,cdparanoia)
       ,@(if (any (cute string-prefix? <> (or (%current-target-system)
                                              (%current-system)))
                  '("arm" "mips"))
             '()
             `(("orc" ,orc)))
--8<---------------cut here---------------end--------------->8---

You'll need to import (srfi srfi-1) for 'any' and (srfi srfi-26) for
'cute'.

What do you think?  Can you send an updated patch?

    Thank you!
       Mark



reply via email to

[Prev in Thread] Current Thread [Next in Thread]