On 06/27/2018 03:36 PM, Norman Feske wrote:

Hi Norman,

Here's my experiences with packaging my app.

1. As I'm in the role of system integrator (not genode developer), I originally placed my feather-package in genode/projects/feather and added that path to REPOSITORIES in genode/build/x86_64/etc/build.conf. While that works for the make run/feather mechanism, it does not work for the packaging. That requires the source code in genode/repos/feather. It's in the manual but was my first stumbling block.

2. I needed to add the content.mk as well as the hash file to my recipes
directory to make the depot/create work. Without either I got the error:
"incomplete or missing recipe (guido/src/feather). It's probably in the
book but the error message is quite vague. A message "missing
file<genodedir>/repo/<repo>/recipes/src/<project>/hash" would be more
helpful. I'll add it after I get the hang of the packaging system (to
prevent adding stuff that's not needed).

3. The part where I found the documentation lacking was the description of the content.mk file. The documentation did not lead me to a working version. Ultimately, I copied the one from gems/.../depot_deploy and adapted it.

After that depot/create worked. It gave me a depot/guido/src/feather directory with the same structure as my repo/feather.

Question: do you foresee that third party developers place their git source in repos/<developer> like I did or in depot/<developer> and bypassing that recipes/hash/content.mk part.


4. I did a depot/build guido/bin/x86_64/feather/2018-06-30 KEEP_BUILD_DIR=1
That gave me this error:
  Makefile: 131: *** "g++ version 6.3.0 is required, we got
  /usr/bin/g++".

I added that last part to builddir/build.mk to diagnose what compiler ran. It seems that this code in depot/guido/bin/...<version>.build/etc/tools.conf expects SPECS to be just x86_64 while specs.conf contains: SPECS += genode x86_64
    ifeq ($(filter-out $(SPECS),x86_64),)
    CROSS_DEV_PREFIX ?= /usr/local/genode-gcc/bin/genode-x86-
    endif
It left CROSS_DEV_PREFIX unset, falling back to the compiler in $PATH.

Is this a bug or did I miss something?


5. Setting export CROSS_DEV_PREFIX=/usr/local/.../genode-x86- by hand made the build get further. I got these errors.
    "Library-description file libc.mk is missing."
(And so for libc_lwip.mk, libc_lwip_nic_dhcp.mk and posix.mk).
Here the error message is correct but lacks the hint to add the dependencies to used_apis in the previous step.

6. After setting the dependencies in used_apis, and running create again, I get this error at build:
    checking library dependencies...
    Skip target feather because it requires
    libc_support_for_your_target_platform
    created guido/bin/x84_64/feather/2018-07-01-b

The libc_support... 'target' suggests that it can't determine the platform. Is that the SPECS += genode x86_64 bug again?

Yet it did create a that directory it specfied but it's empty and further invocations of build happily tell me that there is everything is up to date. I expect it would not make that directory or retry builing until it has more deliverables.


Hope my feedback helps you to improve Genode.

Cheers, Guido.

_______________________________________________
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Reply via email to