Mailing List Archive

[PATCH] metadata/install-qa-check.d: make the FHS paths warning easier to read
* QA Notice: The ebuild is installing to one or more unexpected paths:
*
* /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/legion_prof_files
* /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/serializer_examples
*
* Please fix the ebuild to use correct FHS/Gentoo policy paths.

This message is hard to understand. Is it saying that the resulting
package contains files prefixed with ${D} which would be immensely
broken? Is it saying that these paths are *directories* and the FHS does
not approve of directories in /usr/bin/*/?

In fact, it's the latter. Fix this in two ways:

- clarify that it's an unexpected directory, not just some kind of path

- strip ${D} so that people can better visualize what sort of path gets
installed. This has the downside of not being able to copy/paste the
path in order to inspect the image directory, but I think this is a
very small downside. Usually by the time you see this message, portage
has cleaned up. And if it hasn't, you can still copy/paste that from:

Completed installing sys-cluster/legion-9999 into /var/tmp/portage/sys-cluster/legion-9999/image

Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
---
metadata/install-qa-check.d/08gentoo-paths | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/metadata/install-qa-check.d/08gentoo-paths b/metadata/install-qa-check.d/08gentoo-paths
index 5b8607fd5f96..0b92a7a1c132 100644
--- a/metadata/install-qa-check.d/08gentoo-paths
+++ b/metadata/install-qa-check.d/08gentoo-paths
@@ -70,9 +70,9 @@ gentoo_path_check() {
# report
# ------
if [[ -n ${bad_paths[@]} ]]; then
- eqawarn "QA Notice: The ebuild is installing to one or more unexpected paths:"
+ eqawarn "QA Notice: The ebuild is installing to one or more unexpected directories:"
eqawarn
- eqatag -v non-gentoo-paths "${bad_paths[@]}"
+ eqatag -v non-gentoo-paths "${bad_paths[@]#${D%/}}"
eqawarn
eqawarn "Please fix the ebuild to use correct FHS/Gentoo policy paths."
fi
--
2.43.2
Re: [PATCH] metadata/install-qa-check.d: make the FHS paths warning easier to read [ In reply to ]
[2024-03-28 23:54:35-0400] Eli Schwartz:
> * QA Notice: The ebuild is installing to one or more unexpected paths:
> *
> * /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/legion_prof_files
> * /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/serializer_examples
> *
> * Please fix the ebuild to use correct FHS/Gentoo policy paths.
>
>This message is hard to understand. Is it saying that the resulting
>package contains files prefixed with ${D} which would be immensely
>broken? Is it saying that these paths are *directories* and the FHS does
>not approve of directories in /usr/bin/*/?
>
>In fact, it's the latter. Fix this in two ways:
>
>- clarify that it's an unexpected directory, not just some kind of path

I guess it would also make sense to have a trailing slash as extra
indication of it being a directory like `ls -F` does.

>- strip ${D} so that people can better visualize what sort of path gets
> installed. This has the downside of not being able to copy/paste the
> path in order to inspect the image directory, but I think this is a
> very small downside. Usually by the time you see this message, portage
> has cleaned up. And if it hasn't, you can still copy/paste that from:
>
> Completed installing sys-cluster/legion-9999 into /var/tmp/portage/sys-cluster/legion-9999/image

