Re: [systemd-devel] stacked extension not working
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@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@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 > wrote: > > On Fri, 2021-10-15 at 12:18 +, 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@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@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@osboxes:/home/osboxes/Development# cat > > > stackupper/usr/lib/systemd/system/stackupper.service > > > [Service] > > > Type=oneshot > > > ExecStart=/usr/bin/cat /etc/os-release > > > root@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. > > signature.asc Description: This is a digitally signed message part
Re: [systemd-devel] stacked extension not working
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@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@osboxes:/home/osboxes/Development# cat stackupper/usr/lib/systemd/system/stackupper.service [Service] Type=oneshot ExecStart=/opt/tree / On Fri, Oct 15, 2021 at 2:23 PM Luca Boccassi wrote: > On Fri, 2021-10-15 at 12:18 +, 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@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@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@osboxes:/home/osboxes/Development# cat > > stackupper/usr/lib/systemd/system/stackupper.service > > [Service] > > Type=oneshot > > ExecStart=/usr/bin/cat /etc/os-release > > root@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. > > -- > Kind regards, > Luca Boccassi >
Re: [systemd-devel] stacked extension not working
On Fri, 2021-10-15 at 12:18 +, 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@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@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@osboxes:/home/osboxes/Development# cat > stackupper/usr/lib/systemd/system/stackupper.service > [Service] > Type=oneshot > ExecStart=/usr/bin/cat /etc/os-release > root@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. -- Kind regards, Luca Boccassi signature.asc Description: This is a digitally signed message part
[systemd-devel] stacked extension not working
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@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@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@osboxes:/home/osboxes/Development# cat stackupper/usr/lib/systemd/system/stackupper.service [Service] Type=oneshot ExecStart=/usr/bin/cat /etc/os-release root@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