Re: [systemd-devel] stacked extension not working

2021-10-15 Thread Luca Boccassi
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

2021-10-15 Thread Umut Tezduyar Lindskog
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

2021-10-15 Thread Luca Boccassi
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

2021-10-15 Thread Umut Tezduyar Lindskog
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