Sysop: | Amessyroom |
---|---|
Location: | Fayetteville, NC |
Users: | 40 |
Nodes: | 6 (0 / 6) |
Uptime: | 09:35:11 |
Calls: | 291 |
Files: | 910 |
Messages: | 76,420 |
Prompted by yet another instance of this, this time at https://forums.gentoo.org/viewtopic-t-1171999.html.
The results of these tests are often hardcoded into installed files
which causes issues if using a binpkg of them from a merged-usr system
on a non-merged-usr system. Just set the cache variables to avoid that.
...
+ac_cv_path_SED="sed"
On 2024-12-04 22:55:22, Sam James wrote:
Prompted by yet another instance of this, this time at
https://forums.gentoo.org/viewtopic-t-1171999.html.
The results of these tests are often hardcoded into installed files
which causes issues if using a binpkg of them from a merged-usr system
on a non-merged-usr system. Just set the cache variables to avoid that.
...
+ac_cv_path_SED="sed"
Obviously it would defeat the purpose to put a full path in there, but
won't this break software that expects them to be a path (since that's
what the autoconf macros are documented to do)?
On 2024-12-04 22:55:22, Sam James wrote:
Prompted by yet another instance of this, this time at
https://forums.gentoo.org/viewtopic-t-1171999.html.
The results of these tests are often hardcoded into installed files
which causes issues if using a binpkg of them from a merged-usr system
on a non-merged-usr system. Just set the cache variables to avoid that.
...
+ac_cv_path_SED="sed"
Obviously it would defeat the purpose to put a full path in there, but
won't this break software that expects them to be a path (since that's
what the autoconf macros are documented to do)?
Michael Orlitzky <mjo@gentoo.org> writes:
On 2024-12-04 22:55:22, Sam James wrote:
Prompted by yet another instance of this, this time at
https://forums.gentoo.org/viewtopic-t-1171999.html.
The results of these tests are often hardcoded into installed files
which causes issues if using a binpkg of them from a merged-usr system
on a non-merged-usr system. Just set the cache variables to avoid that.
...
+ac_cv_path_SED="sed"
Obviously it would defeat the purpose to put a full path in there, but won't this break software that expects them to be a path (since that's
what the autoconf macros are documented to do)?
That's a fair point and I'm not sure how to handle it. We could use profile.bashrc to set these?
Albeit I don't understand what would be doing in there, setting the
full path for the current profile wouldn't accomplish anything for binpkg-on-different-usr-type-profile.
(on a related another note, do hope autoconf moves to being handled
like cmake/meson in the future so these things could just be in an
eclass -- we could do more complex things if needed too without
needing profile.bashrc)
That aside, I personally feel that an option could instead be
to consider merged-usr binpkg on non-merged-usr as unsupported
and only support merged-usr for binary packages.
The issue still semi-exists for users migrating their systems, but
it's at least mitigated by 23.0 suggesting emerge -e @world and thus
updating every paths.
On Tue, Dec 10, 2024 at 05:46:38AM +0000, Sam James wrote:
Michael Orlitzky <mjo@gentoo.org> writes:
On 2024-12-04 22:55:22, Sam James wrote:
Prompted by yet another instance of this, this time at
https://forums.gentoo.org/viewtopic-t-1171999.html.
The results of these tests are often hardcoded into installed files
which causes issues if using a binpkg of them from a merged-usr system
on a non-merged-usr system. Just set the cache variables to avoid that. >> >> ...
+ac_cv_path_SED="sed"
Obviously it would defeat the purpose to put a full path in there, but
won't this break software that expects them to be a path (since that's
what the autoconf macros are documented to do)?
That's a fair point and I'm not sure how to handle it. We could use
profile.bashrc to set these?
Assume you're already aware, but still to remind that profile.bashrc
is not in PMS and ideally shouldn't rely on this for anything but
optional sanity checks or such.
Albeit I don't understand what would be doing in there, setting the
full path for the current profile wouldn't accomplish anything for binpkg-on-different-usr-type-profile.
(on a related another note, do hope autoconf moves to being handled
like cmake/meson in the future so these things could just be in an
eclass -- we could do more complex things if needed too without
needing profile.bashrc)
That aside, I personally feel that an option could instead be
to consider merged-usr binpkg on non-merged-usr as unsupported
and only support merged-usr for binary packages.
On 12/10/24 3:02 AM, Ionen Wolkens wrote:
Albeit I don't understand what would be doing in there, setting the
full path for the current profile wouldn't accomplish anything for binpkg-on-different-usr-type-profile.
It surely would -- the point of setting it for the current profile is to
make ./configure stop storing overly-specific build time paths, which
means that the resulting binpkg is now well-formed and works on both profiles.
On 12/10/24 3:02 AM, Ionen Wolkens wrote:
That aside, I personally feel that an option could instead be
to consider merged-usr binpkg on non-merged-usr as unsupported
and only support merged-usr for binary packages.
Sure, we could declare tons of things as unsupported. We could declare split-usr as unsupported, in fact, which would feel a bit more honest
than saying "split-usr is supported, we have profiles for it, just if
you use it there are weird footguns and then your system breaks".
The issue still semi-exists for users migrating their systems, but
it's at least mitigated by 23.0 suggesting emerge -e @world and thus updating every paths.
I don't see how that's supposed to help, especially given that if you
migrate your system then affected packages are defined as "affected"
based on whether they are broken and fail to work, and that remains true during -e as well since packages depending on the broken package will
fail to successfully -e.
What circumstances other than a shebang might break without a full path?
On 2024-12-10 00:54:11, Eli Schwartz wrote:
What circumstances other than a shebang might break without a full path?
When PATH is not reliable, like inside a cron job. Or arguments to execve().
On 12/10/24 1:31 PM, Michael Orlitzky wrote:
On 2024-12-10 00:54:11, Eli Schwartz wrote:
What circumstances other than a shebang might break without a full path?
When PATH is not reliable, like inside a cron job. Or arguments to execve().
execve doesn't make any sense to me as an argument. I don't think I've
ever in my life either seen or heard of software that did a
configure-time check for the full abspath of a file in order to solve
the fact that execve doesn't search on PATH. They simply used execvpe instead.
...
For the execve case it's possible to write a proof of concept
demonstrating the issue, but writing a PoC to demonstrate that people
can write incorrect code doesn't prove that people *do* write incorrect
code so the logic is circular.