Need help understanding packaging

Norman Feske norman.feske at genode-labs.com
Tue Jul 3 14:55:22 CEST 2018


Hi Guido,

> 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.

you may keep your code anywhere you like by creating a symlink
'<genode>/repos/feather' pointing to the location of your code.

> 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.

It's certainly the best to take an existing recipe as reference. As far
as documenting the process of creating a 'content.mk' file goes, it is
not easy to find a useful level of detail.

> 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.

Similar to hosting a symbolic link '<genode>/repos/feather', you may in
principle host a symbolic link in '<genode>/depot/guido/src/feather',
pointing to your source tree. I admittedly haven't tried this but you
may give it a try. Note, however, that the publish step would archive
the entire content of the directory. So it might be preferable to have a
tool (makefile) in place to assemble the content.

> 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++".

This is strange. Have you successfully built one of Genode's binary
archives, e.g., guido/bin/x86_64/report_rom? If this works, what is the
difference between your src archive and report_rom's? By any chance, do
you happen to have an 'etc/' or 'mk/' directory in your archive? This
shouldn't be.

> I added that last part to builddir/build.mk to diagnose what compiler
> ran. It seems that this code in
> depot/guido/biI think, given that there are plentiful examples to learn from, n/...<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?

This is a follow-up problem of the one above. I recommend experimenting
with Genode's existing packages first, and then comparing your's with those.

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

https://www.genode-labs.com · https://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · SYyitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list