maruos / blueprints

Container builder for Maru OS.
Apache License 2.0
15 stars 12 forks source link

Build failures due to missing maruos PGP key #16

Closed Roker2 closed 4 years ago

Roker2 commented 5 years ago

System: Ubuntu 16.04 LTS Device: Mido Vendor: Xiaomi

./build.sh -n jessie -- -a arm64 update-binfmts: warning: unable to open /proc/sys/fs/binfmt_misc/status for writing: Permission denied [] Loading distro plugin... [ DEBIAN ] loading... [] Building image... [ DEBIAN ] bootstrapping rootfs... lxc-create: conf.c: chown_mapped_root: 3626 No mapping for container root lxc-create: lxccontainer.c: do_bdev_create: 1052 Error chowning /home/ghostzero0_r2/.local/share/lxc/jessie/rootfs to container root lxc-create: conf.c: suggest_default_idmap: 4749 You must either run as root, or define uid mappings lxc-create: conf.c: suggest_default_idmap: 4750 To pass uid mappings to lxc-create, you could create lxc-create: conf.c: suggest_default_idmap: 4751 ~/.config/lxc/default.conf: lxc-create: conf.c: suggest_default_idmap: 4752 lxc.include = /etc/lxc/default.conf lxc-create: conf.c: suggest_default_idmap: 4753 lxc.id_map = u 0 231072 65536 lxc-create: conf.c: suggest_default_idmap: 4754 lxc.id_map = g 0 231072 65536 lxc-create: lxccontainer.c: do_lxcapi_create: 1516 Error creating backing store type (none) for jessie lxc-create: tools/lxc_create.c: main: 318 Error creating container jessie [*] Cleaning up... rm: cannot remove 'maru_0.1-1_all.deb': No such file or directory make: [clean] Error 1 (ignored)

pdsouza commented 5 years ago

Thanks for the bug report!

From our README:

Tip: You will need root privileges to mount binfmt_misc for bootstrapping foreign architecture containers.

Roker2 commented 5 years ago

So, do I should to mount binfmt_misc of my computer/server?

Roker2 commented 5 years ago

I mounted binfmt_misc of my server, but I get some issue

pdsouza commented 5 years ago

Sorry for not being clearer! I typically just run the script with sudo:

$ sudo ./build.sh -n stretch -- -a arm64

The script will take care of mounting binfmt_misc correctly for you.

Roker2 commented 5 years ago

Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. qemu: Unsupported syscall: 278 curl: (22) The requested URL returned error: 404 gpg: no valid OpenPGP data found. [*] Cleaning up... Destroyed container stretch

pdsouza commented 5 years ago

Oh weird, let me try to run it on my end and see what's going on.

Btw, if you just need an image for building Maru and don't want to waste time fixing this for now, you can download the latest official container from our automated builds repo. The arm64 image is maru-g4f70c33-debian-stretch-arm64-rootfs-e545c376.tar.gz.

Roker2 commented 5 years ago

Thanks, I will download.

pdsouza commented 5 years ago

OK I confirm the issue you see is an error on my end too. Our server was updated and we forgot to upload our PGP key. I'll fix this soon.

pdsouza commented 5 years ago

This should be fixed now. If you can confirm it works for you now, that would be great!

Roker2 commented 5 years ago

New issue Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. qemu: Unsupported syscall: 278 gpg: can't connect to the agent: IPC connect call failed [*] Cleaning up... Destroyed container stretch

pdsouza commented 5 years ago

Hmm I think this may have to do with your setup because I can't reproduce it. Looks like there is an issue with gpg on your host and within the chroot used to build the container? Maybe this post will help?

The official builds run this inside a Docker container so I think it isolates the host system well enough that this is not an issue.

hunly commented 5 years ago

Hello I got kind of similar problem during build desktop image.

Root password is 'root', please change ! lxc-create: stretch: confile.c: parse_line: 2262 Unknown configuration key "lxc.mount" lxc-create: stretch: parse.c: lxc_file_for_each_line_mmap: 142 Failed to parse config file "/var/lib/lxc/stretch/config" at line "lxc.mount = /var/lib/lxc/stretch/fstab" lxc-create: stretch: tools/lxc_create.c: main: 327 Failed to create container stretch [*] Cleaning up... rm: cannot remove 'maru_0.1-1_all.deb': No such file or directory make: [clean] Error 1 (ignored)

utzcoz commented 5 years ago

@pdsouza The stretch has upgraded lxc to 2.0.7-2(https://packages.debian.org/stretch/lxc), and the lxc configuration file will break, because it bases on lxc 1.x. @hunly 's problem maybe caused by it. I have encountered similar problem when I tried to build rootfs of buster(10.0).

hunly commented 5 years ago

@utzcoz So I need to downgrade lxc to 1.x?

utzcoz commented 5 years ago

@hunly Maybe you can try. If you want to downgrade lxc to 1.x, maybe you should change lxc version in Dockerfile. But I recommend you to change lxc template file to upgrade old lxc configuration keys to new lxc configuration keys for the same purpose. I have upgraded lxc template configuration keys when I built rootfs of buster(10.0) and it fixed my problem.

pdsouza commented 5 years ago

@utzcoz Looks like our automated builds running within the latest stretch container are still passing so our current debian lxc 1.x template should still work using lxc 2.x creation tools. (See latest build).

That being said, I agree that we should upgrade the template file to lxc 2.x. This will fix builds for buster too. This is the latest template for lxc 2.x. @utzcoz, have you tried building with this? I will need to run some tests before committing this template.

It would also be good to upgrade liblxc in Maru to use lxc 2.x as well in case there are any incompatibilities running 2.x containers on liblxc 1.x, although we are already shipping containers built with lxc-create 2.x + lxc 1.x template right now and everything appears to be ok.

pdsouza commented 5 years ago

I have created a new issue to track this upgrade: #17.

utzcoz commented 5 years ago

@pdsouza What I have done is to replace old configuration keys to newer from lxc 1.x to lxc 3.x directly, because buster uses the lxc 3.x(https://packages.debian.org/buster/lxc), and I don't replace lxc template directl to fix this problem, and I don't test whether lxc 2.x template works correctly for lxc 3.x. But I will try to build blueprints with lxc 2.x templates today, and show the result in #17.

utzcoz commented 5 years ago

@pdsouza I have tested blueprints building without cache locally, it got the same result with the latest travis build, working fine.

utzcoz commented 5 years ago

@hunly The lxc template updated to lxc 2.x, and you can sync the repository and try to build again. Please make sure use the docker environment provided by @pdsouza or in current repository to build the rootfs.

hunly commented 5 years ago

@pdsouza @utzcoz I didn't use Docker to build it because I am not familiar with Docker. However, I did prepare the environment by following Marus Dockerfile by @pdsouza. I will check LXC template and update.

github-actions[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.