[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#41294] [PATCH] gnu: Add libfreenect.
From: |
宋文武 |
Subject: |
[bug#41294] [PATCH] gnu: Add libfreenect. |
Date: |
Sun, 17 May 2020 09:56:43 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Ekaitz Zarraga <address@hidden> writes:
> Hi,
>
> On Saturday, May 16, 2020 5:48 AM, <address@hidden> wrote:
>
>> We generally try to enable all optional features when adding a package,
>> I'd go with:
>>
>> 1. Build the python bindings by default.
>> 2. Try seperate the python bindings into another output. (eg: newt)
>> 3. If 1 and 2 seems difficult, try add a seperate package for the
>> python bindings, and it better only contains the bindings, reuse the
>> original package as input. (eg: python-libxml2)
>>
>> 4. If not feel lucky, just leave a TODO comment for it...
>>
>
> I don't really like the first because it forces you to add a python
> interpreter that is not needed otherwise.
> 2 and 3 sound good to me.
Sure, to me both are acceptable.
> It can handle both python2 and 3. What would you do with that?
> Maybe make option 3 and add two outputs to that with python2 and python3? Or
> two different packages?
> (or just forget the python2?)
Unless there is a need for the python2 bindings, we should forget it, as
Python 2 is end-of-life.
>
>>
>> > - The package is 300 megs checking `guix size` that's because it
>> > has some testing binaries that have extra dependencies. If only
>> > the library is compiled it doesn't depend on GLUT and that reduces
>> > the size a lot. I tried to separate the package's outputs but I
>> > don't know how to do it correctly (I checked the docs but it
>> > doesn't go in detail). I'd like to do it but I need some help.
>>
>> To define a packages with multiple outputs:
>>
>> - Decide what ‘outputs’ can be made, eg: ‘doc’, ‘bin’, ‘examples’,
>> etc. In this case, I’d add an ‘examples’ output, to put those
>> ‘freenect-*’ binaries, built from the “examples” directory.
>>
>> - Add an ‘outputs’ field, it default to ‘(list "out")’, We’d use
>> ‘(outputs '("out" "examples")’.
>>
>> - Modify the install flags or phases to get files into their output
>> directory. Sometimes we can configure the target directory by flags,
>> but usually we have to move the files around after the install phase…
>>
>> You can see ‘newt’ in ‘gnu/packages/slang.scm’ for a example.
>
> Great! Thank you. That's more or less what I understood from some code
> examples I checked but they were complex and I tried to make the same
> thing and didn't work for me. I'll give it a new try with this
> example.
>
> Inputs can also be defined with an extra argument for different outputs,
> right? It should be something like:
>
> `(inputs `("freeglut" ,freeglut "examples"))
>
> Am I right?
Inputs are used (not defined) here, the code you wrote:
- Need a freeglut package, which should contain a "examples" output.
- In the build environment of this package, a "freeglut" input is
available, and its path is store path of the "examples" output of that
freeglut package. freeglut's "out" output is not available here.
> Nope!
> I've been digging and I got this wrong. The third part in the tuple is the
> output of the dependency.
> So there's no way to indicate which dependencies are needed for each output.
Yes, the dependencies of outputs are scanned after the build results,
not before. This works by searching '/gnu/store' paths in all files
from the output's store path.
> I also found a flag to compile OpenCV wrappers, which depends on OpenCV.
> OpenCV is huge and it's going to be downloaded regardless if its output is
> used or not. Best choice here seems to be to separate the package in multiple
> sub-packages.
If in the same package (multiple outputs), all inputs are needed when
build a package, but not all dependencies are needed when install a
output by binary substitutes.
> I made this with the examples (see below), how does it look?
> [...]
Will reply to in that email...
- [bug#41294] [PATCH] gnu: Add libfreenect., (continued)
- [bug#41294] [PATCH] gnu: Add libfreenect., 宋文武, 2020/05/16
- [bug#41294] [PATCH] gnu: Add libfreenect., Ekaitz Zarraga, 2020/05/17
- [bug#41294] [PATCH] gnu: Add libfreenect., Ekaitz Zarraga, 2020/05/17
- [bug#41294] [PATCH] gnu: Add libfreenect., 宋文武, 2020/05/19
- [bug#41294] [PATCH] gnu: Add libfreenect., Ekaitz Zarraga, 2020/05/19
- [bug#41294] [PATCH] gnu: Add libfreenect., Ekaitz Zarraga, 2020/05/19
- [bug#41294] [PATCH] gnu: Add libfreenect., 宋文武, 2020/05/20
- [bug#41294] [PATCH] gnu: Add libfreenect., Ekaitz Zarraga, 2020/05/20
- bug#41294: [PATCH] gnu: Add libfreenect., 宋文武, 2020/05/21
- [bug#41294] [PATCH] gnu: Add libfreenect., Ekaitz Zarraga, 2020/05/21
- [bug#41294] [PATCH] gnu: Add libfreenect.,
宋文武 <=