udev requires these symbols which uclibc does not provide: __secure_getenv dup3 mkostemp the latter two should be straight forward, but that first one is a glibc-ism ...
i committed dup3/mkostemp support upstream. need to review secure_getenv.
(In reply to comment #1) > i committed dup3/mkostemp support upstream. need to review secure_getenv. I'm pretty sure secure_gentenv isn't POSIX. But, I'm not sure what uclibc policy is towards POSIX purity. Should the fix be to patch udev-189?
it's not POSIX, but the systemd guys don't care. they code for Linux/glibc only.
(In reply to comment #3) > it's not POSIX, but the systemd guys don't care. they code for Linux/glibc > only. In case you haven't heard already, some of us have started a fork of the systemd codebase. So I looked at this. You can just remove the env variable stuff from udev. Here are the commits: https://github.com/gentoo/eudev/commit/d626c1395bb217bd154ec9131038222295ca3eb0 https://github.com/gentoo/eudev/commit/dbc4814264667d2ebf2f7300a4028461fdf532bd For the second commit, just look at the src/libudev/libudev.c. I mixed issues in that commit which I shouldn't have. If this looks sane, I'll produce a proper patch against udev-189.
(In reply to comment #4) i'm aware, but not interested in the udev ebuild, we could do (at the end of src_configure): use elibc_glibc || echo '#define secure_getenv(x) NULL' >> config.h it should only affect log customization via envvars ... not a big deal
(In reply to comment #5) > (In reply to comment #4) > > i'm aware, but not interested > > in the udev ebuild, we could do (at the end of src_configure): > use elibc_glibc || echo '#define secure_getenv(x) NULL' >> config.h > > it should only affect log customization via envvars ... not a big deal The current use is just for logs. We'd have to watch it in case they use secure_getenv(x) for something more important in the future when bumping that ebuild.
(In reply to comment #3) > it's not POSIX, but the systemd guys don't care. they code for Linux/glibc > only. How do we know they code for glibc only? I haven't heard this anywhere on their irc channel, and glibc isn't listed specifically as a system requirement in their README.
Can we close this in favour of eudev since they are supposed to support uclibc too? Will we wait for it to stabilize? Wasn't that one of the points the eudev guys presented? Is masking sys-fs/udev in the embedded/ profile an option so eudev gets picked instead?
(In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #4) > > > > i'm aware, but not interested > > > > in the udev ebuild, we could do (at the end of src_configure): > > use elibc_glibc || echo '#define secure_getenv(x) NULL' >> config.h > > > > it should only affect log customization via envvars ... not a big deal > > The current use is just for logs. We'd have to watch it in case they use > secure_getenv(x) for something more important in the future when bumping > that ebuild. We could use grep to check how many matches the source tree has, and abort if it finds more than the defined amount of secure_getenv's so maintainers won't miss it?
(In reply to comment #5) > (In reply to comment #4) > > i'm aware, but not interested > > in the udev ebuild, we could do (at the end of src_configure): > use elibc_glibc || echo '#define secure_getenv(x) NULL' >> config.h > > it should only affect log customization via envvars ... not a big deal okay, http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-197-r3.ebuild?r1=1.3&r2=1.4
(In reply to comment #7) because they define _GNU_SOURCE and use functions that are specific to glibc
no need to keep this open, same as bug 452760 both are still very clear visible and can be improved.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7346a1c028fb1d242b50c3a1cff4fd49d88af224 commit 7346a1c028fb1d242b50c3a1cff4fd49d88af224 Author: Mike Gilbert <floppym@gentoo.org> AuthorDate: 2018-02-13 16:03:11 +0000 Commit: Mike Gilbert <floppym@gentoo.org> CommitDate: 2018-02-13 16:03:36 +0000 sys-fs/udev: bump to 237 This update also drops the workaround for missing secure_getenv, which hasn't worked properly since the build system was switched to meson. Bug: https://bugs.gentoo.org/443030 Closes: https://bugs.gentoo.org/647260 Package-Manager: Portage-2.3.24_p18, Repoman-2.3.6_p99 sys-fs/udev/Manifest | 1 + sys-fs/udev/udev-237.ebuild | 327 +++++++++++++++++++++++++++++++++++++++++++ sys-fs/udev/udev-9999.ebuild | 21 +-- 3 files changed, 332 insertions(+), 17 deletions(-)}