[systemd-devel] stacked extension not working

Umut Tezduyar Lindskog umut at tezduyar.com
Tue Oct 19 14:09:36 UTC 2021


Hi Luca, have you had time to help me out or do you think you could help me
out? Thanks in advance.

On Mon, Oct 18, 2021 at 12:56 PM Umut Tezduyar Lindskog <umut at tezduyar.com>
wrote:

> Hi again. I tried renaming (
> https://www.freedesktop.org/software/systemd/man/os-release.html) 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.
>
> 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.
>
> Could you please try it yourself? I put them in
> https://drive.google.com/file/d/1LoN_swR7jgvo5yxajWjYK5ck_e8kJs1W/view?usp=sharing
> there should be a download button on the top right. Appreciate your help.
>
> Thanks,
> Umut
>
>
> On Fri, Oct 15, 2021 at 3:46 PM Luca Boccassi <bluca at debian.org> wrote:
>
>> On Fri, 2021-10-15 at 14:59 +0200, Umut Tezduyar Lindskog wrote:
>> > Thanks and I would have never figured it out without your help.
>> > However, moving the binary to /opt didn't work either (I made sure
>> > there is empty /opt in the base too). Anything else I am missing?
>> >
>> > root at osboxes:/home/osboxes/Development# tree stackupper/
>> > stackupper/
>> > ├── bin
>> > │   └── umut
>> > ├── dev
>> > ├── etc
>> > │   ├── machine-id
>> > │   ├── resolv.conf
>> > │   └── runtime
>> > ├── lib -> usr/lib
>> > ├── opt
>> > │   └── tree
>> > ├── proc
>> > ├── root
>> > ├── run
>> > ├── sys
>> > ├── tmp
>> > ├── usr
>> > │   ├── bin
>> > │   └── lib
>> > │       ├── extension-release.d
>> > │       │   └── extension-release.base
>> > │       └── systemd
>> > │           └── system
>> > │               └── stackupper.service
>> > └── var
>> >     └── tmp
>> >
>> > 18 directories, 7 files
>> > root at osboxes:/home/osboxes/Development# cat
>> > stackupper/usr/lib/systemd/system/stackupper.service
>> > [Service]
>> > Type=oneshot
>> > ExecStart=/opt/tree /
>>
>> The extension-release file in the extension must be named exactly after
>> the extension (eg: foo.raw must contain /usr/lib/extension-
>> release.d/extension-release.foo), but in your case it's called ".base"
>> which doesn't seem right, so double check that. This too is documented
>> in the man page.
>>
>> > On Fri, Oct 15, 2021 at 2:23 PM Luca Boccassi <bluca at debian.org>
>> > wrote:
>> > > On Fri, 2021-10-15 at 12:18 +0000, Umut Tezduyar Lindskog wrote:
>> > > > Hi, following works for us (for reference, configuration is
>> > > printed
>> > > > at the end)
>> > > >
>> > > > portablectl --now attach --extension=./stackupper ./base
>> > > stackupper
>> > > >
>> > > > However, if we move the cat from base/usr/bin/cat to
>> > > > stackupper/bin/cat it is not working. Seems like we cannot
>> > > include
>> > > > any library/executable in the extension.
>> > > >
>> > > > Are we missing something?
>> > > >
>> > > >
>> > > > root at osboxes:/home/osboxes/Development# tree base/
>> > > > base/
>> > > > ├──bin
>> > > > ├──dev
>> > > > ├──etc
>> > > > │   ├── machine-id
>> > > > │   ├── os-release
>> > > > │   └── resolv.conf
>> > > > ├──lib
>> > > > │   └── x86_64-linux-gnu
>> > > > │       └── libc.so.6
>> > > > ├──lib64
>> > > > │   ├──ld-2.32.so
>> > > > │   └── ld-linux-x86-64.so.2
>> > > > ├──proc
>> > > > ├──root
>> > > > ├──run
>> > > > ├──sys
>> > > > ├──tmp
>> > > > ├──usr
>> > > > │   ├──bin
>> > > > │   │   ├──cat
>> > > > │   │   ├──echo
>> > > > │   │   └── tree
>> > > > │   └── lib
>> > > > │       └── systemd
>> > > > │           └── system
>> > > > └── var
>> > > >     └── tmp
>> > > >
>> > > > 18 directories, 9 files
>> > > >
>> > > > root at osboxes:/home/osboxes/Development# tree stackupper/
>> > > > stackupper/
>> > > > ├──bin
>> > > > │   └── umut
>> > > > ├──dev
>> > > > ├──etc
>> > > > │   ├── machine-id
>> > > > │   ├── resolv.conf
>> > > > │   └── runtime
>> > > > ├──lib -> usr/lib
>> > > > ├──proc
>> > > > ├──root
>> > > > ├──run
>> > > > ├──sys
>> > > > ├──tmp
>> > > > ├──usr
>> > > > │   ├──bin
>> > > > │   └── lib
>> > > > │       ├──extension-release.d
>> > > > │       │   └── extension-release.base
>> > > > │       └── systemd
>> > > > │           └── system
>> > > > │               └── stackupper.service
>> > > > └── var
>> > > >     └── tmp
>> > > >
>> > > > 17 directories, 6 files
>> > > >
>> > > > root at osboxes:/home/osboxes/Development# cat
>> > > > stackupper/usr/lib/systemd/system/stackupper.service
>> > > > [Service]
>> > > > Type=oneshot
>> > > > ExecStart=/usr/bin/cat /etc/os-release
>> > > > root at osboxes:/home/osboxes/Development#systemctl --version
>> > > > systemd 249 (249.4-1)
>> > > > +PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT
>> > > +GNUTLS -
>> > > > OPENSSL +ACL +BLKID +CURL +ELFUTILS -FIDO2 +IDN2 -IDN +IPTC +KMOD
>> > > > +LIBCRYPTSETUP -LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE
>> > > +BZIP2
>> > > > +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-
>> > > > hierarchy=unified
>> > >
>> > > Hi,
>> > >
>> > > You need to build your extension with the binaries under either the
>> > > /usr or /opt hierarchies. Legacy locations like /bin and /lib are
>> > > ignored. This is explained in the systemd-sysext.8 manpage.
>> > >
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20211019/2f13ba6b/attachment.htm>


More information about the systemd-devel mailing list