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