Mailing List Archive

[PATCH] cargo.eclass: add CARGO_TOML_DIR
This is required when cargo_live_src_unpack needs to be find a
Cargo.toml file in a directory other than ${S}

Signed-off-by: orbea <orbea@riseup.net>
---
eclass/cargo.eclass | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index 3bdbb5e3ec64..692623382c56 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
# other src_functions of this eclass.
# Note that cargo_gen_config is automatically called by cargo_src_unpack.

+# @ECLASS_VARIABLE: CARGO_TOML_DIR
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Optional variable containing the directory path to the Cargo.toml file.
+# Should be defined before calling cargo_live_src_unpack.
+#
+# This is required for live ebuilds when Cargo.toml in a directory other
+# than ${S}.
+
# @ECLASS_VARIABLE: myfeatures
# @DEFAULT_UNSET
# @DESCRIPTION:
@@ -403,7 +412,7 @@ cargo_live_src_unpack() {
umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}"
fi

- pushd "${S}" > /dev/null || die
+ pushd "${CARGO_TOML_DIR:-$S}" > /dev/null || die

# Respect user settings before cargo_gen_config is called.
if [[ ! ${CARGO_TERM_COLOR} ]]; then
--
2.41.0
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On Mon, 2024-01-22 at 19:32 -0800, orbea wrote:
> This is required when cargo_live_src_unpack needs to be find a
> Cargo.toml file in a directory other than ${S}
>
> Signed-off-by: orbea <orbea@riseup.net>
> ---
> eclass/cargo.eclass | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
> index 3bdbb5e3ec64..692623382c56 100644
> --- a/eclass/cargo.eclass
> +++ b/eclass/cargo.eclass
> @@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
> # other src_functions of this eclass.
> # Note that cargo_gen_config is automatically called by cargo_src_unpack.
>
> +# @ECLASS_VARIABLE: CARGO_TOML_DIR
> +# @DEFAULT_UNSET
> +# @DESCRIPTION:
> +# Optional variable containing the directory path to the Cargo.toml file.
> +# Should be defined before calling cargo_live_src_unpack.
> +#
> +# This is required for live ebuilds when Cargo.toml in a directory other
> +# than ${S}.
> +
> # @ECLASS_VARIABLE: myfeatures
> # @DEFAULT_UNSET
> # @DESCRIPTION:
> @@ -403,7 +412,7 @@ cargo_live_src_unpack() {
> umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}"
> fi
>
> - pushd "${S}" > /dev/null || die
> + pushd "${CARGO_TOML_DIR:-$S}" > /dev/null || die

Please respect the current variable style.

>
> # Respect user settings before cargo_gen_config is called.
> if [[ ! ${CARGO_TERM_COLOR} ]]; then

--
Best regards,
Micha? Górny
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On 1/22/24 10:32 PM, orbea wrote:
> This is required when cargo_live_src_unpack needs to be find a
> Cargo.toml file in a directory other than ${S}
>
> Signed-off-by: orbea <orbea@riseup.net>
> ---


Fairly confused why this email was posted to an existing thread instead
of a new one?

Anyway, I'm sure the change is very reasonable but it is difficult to
tell from an outside perspective just by reading the commit message --
which doesn't detail why your Cargo.toml would be in a directory other
than the one src_compile() starts off in.


--
Eli Schwartz
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On Mon, 22 Jan 2024 23:06:35 -0500
Eli Schwartz <eschwartz93@gmail.com> wrote:

> On 1/22/24 10:32 PM, orbea wrote:
> > This is required when cargo_live_src_unpack needs to be find a
> > Cargo.toml file in a directory other than ${S}
> >
> > Signed-off-by: orbea <orbea@riseup.net>
> > ---
>
>
> Fairly confused why this email was posted to an existing thread
> instead of a new one?
>
> Anyway, I'm sure the change is very reasonable but it is difficult to
> tell from an outside perspective just by reading the commit message --
> which doesn't detail why your Cargo.toml would be in a directory other
> than the one src_compile() starts off in.
>
>

My mistake in composing the e-mail in why it was posted to an existing
thread.

The program in question is:

