-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Robin H. Johnson schrieb:
> I'm raising this as an extension of bug 253076, but also because I see
> the potential for danger.
> 
> To date, for an init script that has baselayout2-specific behavior, we
> have had some variant of [ -e /lib/librc.so ] in the init script.
> 
> On a multilib profile with no symlinks and a 64-bit userspace, the .so
> file would be installed in /lib64/librc.so, and the check would
> mistakenly have the wrong result. 
> 
> There's one fix that has started to turn up already, but I'm not sure if
> it's going to be safe always: [ -f /etc/init.d/sysfs ]
> This happens to work as openrc installs that init script.
> 
> As a long term solution, can we just consume an inode and have some file
> like /etc/baselayout2? The file must reside on the / partition even when
> the major trees /usr, /var, /tmp, /opt, /boot, /home, /dev, /root are
> separate mountpoints.

Using a file in /etc would break if someone would downgrade from
baselayout2/openrc to baselayout1.

Why not teach /sbin/runscript it's own version? With something like this
 we could also do stuff depending on a specific version of openrc:

- --- src/rc/runscript.c
+++ src/rc/runscript.c
@@ -1244,6 +1244,7 @@ runscript(int argc, char **argv)

        setenv("EINFO_LOG", service, 1);
        setenv("RC_SVCNAME", applet, 1);
+       setenv("OPENRC_VERSION", "0.4.2", 1);

        /* Set an env var so that we always know our pid regardless of
any
           subshells the init script may create so that our mark_service_*


and in the ebuild:

[ -n "${OPENRC_VERSION}" ]

> 
> Affected and broken profiles:
> - amd64's 2005.0/no-symlink (it was very widely deployed. It's not
>   supported or in the tree anymore, but there ARE still people using it)
> - default/linux/sparc/2008.0 (unconfirmed)

That one should be fine. It has a pure 32bit userland, no lib64 or
lib32, just plain lib as libdir.

> - Any profile that sets SYMLINK_LIB="no" AND the userspace is 64-bit.
> - Wouldn't surprise me if some of the N32 style mips stuff was broken
>   too.
> 
> Affected, but not broken profiles:
> These are multilib, but with the default as 32-bit causes the lib to be
> in right place.
> - arch/powerpc/ppc64/32ul
> - hardened/linux/powerpc/ppc64/2008.0/32bit-userland
> - Any other profile that inherits features/32bit-userland
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAklybyAACgkQknxn9PmJ76VL5QCfXLgKLtrObX2FzbQ3XMHhAqZi
nT8An1zTWYJSmdRs30eLfDIy4LpqslRp
=80mR
-----END PGP SIGNATURE-----

Reply via email to