<div dir="ltr">Hi again. I tried renaming (<a href="https://www.freedesktop.org/software/systemd/man/os-release.html">https://www.freedesktop.org/software/systemd/man/os-release.html</a>) it but that didn't work. I am not getting any errors during the attachment phase so I am not sure if the failure is due to extension file in any way. <div><br></div><div>A wish list is to be more verbose regarding what is going on during extension file check/comparison and during overlaying /usr and /opt. I think portablectl is quite verbose when it comes to preparing files, symb links and what I wish fits well. <br><div><br></div><div>Could you please try it yourself? I put them in <a href="https://drive.google.com/file/d/1LoN_swR7jgvo5yxajWjYK5ck_e8kJs1W/view?usp=sharing">https://drive.google.com/file/d/1LoN_swR7jgvo5yxajWjYK5ck_e8kJs1W/view?usp=sharing</a> there should be a download button on the top right. Appreciate your help. </div></div><div><br></div><div>Thanks,</div><div>Umut</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 15, 2021 at 3:46 PM Luca Boccassi <<a href="mailto:bluca@debian.org">bluca@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">On Fri, 2021-10-15 at 14:59 +0200, Umut Tezduyar Lindskog wrote:<br>
> Thanks and I would have never figured it out without your help.<br>
> However, moving the binary to /opt didn't work either (I made sure<br>
> there is empty /opt in the base too). Anything else I am missing?<br>
> <br>
> root@osboxes:/home/osboxes/Development# tree stackupper/<br>
> stackupper/<br>
> ├── bin<br>
> │ └── umut<br>
> ├── dev<br>
> ├── etc<br>
> │ ├── machine-id<br>
> │ ├── resolv.conf<br>
> │ └── runtime<br>
> ├── lib -> usr/lib<br>
> ├── opt<br>
> │ └── tree<br>
> ├── proc<br>
> ├── root<br>
> ├── run<br>
> ├── sys<br>
> ├── tmp<br>
> ├── usr<br>
> │ ├── bin<br>
> │ └── lib<br>
> │ ├── extension-release.d<br>
> │ │ └── extension-release.base<br>
> │ └── systemd<br>
> │ └── system<br>
> │ └── stackupper.service<br>
> └── var<br>
> └── tmp<br>
> <br>
> 18 directories, 7 files<br>
> root@osboxes:/home/osboxes/Development# cat<br>
> stackupper/usr/lib/systemd/system/stackupper.service <br>
> [Service]<br>
> Type=oneshot<br>
> ExecStart=/opt/tree /<br>
<br>
The extension-release file in the extension must be named exactly after<br>
the extension (eg: foo.raw must contain /usr/lib/extension-<br>
release.d/extension-release.foo), but in your case it's called ".base"<br>
which doesn't seem right, so double check that. This too is documented<br>
in the man page.<br>
<br>
> On Fri, Oct 15, 2021 at 2:23 PM Luca Boccassi <<a href="mailto:bluca@debian.org" target="_blank">bluca@debian.org</a>><br>
> wrote:<br>
> > On Fri, 2021-10-15 at 12:18 +0000, Umut Tezduyar Lindskog wrote:<br>
> > > Hi, following works for us (for reference, configuration is<br>
> > printed<br>
> > > at the end)<br>
> > > <br>
> > > portablectl --now attach --extension=./stackupper ./base<br>
> > stackupper<br>
> > > <br>
> > > However, if we move the cat from base/usr/bin/cat to<br>
> > > stackupper/bin/cat it is not working. Seems like we cannot<br>
> > include<br>
> > > any library/executable in the extension.<br>
> > > <br>
> > > Are we missing something? <br>
> > > <br>
> > > <br>
> > > root@osboxes:/home/osboxes/Development# tree base/<br>
> > > base/<br>
> > > ├──bin<br>
> > > ├──dev<br>
> > > ├──etc<br>
> > > │ ├── machine-id<br>
> > > │ ├── os-release<br>
> > > │ └── resolv.conf<br>
> > > ├──lib<br>
> > > │ └── x86_64-linux-gnu<br>
> > > │ └── libc.so.6<br>
> > > ├──lib64<br>
> > > │ ├──<a href="http://ld-2.32.so" rel="noreferrer" target="_blank">ld-2.32.so</a><br>
> > > │ └── ld-linux-x86-64.so.2<br>
> > > ├──proc<br>
> > > ├──root<br>
> > > ├──run<br>
> > > ├──sys<br>
> > > ├──tmp<br>
> > > ├──usr<br>
> > > │ ├──bin<br>
> > > │ │ ├──cat<br>
> > > │ │ ├──echo<br>
> > > │ │ └── tree<br>
> > > │ └── lib<br>
> > > │ └── systemd<br>
> > > │ └── system<br>
> > > └── var<br>
> > > └── tmp<br>
> > > <br>
> > > 18 directories, 9 files<br>
> > > <br>
> > > root@osboxes:/home/osboxes/Development# tree stackupper/<br>
> > > stackupper/<br>
> > > ├──bin<br>
> > > │ └── umut<br>
> > > ├──dev<br>
> > > ├──etc<br>
> > > │ ├── machine-id<br>
> > > │ ├── resolv.conf<br>
> > > │ └── runtime<br>
> > > ├──lib -> usr/lib<br>
> > > ├──proc<br>
> > > ├──root<br>
> > > ├──run<br>
> > > ├──sys<br>
> > > ├──tmp<br>
> > > ├──usr<br>
> > > │ ├──bin<br>
> > > │ └── lib<br>
> > > │ ├──extension-release.d<br>
> > > │ │ └── extension-release.base<br>
> > > │ └── systemd<br>
> > > │ └── system<br>
> > > │ └── stackupper.service<br>
> > > └── var<br>
> > > └── tmp<br>
> > > <br>
> > > 17 directories, 6 files<br>
> > > <br>
> > > root@osboxes:/home/osboxes/Development# cat<br>
> > > stackupper/usr/lib/systemd/system/stackupper.service <br>
> > > [Service]<br>
> > > Type=oneshot<br>
> > > ExecStart=/usr/bin/cat /etc/os-release<br>
> > > root@osboxes:/home/osboxes/Development#systemctl --version<br>
> > > systemd 249 (249.4-1)<br>
> > > +PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT<br>
> > +GNUTLS -<br>
> > > OPENSSL +ACL +BLKID +CURL +ELFUTILS -FIDO2 +IDN2 -IDN +IPTC +KMOD<br>
> > > +LIBCRYPTSETUP -LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE<br>
> > +BZIP2<br>
> > > +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-<br>
> > > hierarchy=unified<br>
> > <br>
> > Hi,<br>
> > <br>
> > You need to build your extension with the binaries under either the<br>
> > /usr or /opt hierarchies. Legacy locations like /bin and /lib are<br>
> > ignored. This is explained in the systemd-sysext.8 manpage.<br>
> > <br>
<br>
</blockquote></div>