https://github.com/Rosalie241/RMG

Which has an optional rust plugin.

https://github.com/Rosalie241/RMG/tree/master/Source/3rdParty/mupen64plus-input-gca

It seems impossible to support a live ebuild unless
cargo_live_src_unpack knows where to look.
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On Tue, 23 Jan 2024 04:48:02 +0100
Micha? Górny <mgorny@gentoo.org> wrote:

> On Mon, 2024-01-22 at 19:32 -0800, orbea wrote:
> > This is required when cargo_live_src_unpack needs to be find a
> > Cargo.toml file in a directory other than ${S}
> >
> > Signed-off-by: orbea <orbea@riseup.net>
> > ---
> > eclass/cargo.eclass | 11 ++++++++++-
> > 1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
> > index 3bdbb5e3ec64..692623382c56 100644
> > --- a/eclass/cargo.eclass
> > +++ b/eclass/cargo.eclass
> > @@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
> > # other src_functions of this eclass.
> > # Note that cargo_gen_config is automatically called by
> > cargo_src_unpack.
> > +# @ECLASS_VARIABLE: CARGO_TOML_DIR
> > +# @DEFAULT_UNSET
> > +# @DESCRIPTION:
> > +# Optional variable containing the directory path to the
> > Cargo.toml file. +# Should be defined before calling
> > cargo_live_src_unpack. +#
> > +# This is required for live ebuilds when Cargo.toml in a directory
> > other +# than ${S}.
> > +
> > # @ECLASS_VARIABLE: myfeatures
> > # @DEFAULT_UNSET
> > # @DESCRIPTION:
> > @@ -403,7 +412,7 @@ cargo_live_src_unpack() {
> > umask "${EVCS_UMASK}" || die "Bad options to
> > umask: ${EVCS_UMASK}" fi
> >
> > - pushd "${S}" > /dev/null || die
> > + pushd "${CARGO_TOML_DIR:-$S}" > /dev/null || die
>
> Please respect the current variable style.

Sorry for being dense, but could you elaborate what you mean?

>
> >
> > # Respect user settings before cargo_gen_config is called.
> > if [[ ! ${CARGO_TERM_COLOR} ]]; then
>
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On Tue, 2024-01-23 at 06:13 -0800, orbea wrote:
> On Tue, 23 Jan 2024 04:48:02 +0100
> Micha? Górny <mgorny@gentoo.org> wrote:
>
> > On Mon, 2024-01-22 at 19:32 -0800, orbea wrote:
> > > This is required when cargo_live_src_unpack needs to be find a
> > > Cargo.toml file in a directory other than ${S}
> > >
> > > Signed-off-by: orbea <orbea@riseup.net>
> > > ---
> > > eclass/cargo.eclass | 11 ++++++++++-
> > > 1 file changed, 10 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
> > > index 3bdbb5e3ec64..692623382c56 100644
> > > --- a/eclass/cargo.eclass
> > > +++ b/eclass/cargo.eclass
> > > @@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
> > > # other src_functions of this eclass.
> > > # Note that cargo_gen_config is automatically called by
> > > cargo_src_unpack.
> > > +# @ECLASS_VARIABLE: CARGO_TOML_DIR
> > > +# @DEFAULT_UNSET
> > > +# @DESCRIPTION:
> > > +# Optional variable containing the directory path to the
> > > Cargo.toml file. +# Should be defined before calling
> > > cargo_live_src_unpack. +#
> > > +# This is required for live ebuilds when Cargo.toml in a directory
> > > other +# than ${S}.
> > > +
> > > # @ECLASS_VARIABLE: myfeatures
> > > # @DEFAULT_UNSET
> > > # @DESCRIPTION:
> > > @@ -403,7 +412,7 @@ cargo_live_src_unpack() {
> > > umask "${EVCS_UMASK}" || die "Bad options to
> > > umask: ${EVCS_UMASK}" fi
> > >
> > > - pushd "${S}" > /dev/null || die
> > > + pushd "${CARGO_TOML_DIR:-$S}" > /dev/null || die
> >
> > Please respect the current variable style.
>
> Sorry for being dense, but could you elaborate what you mean?
>

You changed '${S}' to '$S' which goes against the established style.

--
Best regards,
Micha? Górny
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On Tue, 23 Jan 2024 17:48:25 +0100
Micha? Górny <mgorny@gentoo.org> wrote:

> On Tue, 2024-01-23 at 06:13 -0800, orbea wrote:
> > On Tue, 23 Jan 2024 04:48:02 +0100
> > Micha? Górny <mgorny@gentoo.org> wrote:
> >
> > > On Mon, 2024-01-22 at 19:32 -0800, orbea wrote:
> > > > This is required when cargo_live_src_unpack needs to be find a
> > > > Cargo.toml file in a directory other than ${S}
> > > >
> > > > Signed-off-by: orbea <orbea@riseup.net>
> > > > ---
> > > > eclass/cargo.eclass | 11 ++++++++++-
> > > > 1 file changed, 10 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
> > > > index 3bdbb5e3ec64..692623382c56 100644
> > > > --- a/eclass/cargo.eclass
> > > > +++ b/eclass/cargo.eclass
> > > > @@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
> > > > # other src_functions of this eclass.
> > > > # Note that cargo_gen_config is automatically called by
> > > > cargo_src_unpack.
> > > > +# @ECLASS_VARIABLE: CARGO_TOML_DIR
> > > > +# @DEFAULT_UNSET
> > > > +# @DESCRIPTION:
> > > > +# Optional variable containing the directory path to the
> > > > Cargo.toml file. +# Should be defined before calling
> > > > cargo_live_src_unpack. +#
> > > > +# This is required for live ebuilds when Cargo.toml in a
> > > > directory other +# than ${S}.
> > > > +
> > > > # @ECLASS_VARIABLE: myfeatures
> > > > # @DEFAULT_UNSET
> > > > # @DESCRIPTION:
> > > > @@ -403,7 +412,7 @@ cargo_live_src_unpack() {
> > > > umask "${EVCS_UMASK}" || die "Bad options to
> > > > umask: ${EVCS_UMASK}" fi
> > > >
> > > > - pushd "${S}" > /dev/null || die
> > > > + pushd "${CARGO_TOML_DIR:-$S}" > /dev/null || die
> > >
> > > Please respect the current variable style.
> >
> > Sorry for being dense, but could you elaborate what you mean?
> >
>
> You changed '${S}' to '$S' which goes against the established style.
>

Thanks for spelling that out, I corrected the patch.

-------------

This is required when cargo_live_src_unpack needs to be find a
Cargo.toml file in a directory other than ${S}. This may happen in
cases where the package has a rust component within a subdirectory
where the program otherwise use another language.

Signed-off-by: orbea <orbea@riseup.net>
---
eclass/cargo.eclass | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index 3bdbb5e3ec64..f88b3b82d8ed 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
# other src_functions of this eclass.
# Note that cargo_gen_config is automatically called by cargo_src_unpack.

+# @ECLASS_VARIABLE: CARGO_TOML_DIR
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Optional variable containing the directory path to the Cargo.toml file.
+# Should be defined before calling cargo_live_src_unpack.
+#
+# This is required for live ebuilds when Cargo.toml in a directory other
+# than ${S}.
+
# @ECLASS_VARIABLE: myfeatures
# @DEFAULT_UNSET
# @DESCRIPTION:
@@ -403,7 +412,7 @@ cargo_live_src_unpack() {
umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}"
fi

- pushd "${S}" > /dev/null || die
+ pushd "${CARGO_TOML_DIR:-${S}}" > /dev/null || die

# Respect user settings before cargo_gen_config is called.
if [[ ! ${CARGO_TERM_COLOR} ]]; then
--
2.41.0
Re: [PATCH] cargo.eclass: add CARGO_TOML_DIR [ In reply to ]
On Tue, 23 Jan 2024 11:43:13 -0800
orbea <orbea@riseup.net> wrote:

> On Tue, 23 Jan 2024 17:48:25 +0100
> Micha? Górny <mgorny@gentoo.org> wrote:
>
> > On Tue, 2024-01-23 at 06:13 -0800, orbea wrote:
> > > On Tue, 23 Jan 2024 04:48:02 +0100
> > > Micha? Górny <mgorny@gentoo.org> wrote:
> > >
> > > > On Mon, 2024-01-22 at 19:32 -0800, orbea wrote:
> > > > > This is required when cargo_live_src_unpack needs to be find a
> > > > > Cargo.toml file in a directory other than ${S}
> > > > >
> > > > > Signed-off-by: orbea <orbea@riseup.net>
> > > > > ---
> > > > > eclass/cargo.eclass | 11 ++++++++++-
> > > > > 1 file changed, 10 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
> > > > > index 3bdbb5e3ec64..692623382c56 100644
> > > > > --- a/eclass/cargo.eclass
> > > > > +++ b/eclass/cargo.eclass
> > > > > @@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
> > > > > # other src_functions of this eclass.
> > > > > # Note that cargo_gen_config is automatically called by
> > > > > cargo_src_unpack.
> > > > > +# @ECLASS_VARIABLE: CARGO_TOML_DIR
> > > > > +# @DEFAULT_UNSET
> > > > > +# @DESCRIPTION:
> > > > > +# Optional variable containing the directory path to the
> > > > > Cargo.toml file. +# Should be defined before calling
> > > > > cargo_live_src_unpack. +#
> > > > > +# This is required for live ebuilds when Cargo.toml in a
> > > > > directory other +# than ${S}.
> > > > > +
> > > > > # @ECLASS_VARIABLE: myfeatures
> > > > > # @DEFAULT_UNSET
> > > > > # @DESCRIPTION:
> > > > > @@ -403,7 +412,7 @@ cargo_live_src_unpack() {
> > > > > umask "${EVCS_UMASK}" || die "Bad options to
> > > > > umask: ${EVCS_UMASK}" fi
> > > > >
> > > > > - pushd "${S}" > /dev/null || die
> > > > > + pushd "${CARGO_TOML_DIR:-$S}" > /dev/null || die
> > > > >
> > > >
> > > > Please respect the current variable style.
> > >
> > > Sorry for being dense, but could you elaborate what you mean?
> > >
> >
> > You changed '${S}' to '$S' which goes against the established style.
> >
>
> Thanks for spelling that out, I corrected the patch.
>
> -------------
>
> This is required when cargo_live_src_unpack needs to be find a
> Cargo.toml file in a directory other than ${S}. This may happen in
> cases where the package has a rust component within a subdirectory
> where the program otherwise use another language.
>
> Signed-off-by: orbea <orbea@riseup.net>
> ---
> eclass/cargo.eclass | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
> index 3bdbb5e3ec64..f88b3b82d8ed 100644
> --- a/eclass/cargo.eclass
> +++ b/eclass/cargo.eclass
> @@ -116,6 +116,15 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
> # other src_functions of this eclass.
> # Note that cargo_gen_config is automatically called by
> cargo_src_unpack.
> +# @ECLASS_VARIABLE: CARGO_TOML_DIR
> +# @DEFAULT_UNSET
> +# @DESCRIPTION:
> +# Optional variable containing the directory path to the Cargo.toml
> file. +# Should be defined before calling cargo_live_src_unpack.
> +#
> +# This is required for live ebuilds when Cargo.toml in a directory
> other +# than ${S}.
> +
> # @ECLASS_VARIABLE: myfeatures
> # @DEFAULT_UNSET
> # @DESCRIPTION:
> @@ -403,7 +412,7 @@ cargo_live_src_unpack() {
> umask "${EVCS_UMASK}" || die "Bad options to umask:
> ${EVCS_UMASK}" fi
>
> - pushd "${S}" > /dev/null || die
> + pushd "${CARGO_TOML_DIR:-${S}}" > /dev/null || die
>
> # Respect user settings before cargo_gen_config is called.
> if [[ ! ${CARGO_TERM_COLOR} ]]; then

On second thought maybe this patch is not necessary? A trivial
workaround is to just set ${S} for cargo_live_src_unpack, for example...

S="${S}"/path/to/rust/dir \
cargo_live_src_unpack

Would this be something that is future proof or is it better to have a
dedicated variable to handle it?