Could maybe be confusable with installers not supporting DESTDIR though
(although the sandbox messages look *very* different).
Re: [PATCH] metadata/install-qa-check.d: make the FHS paths warning easier to read [ In reply to ]
On Thu, 2024-03-28 at 23:54 -0400, Eli Schwartz wrote:
> * QA Notice: The ebuild is installing to one or more unexpected paths:
> *
> * /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/legion_prof_files
> * /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/serializer_examples
> *
> * Please fix the ebuild to use correct FHS/Gentoo policy paths.
>
> This message is hard to understand. Is it saying that the resulting
> package contains files prefixed with ${D} which would be immensely
> broken? Is it saying that these paths are *directories* and the FHS does
> not approve of directories in /usr/bin/*/?
>
> In fact, it's the latter. Fix this in two ways:
>
> - clarify that it's an unexpected directory, not just some kind of path
>
> - strip ${D} so that people can better visualize what sort of path gets
> installed. This has the downside of not being able to copy/paste the
> path in order to inspect the image directory, but I think this is a
> very small downside. Usually by the time you see this message, portage
> has cleaned up. And if it hasn't, you can still copy/paste that from:
>
> Completed installing sys-cluster/legion-9999 into /var/tmp/portage/sys-cluster/legion-9999/image
>
> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
> ---
> metadata/install-qa-check.d/08gentoo-paths | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/metadata/install-qa-check.d/08gentoo-paths b/metadata/install-qa-check.d/08gentoo-paths
> index 5b8607fd5f96..0b92a7a1c132 100644
> --- a/metadata/install-qa-check.d/08gentoo-paths
> +++ b/metadata/install-qa-check.d/08gentoo-paths
> @@ -70,9 +70,9 @@ gentoo_path_check() {
> # report
> # ------
> if [[ -n ${bad_paths[@]} ]]; then
> - eqawarn "QA Notice: The ebuild is installing to one or more unexpected paths:"
> + eqawarn "QA Notice: The ebuild is installing to one or more unexpected directories:"
> eqawarn
> - eqatag -v non-gentoo-paths "${bad_paths[@]}"
> + eqatag -v non-gentoo-paths "${bad_paths[@]#${D%/}}"
> eqawarn
> eqawarn "Please fix the ebuild to use correct FHS/Gentoo policy paths."
> fi

LGTM. Thanks!

--
Best regards,
Micha? Górny
Re: [PATCH] metadata/install-qa-check.d: make the FHS paths warning easier to read [ In reply to ]
Eli Schwartz <eschwartz93@gmail.com> writes:

> * QA Notice: The ebuild is installing to one or more unexpected paths:
> *
> * /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/legion_prof_files
> * /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/serializer_examples
> *
> * Please fix the ebuild to use correct FHS/Gentoo policy paths.
>
> This message is hard to understand. Is it saying that the resulting
> package contains files prefixed with ${D} which would be immensely
> broken? Is it saying that these paths are *directories* and the FHS does
> not approve of directories in /usr/bin/*/?
>
> In fact, it's the latter. Fix this in two ways:
>
> - clarify that it's an unexpected directory, not just some kind of path
>
> - strip ${D} so that people can better visualize what sort of path gets
> installed. This has the downside of not being able to copy/paste the
> path in order to inspect the image directory, but I think this is a
> very small downside. Usually by the time you see this message, portage
> has cleaned up. And if it hasn't, you can still copy/paste that from:
>
> Completed installing sys-cluster/legion-9999 into /var/tmp/portage/sys-cluster/legion-9999/image
>
> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
> ---

LGTM. Thanks.

> metadata/install-qa-check.d/08gentoo-paths | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/metadata/install-qa-check.d/08gentoo-paths b/metadata/install-qa-check.d/08gentoo-paths
> index 5b8607fd5f96..0b92a7a1c132 100644
> --- a/metadata/install-qa-check.d/08gentoo-paths
> +++ b/metadata/install-qa-check.d/08gentoo-paths
> @@ -70,9 +70,9 @@ gentoo_path_check() {
> # report
> # ------
> if [[ -n ${bad_paths[@]} ]]; then
> - eqawarn "QA Notice: The ebuild is installing to one or more unexpected paths:"
> + eqawarn "QA Notice: The ebuild is installing to one or more unexpected directories:"
> eqawarn
> - eqatag -v non-gentoo-paths "${bad_paths[@]}"
> + eqatag -v non-gentoo-paths "${bad_paths[@]#${D%/}}"
> eqawarn
> eqawarn "Please fix the ebuild to use correct FHS/Gentoo policy paths."
> fi
Re: [PATCH] metadata/install-qa-check.d: make the FHS paths warning easier to read [ In reply to ]
On 3/29/24 12:54 AM, Haelwenn (lanodan) Monnier wrote:
>> - strip ${D} so that people can better visualize what sort of path gets
>>  installed. This has the downside of not being able to copy/paste the
>>  path in order to inspect the image directory, but I think this is a
>>  very small downside. Usually by the time you see this message, portage
>>  has cleaned up. And if it hasn't, you can still copy/paste that from:
>>
>>  Completed installing sys-cluster/legion-9999 into
>> /var/tmp/portage/sys-cluster/legion-9999/image
>
> Could maybe be confusable with installers not supporting DESTDIR though
> (although the sandbox messages look *very* different).


I'm not worried about confusing it with lack of DESTDIR support, since
lack of DESTDIR support would equal a failed src_install rather than a
FHS warning.

It's really nothing to do with the sandbox specifically.

--
Eli Schwartz