all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: iyzsong@member.fsf.org (宋文武)
To: Ekaitz Zarraga <ekaitz@elenq.tech>
Cc: "41294@debbugs.gnu.org" <41294@debbugs.gnu.org>
Subject: [bug#41294] [PATCH] gnu: Add libfreenect.
Date: Tue, 19 May 2020 21:26:23 +0800	[thread overview]
Message-ID: <87eergqcn4.fsf@member.fsf.org> (raw)
In-Reply-To: <zgYthp30GnrnAddRXlGZx4viwqwoXH-IAl4YyIpaZPVi9RGq33qbQ6Sg1r3Kg4QnVYCmwY0xpoxJVyv8xhARPY-cHsbdsoA1gfKKr9k-VL0=@elenq.tech> (Ekaitz Zarraga's message of "Sun, 17 May 2020 12:15:06 +0000")

Ekaitz Zarraga <ekaitz@elenq.tech> writes:

> Hi,
> I came up with this. It's just a diff because I'd like to improve something.
>
> There's the same lambda sent to all the packages that need to disable
> sources compilation but I'm not able to create it in a function that I
> send later to all those.
>
> How can I do that? I'm getting `Unknown object` errors.
>
> I tried to create a new function with `define*` with the same body the
> lambda has. Quasiquote the `arguments` and unquote the function there.
> Nothing. There's some kind of weird magic I'm not getting.
>

Hello, I don't know the whole detail too, but to build a package, guix likely:

- Load and eval the package module, to get the package object.  The
  'arguments' field is a list.

- Convert this package object to a derivation, and write it in store as
  a file (/gnu/store/*.drv).  Where 'arguments' being part of the
  builder, serialize as string to the file, it dosen't do complex things
  for procedure bindings, only write their string descriptions...  So
  when the builder file is loaded, you get `Unknown object` errors.


Here, to avoid duplicating the code, you can:

1. Unquote list value into `arguments`. (eg: 'asdf-substitutions' in lisp.scm)

2. Use `(package-arguments libfreenect-examples)` with
`substitute-keyword-arguments` to reuse arguments, but modify
`configure-flags` etc. (eg: qtx11extras)


The build system can use 'imported-modules' to make a set of guile
modules (which can contains useful procedures, etc.) available to the
builder, but thas's overkill to be used here...


>
> diff --git a/gnu/packages/openkinect.scm b/gnu/packages/openkinect.scm
> new file mode 100644
> index 0000000000..1aebb34384
> --- /dev/null
> +++ b/gnu/packages/openkinect.scm
> @@ -0,0 +1,137 @@
> +(define-module (gnu packages openkinect)
> +  #:use-module (guix packages)
> +  #:use-module (guix git-download)
> +  #:use-module (guix build-system cmake)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (gnu packages pkg-config)
> +  #:use-module (gnu packages libusb)
> +  #:use-module (gnu packages python)
> +  #:use-module (gnu packages python-xyz)
> +  #:use-module (gnu packages gl)
> +  #:use-module (gnu packages pkg-config)
> +  #:use-module (gnu packages image-processing))
> +
> +(define-public libfreenect
> +  (let ((version "0.6.1"))
> +    (package
> +      (name "libfreenect")
> +      (version version)
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/OpenKinect/libfreenect")
> +                      (commit (string-append "v" version))))
> +                (sha256
> +                 (base32 "0was1va167rqshmpn382h36yyprpfi9cwillb6ylppmnfdrfrhrr"))))
> +      (build-system cmake-build-system)
> +      (arguments
> +       '(#:tests? #f ; Project has not tests
"has not tests" sounds wrong be me, maybe: "package has no tests".

Otherwise, look good to me!




  reply	other threads:[~2020-05-19 13:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-15 21:47 [bug#41294] [PATCH] gnu: Add libfreenect Ekaitz Zarraga
2020-05-15 23:09 ` [bug#41294] [PATCH] gnu: libfreenect: Correct native-inputs vs inputs Ekaitz Zarraga
2020-05-16  3:48 ` [bug#41294] [PATCH] gnu: Add libfreenect 宋文武
2020-05-16 10:18   ` Ekaitz Zarraga
2020-05-16 13:06     ` Ekaitz Zarraga
2020-05-16 13:28       ` Ekaitz Zarraga
2020-05-17  2:15       ` 宋文武
2020-05-17  9:37         ` Ekaitz Zarraga
2020-05-17 12:15           ` Ekaitz Zarraga
2020-05-19 13:26             ` 宋文武 [this message]
2020-05-19 13:42               ` Ekaitz Zarraga
2020-05-19 13:52                 ` Ekaitz Zarraga
2020-05-20 13:33                   ` 宋文武
2020-05-20 16:37                     ` Ekaitz Zarraga
2020-05-21 11:38                       ` bug#41294: " 宋文武
2020-05-21 11:40                         ` [bug#41294] " Ekaitz Zarraga
2020-05-17  1:56     ` 宋文武

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eergqcn4.fsf@member.fsf.org \
    --to=iyzsong@member.fsf.org \
    --cc=41294@debbugs.gnu.org \
    --cc=ekaitz@elenq.tech \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.